diff options
author | George Joseph <gjoseph@digium.com> | 2018-03-16 09:19:11 -0600 |
---|---|---|
committer | George Joseph <gjoseph@digium.com> | 2018-03-19 15:36:09 -0600 |
commit | 5d097f82367f61bdae7d799c7815e69ba089d6d6 (patch) | |
tree | 1e8494dcc9a164a0c6f2615bee6531363d244374 /main/plc.c | |
parent | 5843a197979d10b336a041c6cb8bef90dfa0484a (diff) |
channel.c: Allow generic plc then channel formats are equal
If the two formats on a channel are equal, we don't transcode and since
the generic plc needs slin to work, it doesn't get invoked.
* A new configuration option "genericplc_on_equal_codecs" was added
to the "plc" section of codecs.conf to allow generic packet loss
concealment even if no transcoding was originally needed.
Transcoding via SLIN is forced in this case.
ASTERISK-27743
Change-Id: I0577026a179dea34232e63123254b4e0508378f4
Diffstat (limited to 'main/plc.c')
-rw-r--r-- | main/plc.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/main/plc.c b/main/plc.c index 847ce65b0..369d285a5 100644 --- a/main/plc.c +++ b/main/plc.c @@ -262,10 +262,19 @@ static int reload_module(void) for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) { if (!strcasecmp(var->name, "genericplc")) { ast_set2_flag(&ast_options, ast_true(var->value), AST_OPT_FLAG_GENERIC_PLC); + } else if (!strcasecmp(var->name, "genericplc_on_equal_codecs")) { + ast_set2_flag(&ast_options, ast_true(var->value), AST_OPT_FLAG_GENERIC_PLC_ON_EQUAL_CODECS); } } ast_config_destroy(cfg); + /* + * Force on_equal_codecs to false if generic_plc is false. + */ + if (!ast_opt_generic_plc) { + ast_set2_flag(&ast_options, 0, AST_OPT_FLAG_GENERIC_PLC_ON_EQUAL_CODECS); + } + return 0; } |