|
|
|
|
@ -54,6 +54,7 @@
|
|
|
|
|
#define SDES_TYPE_TOOL 6
|
|
|
|
|
#define SDES_TYPE_NOTE 7
|
|
|
|
|
#define SDES_TYPE_PRIV 8
|
|
|
|
|
#define SDES_TYPE_MID 15
|
|
|
|
|
|
|
|
|
|
/* RTCP XR block types */
|
|
|
|
|
#define BT_LOSS_RLE 1
|
|
|
|
|
@ -1412,7 +1413,7 @@ void rtcp_init(void) {
|
|
|
|
|
|
|
|
|
|
static GString *rtcp_sender_report(struct ssrc_sender_report *ssr,
|
|
|
|
|
uint32_t ssrc, uint32_t ssrc_out, uint32_t ts, uint32_t packets, uint32_t octets, ssrc_q *rrs,
|
|
|
|
|
ssrc_rr_q *srrs)
|
|
|
|
|
ssrc_rr_q *srrs, struct call_media *media)
|
|
|
|
|
{
|
|
|
|
|
GString *ret = g_string_sized_new(128);
|
|
|
|
|
g_string_set_size(ret, sizeof(struct sender_report_packet));
|
|
|
|
|
@ -1526,6 +1527,14 @@ static GString *rtcp_sender_report(struct ssrc_sender_report *ssr,
|
|
|
|
|
};
|
|
|
|
|
g_string_append_len(ret, rtpe_instance_id.s, rtpe_instance_id.len);
|
|
|
|
|
|
|
|
|
|
// mid
|
|
|
|
|
if (media->bundle) {
|
|
|
|
|
// assume that we have a media ID and that the extension is available
|
|
|
|
|
g_string_append_c(ret, SDES_TYPE_MID);
|
|
|
|
|
g_string_append_c(ret, media->media_id.len);
|
|
|
|
|
g_string_append_len(ret, media->media_id.s, media->media_id.len);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// padding and set final length
|
|
|
|
|
size_t sdes_end_len = ret->len;
|
|
|
|
|
size_t padded_len = (sdes_end_len + 3L) & ~3L;
|
|
|
|
|
@ -1593,7 +1602,7 @@ void rtcp_send_report(struct call_media *media, struct ssrc_entry_call *ssrc_out
|
|
|
|
|
atomic_get_na(&ssrc_out->stats->timestamp),
|
|
|
|
|
atomic64_get_na(&ssrc_out->stats->packets),
|
|
|
|
|
atomic64_get(&ssrc_out->stats->bytes),
|
|
|
|
|
&rrs, &srrs);
|
|
|
|
|
&rrs, &srrs, media);
|
|
|
|
|
|
|
|
|
|
// handle crypto
|
|
|
|
|
|
|
|
|
|
|