MT#60403 refactoring of `sdp_out_add_bandwidth()`

No functional changes, just code refactoring.

Change-Id: I3394d527438aa5e74f588e029ce6b9fa64a0f47a
pull/1838/head
Donat Zenichev 10 months ago
parent d02ce7e81e
commit a0a03c86d1

@ -3477,38 +3477,29 @@ static void sdp_out_add_timing(GString *out, struct call_monologue *monologue)
static void sdp_out_add_bandwidth(GString *out, struct call_monologue *monologue, static void sdp_out_add_bandwidth(GString *out, struct call_monologue *monologue,
struct call_media *media) struct call_media *media)
{ {
struct call_media *sub_media = NULL; /* if there's a media given, only do look up the values for that one */
struct call_monologue *sub_ml = NULL;
if (media) { if (media) {
/* sdp bandwidth per media level */
struct media_subscription *ms = media->media_subscriptions.head ? media->media_subscriptions.head->data : NULL; struct media_subscription *ms = media->media_subscriptions.head ? media->media_subscriptions.head->data : NULL;
if (!ms || !ms->media) if (!ms || !ms->media)
return; return;
sub_media = ms->media; if (ms->media->bandwidth_as >= 0)
g_string_append_printf(out, "b=AS:%d\r\n", ms->media->bandwidth_as);
if (ms->media->bandwidth_rr >= 0)
g_string_append_printf(out, "b=RR:%d\r\n", ms->media->bandwidth_rr);
if (ms->media->bandwidth_rs >= 0)
g_string_append_printf(out, "b=RS:%d\r\n", ms->media->bandwidth_rs);
} }
else { else {
/* sdp bandwidth per session/media level
* 0 value is supported (e.g. b=RR:0 and b=RS:0), to be able to disable rtcp */
struct media_subscription *ms = call_get_top_media_subscription(monologue); struct media_subscription *ms = call_get_top_media_subscription(monologue);
if (!ms || !ms->monologue) if (!ms || !ms->monologue)
return; return;
sub_ml = ms->monologue; if (ms->monologue->sdp_session_rr >= 0)
} g_string_append_printf(out, "b=RR:%d\r\n", ms->monologue->sdp_session_rr);
if (ms->monologue->sdp_session_rs >= 0)
/* sdp bandwidth per media level */ g_string_append_printf(out, "b=RS:%d\r\n", ms->monologue->sdp_session_rs);
if (sub_media) {
if (sub_media->bandwidth_as >= 0)
g_string_append_printf(out, "b=AS:%d\r\n", sub_media->bandwidth_as);
if (sub_media->bandwidth_rr >= 0)
g_string_append_printf(out, "b=RR:%d\r\n", sub_media->bandwidth_rr);
if (sub_media->bandwidth_rs >= 0)
g_string_append_printf(out, "b=RS:%d\r\n", sub_media->bandwidth_rs);
}
else {
/* sdp bandwidth per session/media level
* 0 value is supported (e.g. b=RR:0 and b=RS:0), to be able to disable rtcp */
if (sub_ml->sdp_session_rr >= 0)
g_string_append_printf(out, "b=RR:%d\r\n", sub_ml->sdp_session_rr);
if (sub_ml->sdp_session_rs >= 0)
g_string_append_printf(out, "b=RS:%d\r\n", sub_ml->sdp_session_rs);
} }
} }

Loading…
Cancel
Save