Browse Source

MT#56471 support custom "new" fn for transcoders

Extend __make_transcoder_full with a custom callback function to create
the SSRC handlers.

Functional no-op.

Change-Id: I79cfabf6e9758b105a89908f9023bd773b838d9e
pull/1627/head
Richard Fuchs 3 years ago
parent
commit
ff193e0235
1 changed files with 4 additions and 3 deletions
  1. +4
    -3
      daemon/codec.c

+ 4
- 3
daemon/codec.c View File

@ -407,7 +407,8 @@ static void __reset_sequencer(void *p, void *dummy) {
} }
static void __make_transcoder_full(struct codec_handler *handler, struct rtp_payload_type *dest, static void __make_transcoder_full(struct codec_handler *handler, struct rtp_payload_type *dest,
GHashTable *output_transcoders, int dtmf_payload_type, bool pcm_dtmf_detect, GHashTable *output_transcoders, int dtmf_payload_type, bool pcm_dtmf_detect,
int cn_payload_type, int (*packet_decoded)(decoder_t *, AVFrame *, void *, void *))
int cn_payload_type, int (*packet_decoded)(decoder_t *, AVFrame *, void *, void *),
struct ssrc_entry *(*ssrc_handler_new_func)(void *p))
{ {
assert(handler->source_pt.codec_def != NULL); assert(handler->source_pt.codec_def != NULL);
@ -462,7 +463,7 @@ reset:
dest->payload_type, dest->payload_type,
dtmf_payload_type, cn_payload_type); dtmf_payload_type, cn_payload_type);
handler->ssrc_hash = create_ssrc_hash_full(__ssrc_handler_transcode_new, handler);
handler->ssrc_hash = create_ssrc_hash_full(ssrc_handler_new_func, handler);
// stats entry // stats entry
handler->stats_chain = g_strdup_printf(STR_FORMAT " -> " STR_FORMAT, handler->stats_chain = g_strdup_printf(STR_FORMAT " -> " STR_FORMAT,
@ -510,7 +511,7 @@ static void __make_transcoder(struct codec_handler *handler, struct rtp_payload_
int cn_payload_type) int cn_payload_type)
{ {
__make_transcoder_full(handler, dest, output_transcoders, dtmf_payload_type, pcm_dtmf_detect, __make_transcoder_full(handler, dest, output_transcoders, dtmf_payload_type, pcm_dtmf_detect,
cn_payload_type, packet_decoded_fifo);
cn_payload_type, packet_decoded_fifo, __ssrc_handler_transcode_new);
} }
// used for generic playback (audio_player, t38_gateway) // used for generic playback (audio_player, t38_gateway)


Loading…
Cancel
Save