Hello,
I've been experimenting with the use of mod_dahdi_codec and other ways
to perform external transcoding for codecs, and came up with noticing
that transcoding resources seemed to be used up twice what I expected. 
That is and 2x the number of call legs, ending up to two encoder and two
decoder instances per leg.


So, I looked at the code and noticed almost every endpoint module does
something like this (excerpt from mod_sofia, sofia_glue.c:~1800):

if (switch_core_codec_init(&tech_pvt->read_codec,
                   tech_pvt->iananame,
                   tech_pvt->rm_fmtp,
                   tech_pvt->rm_rate,
                   tech_pvt->codec_ms,
                   1,
                   SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE | 
tech_pvt->profile->codec_flags, 
                   NULL, switch_core_session_get_pool(tech_pvt->session)) != 
SWITCH_STATUS_SUCCESS) {
        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Can't load 
codec?\n");
        switch_goto_status(SWITCH_STATUS_FALSE, end);
}

if (switch_core_codec_init(&tech_pvt->write_codec,
                   tech_pvt->iananame,
                   tech_pvt->rm_fmtp,
                   tech_pvt->rm_rate,
                   tech_pvt->codec_ms,
                   1,
                   SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE | 
tech_pvt->profile->codec_flags, 
                   NULL, switch_core_session_get_pool(tech_pvt->session)) != 
SWITCH_STATUS_SUCCESS) {
        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Can't load 
codec?\n");
        switch_goto_status(SWITCH_STATUS_FALSE, end);
}


The flags being SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE
seems to be causing the apparent 'double' allocation of transcoding
resources, and I fail to understand the need for both, in both cases.

Could someone please spend a minute to explain?


thanks
lele





_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org

Reply via email to