|
|
|
|
@ -432,16 +432,12 @@ static struct rtp_payload_type *__check_dest_codecs(struct call_media *receiver,
|
|
|
|
|
struct rtp_payload_type *recv_pt = g_hash_table_lookup(receiver->codecs_send,
|
|
|
|
|
&pt->payload_type);
|
|
|
|
|
if (!recv_pt || rtp_payload_type_cmp(pt, recv_pt)) {
|
|
|
|
|
*sink_transcoding = 1;
|
|
|
|
|
// can the sink receive supplemental codec but the receiver can't send it?
|
|
|
|
|
__track_supp_codec(supplemental_sinks, pt);
|
|
|
|
|
*sink_transcoding = 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (flags && (flags->always_transcode || flags->inject_dtmf)) {
|
|
|
|
|
// with always-transcode, we must keep track of potential output supplemental payload
|
|
|
|
|
// types as well
|
|
|
|
|
__track_supp_codec(supplemental_sinks, pt);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
__track_supp_codec(supplemental_sinks, pt);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return pref_dest_codec;
|
|
|
|
|
@ -458,9 +454,8 @@ static void __check_send_codecs(struct call_media *receiver, struct call_media *
|
|
|
|
|
struct rtp_payload_type *recv_pt = g_hash_table_lookup(receiver->codecs_send,
|
|
|
|
|
&pt->payload_type);
|
|
|
|
|
if (!recv_pt || rtp_payload_type_cmp(pt, recv_pt) || (flags && flags->inject_dtmf)) {
|
|
|
|
|
*sink_transcoding = 1;
|
|
|
|
|
// can the sink receive supplemental codec but the receiver can't send it?
|
|
|
|
|
__track_supp_codec(supplemental_sinks, pt);
|
|
|
|
|
*sink_transcoding = 1;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|