|
|
|
@ -1007,8 +1007,6 @@ void codec_handlers_update(struct call_media *receiver, struct call_media *sink, |
|
|
|
// we ignore output codec matches if we must transcode DTMF |
|
|
|
if (dtmf_pt && !reverse_dtmf_pt) |
|
|
|
; |
|
|
|
else if (flags && flags->inject_dtmf) |
|
|
|
; |
|
|
|
else |
|
|
|
dest_codecs = g_hash_table_lookup(sink->codec_names_send, &pt->encoding); |
|
|
|
} |
|
|
|
@ -1042,6 +1040,13 @@ void codec_handlers_update(struct call_media *receiver, struct call_media *sink, |
|
|
|
goto transcode; |
|
|
|
} |
|
|
|
|
|
|
|
if (flags && flags->inject_dtmf) { |
|
|
|
// we have a matching output codec, but we were told that we might |
|
|
|
// want to inject DTMF, so we must still go through our transcoding |
|
|
|
// engine, despite input and output codecs being the same. |
|
|
|
goto transcode; |
|
|
|
} |
|
|
|
|
|
|
|
// XXX check format parameters as well |
|
|
|
ilog(LOG_DEBUG, "Sink supports codec " STR_FORMAT, STR_FMT(&pt->encoding_with_params)); |
|
|
|
__make_passthrough_gsl(handler, &passthrough_handlers); |
|
|
|
|