MT#58441 Add support for `rtpmap` and `rtcp-fb` attr subst

Add support for `rtpmap` and `rtcp-fb` in the substitution
attributes.

Change-Id: I861740e70e20a2c6ea2a432a8a127e5c1176ece1
pull/1747/head
Donat Zenichev 2 years ago
parent b9d24897a7
commit 3083c717c5

@ -2034,17 +2034,22 @@ static void insert_codec_parameters(GString *s, struct call_media *cm,
if (!pt->encoding_with_params.len)
continue;
GString * s_dst = g_string_new("");
/* rtpmap */
{
g_string_append_printf(s, "a=rtpmap:%u " STR_FORMAT "\r\n",
g_string_append_printf(s_dst, "a=rtpmap:%u " STR_FORMAT,
pt->payload_type,
STR_FMT(&pt->encoding_with_params));
/* append to the chop->output */
append_attr_to_gstring(s, s_dst->str, NULL, flags,
(cm ? cm->type_id : MT_UNKNOWN));
g_string_truncate(s_dst, 0);
}
/* fmtp */
{
bool check_format = true;
GString * s_dst = g_string_new("");
if (pt->codec_def && pt->codec_def->format_print) {
g_string_append_printf(s_dst, "a=fmtp:%u ", pt->payload_type);
gsize fmtp_len = s_dst->len;
@ -2064,18 +2069,24 @@ static void insert_codec_parameters(GString *s, struct call_media *cm,
append_attr_to_gstring(s, s_dst->str, NULL, flags,
(cm ? cm->type_id : MT_UNKNOWN));
}
g_string_free(s_dst, TRUE);
g_string_truncate(s_dst, 0);
}
/* rtcp-fb */
{
for (GList *k = pt->rtcp_fb.head; k; k = k->next) {
str *fb = k->data;
g_string_append_printf(s, "a=rtcp-fb:%u " STR_FORMAT "\r\n",
g_string_truncate(s_dst, 0); /* don't forget to clear for each cycle */
g_string_append_printf(s_dst, "a=rtcp-fb:%u " STR_FORMAT,
pt->payload_type,
STR_FMT(fb));
/* append to the chop->output */
append_attr_to_gstring(s, s_dst->str, NULL, flags,
(cm ? cm->type_id : MT_UNKNOWN));
}
}
g_string_free(s_dst, TRUE);
}
}

Loading…
Cancel
Save