@ -3477,27 +3477,38 @@ static void sdp_out_add_timing(GString *out, struct call_monologue *monologue)
static void sdp_out_add_bandwidth ( GString * out , struct call_monologue * monologue ,
struct call_media * media )
{
struct call_monologue * ml = monologue ;
struct media_subscription * ms = call_get_top_media_subscription ( monologue ) ;
if ( ms & & ms - > monologue )
ml = ms - > monologue ;
struct call_media * sub_media = NULL ;
struct call_monologue * sub_ml = NULL ;
/* sdp bandwidth per media level */
if ( media ) {
if ( media - > desired_bandwidth_as > = 0 )
g_string_append_printf ( out , " b=AS:%d \r \n " , media - > desired_bandwidth_as ) ;
if ( media - > desired_bandwidth_rr > = 0 )
g_string_append_printf ( out , " b=RR:%d \r \n " , media - > desired_bandwidth_rr ) ;
if ( media - > desired_bandwidth_rs > = 0 )
g_string_append_printf ( out , " b=RS:%d \r \n " , media - > desired_bandwidth_rs ) ;
struct media_subscription * ms = media - > media_subscriptions . head ? media - > media_subscriptions . head - > data : NULL ;
if ( ! ms | | ! ms - > media )
return ;
sub_media = ms - > media ;
}
else {
struct media_subscription * ms = call_get_top_media_subscription ( monologue ) ;
if ( ! ms | | ! ms - > monologue )
return ;
sub_ml = ms - > monologue ;
}
/* sdp bandwidth per media level */
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 ( ml - > sdp_session_rr > = 0 )
g_string_append_printf ( out , " b=RR:%d \r \n " , ml - > sdp_session_rr ) ;
if ( ml - > sdp_session_rs > = 0 )
g_string_append_printf ( out , " b=RS:%d \r \n " , ml - > sdp_session_rs ) ;
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 ) ;
}
}