@ -2317,9 +2317,11 @@ void codecs_offer_answer(struct call_media *media, struct call_media *other_medi
other_media - > index ) ;
if ( flags ) {
if ( flags - > reuse_codec )
codec_store_populate_reuse ( & other_media - > codecs , & sp - > codecs , flags - > codec_set ) ;
codec_store_populate_reuse ( & other_media - > codecs , & sp - > codecs , flags - > codec_set ,
false ) ;
else
codec_store_populate ( & other_media - > codecs , & sp - > codecs , flags - > codec_set ) ;
codec_store_populate ( & other_media - > codecs , & sp - > codecs , flags - > codec_set ,
false ) ;
codec_store_strip ( & other_media - > codecs , & flags - > codec_strip , flags - > codec_except ) ;
codec_store_offer ( & other_media - > codecs , & flags - > codec_offer , & sp - > codecs ) ;
if ( ! other_media - > codecs . strip_full )
@ -2328,7 +2330,8 @@ void codecs_offer_answer(struct call_media *media, struct call_media *other_medi
codec_store_accept ( & other_media - > codecs , & flags - > codec_consume , & sp - > codecs ) ;
codec_store_track ( & other_media - > codecs , & flags - > codec_mask ) ;
} else
codec_store_populate ( & other_media - > codecs , & sp - > codecs , NULL ) ;
codec_store_populate ( & other_media - > codecs , & sp - > codecs , NULL ,
false ) ;
/ / we don ' t update the answerer side if the offer is not RTP but is going
/ / to RTP ( i . e . T .38 transcoding ) - instead we leave the existing codec list
@ -2343,9 +2346,9 @@ void codecs_offer_answer(struct call_media *media, struct call_media *other_medi
STR_FMT ( & media - > monologue - > tag ) ,
media - > index ) ;
if ( flags & & flags - > reuse_codec )
codec_store_populate_reuse ( & media - > codecs , & sp - > codecs , NULL ) ;
codec_store_populate_reuse ( & media - > codecs , & sp - > codecs , NULL , false ) ;
else
codec_store_populate ( & media - > codecs , & sp - > codecs , NULL ) ;
codec_store_populate ( & media - > codecs , & sp - > codecs , NULL , false ) ;
}
if ( flags ) {
codec_store_strip ( & media - > codecs , & flags - > codec_strip , flags - > codec_except ) ;
@ -2374,9 +2377,9 @@ void codecs_offer_answer(struct call_media *media, struct call_media *other_medi
STR_FMT ( & other_media - > monologue - > tag ) ,
other_media - > index ) ;
if ( flags - > reuse_codec )
codec_store_populate_reuse ( & other_media - > codecs , & sp - > codecs , flags - > codec_set ) ;
codec_store_populate_reuse ( & other_media - > codecs , & sp - > codecs , flags - > codec_set , true ) ;
else
codec_store_populate ( & other_media - > codecs , & sp - > codecs , flags - > codec_set ) ;
codec_store_populate ( & other_media - > codecs , & sp - > codecs , flags - > codec_set , true ) ;
codec_store_strip ( & other_media - > codecs , & flags - > codec_strip , flags - > codec_except ) ;
codec_store_offer ( & other_media - > codecs , & flags - > codec_offer , & sp - > codecs ) ;
@ -2850,7 +2853,7 @@ int monologue_publish(struct call_monologue *ml, GQueue *streams, struct sdp_ng_
__media_init_from_flags ( media , NULL , sp , flags ) ;
codec_store_populate ( & media - > codecs , & sp - > codecs , NULL ) ;
codec_store_populate ( & media - > codecs , & sp - > codecs , NULL , false ) ;
if ( codec_store_accept_one ( & media - > codecs , & flags - > codec_accept , flags - > accept_any ? true : false ) )
return - 1 ;
@ -2917,7 +2920,7 @@ int monologue_subscribe_request(struct call_monologue *src_ml, struct call_monol
if ( __media_init_from_flags ( src_media , dst_media , sp , flags ) = = 1 )
continue ;
codec_store_populate ( & dst_media - > codecs , & src_media - > codecs , NULL ) ;
codec_store_populate ( & dst_media - > codecs , & src_media - > codecs , NULL , false ) ;
codec_store_strip ( & dst_media - > codecs , & flags - > codec_strip , flags - > codec_except ) ;
codec_store_strip ( & dst_media - > codecs , & flags - > codec_consume , flags - > codec_except ) ;
codec_store_strip ( & dst_media - > codecs , & flags - > codec_mask , flags - > codec_except ) ;
@ -2973,12 +2976,12 @@ int monologue_subscribe_answer(struct call_monologue *src_ml, struct call_monolo
continue ;
if ( flags & & flags - > allow_transcoding ) {
codec_store_populate ( & dst_media - > codecs , & sp - > codecs , flags - > codec_set ) ;
codec_store_populate ( & dst_media - > codecs , & sp - > codecs , flags - > codec_set , true ) ;
codec_store_strip ( & dst_media - > codecs , & flags - > codec_strip , flags - > codec_except ) ;
codec_store_offer ( & dst_media - > codecs , & flags - > codec_offer , & sp - > codecs ) ;
}
else {
codec_store_populate ( & dst_media - > codecs , & sp - > codecs , NULL ) ;
codec_store_populate ( & dst_media - > codecs , & sp - > codecs , NULL , true ) ;
if ( ! codec_store_is_full_answer ( & src_media - > codecs , & dst_media - > codecs ) )
return - 1 ;
}