|
|
|
|
@ -186,6 +186,7 @@ static void __handler_shutdown(struct codec_handler *handler) {
|
|
|
|
|
handler->dtmf_scaler = 0;
|
|
|
|
|
handler->output_handler = handler; // reset to default
|
|
|
|
|
handler->dtmf_payload_type = -1;
|
|
|
|
|
handler->cn_payload_type = -1;
|
|
|
|
|
handler->pcm_dtmf_detect = 0;
|
|
|
|
|
|
|
|
|
|
if (handler->stats_entry) {
|
|
|
|
|
@ -213,6 +214,7 @@ static struct codec_handler *__handler_new(const struct rtp_payload_type *pt, st
|
|
|
|
|
handler->source_pt = *pt;
|
|
|
|
|
handler->output_handler = handler; // default
|
|
|
|
|
handler->dtmf_payload_type = -1;
|
|
|
|
|
handler->cn_payload_type = -1;
|
|
|
|
|
handler->packet_encoded = packet_encoded_rtp;
|
|
|
|
|
handler->packet_decoded = packet_decoded_fifo;
|
|
|
|
|
handler->media = media;
|
|
|
|
|
@ -1132,6 +1134,7 @@ void codec_handlers_update(struct call_media *receiver, struct call_media *sink,
|
|
|
|
|
__symmetric_codecs(receiver, sink, &sink_transcoding);
|
|
|
|
|
|
|
|
|
|
int dtmf_payload_type = __dtmf_payload_type(supplemental_sinks, pref_dest_codec);
|
|
|
|
|
int cn_payload_type = __supp_payload_type(supplemental_sinks, pref_dest_codec, "CN");
|
|
|
|
|
|
|
|
|
|
g_hash_table_destroy(supplemental_sinks);
|
|
|
|
|
supplemental_sinks = NULL;
|
|
|
|
|
@ -1298,6 +1301,7 @@ transcode:;
|
|
|
|
|
}
|
|
|
|
|
MEDIA_SET(receiver, TRANSCODE);
|
|
|
|
|
__make_transcoder(handler, dest_pt, output_transcoders, dtmf_payload_type, pcm_dtmf_detect);
|
|
|
|
|
handler->cn_payload_type = cn_payload_type;
|
|
|
|
|
|
|
|
|
|
next:
|
|
|
|
|
l = l->next;
|
|
|
|
|
|