@ -2347,9 +2347,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 )
@ -2359,7 +2361,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
@ -2374,9 +2377,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 ) ;
@ -2406,9 +2409,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 ) ;
codec_store_check_empty ( & other_media - > codecs , & sp - > codecs ) ;
@ -2951,7 +2954,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 ;
@ -3021,7 +3024,7 @@ static int monologue_subscribe_request1(struct call_monologue *src_ml, struct ca
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 ) ;
@ -3121,12 +3124,12 @@ int monologue_subscribe_answer(struct call_monologue *dst_ml, struct sdp_ng_flag
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 ;
}