summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorAlexander Traud <pabstraud@compuserve.com>2017-11-25 11:09:08 +0100
committerAlexander Traud <pabstraud@compuserve.com>2017-11-25 04:10:45 -0600
commite2027b41e69672a8ea41b0a89e078368da44fc32 (patch)
tree740e40b45f2a662534fda2e7053d0c0e259e41c8 /main
parent5d1de669154a8e905ffee2d8ef9e14c18fbed7b5 (diff)
translate: Show sample rate for silk, speex, and slin in translation table.
ASTERISK-24662 Change-Id: I3822956984292c99c48bca8e97807e498ccc0e88
Diffstat (limited to 'main')
-rw-r--r--main/translate.c29
1 files changed, 26 insertions, 3 deletions
diff --git a/main/translate.c b/main/translate.c
index f2aa5886b..30f16492e 100644
--- a/main/translate.c
+++ b/main/translate.c
@@ -945,7 +945,8 @@ static void handle_cli_recalc(struct ast_cli_args *a)
static char *handle_show_translation_table(struct ast_cli_args *a)
{
int x, y, i, k;
- int longest = 0, num_codecs = 0, curlen = 0;
+ int longest = 7; /* slin192 */
+ int num_codecs = 0, curlen = 0;
struct ast_str *out = ast_str_create(1024);
struct ast_codec *codec;
@@ -982,6 +983,7 @@ static char *handle_show_translation_table(struct ast_cli_args *a)
ast_str_set(&out, 0, " ");
for (k = 0; k < num_codecs; k++) {
+ int adjust = 0;
struct ast_codec *col = k ? ast_codec_get_by_id(k) : NULL;
y = -1;
@@ -997,6 +999,12 @@ static char *handle_show_translation_table(struct ast_cli_args *a)
if (k > 0) {
curlen = strlen(col->name);
+ if (!strcmp(col->name, "slin") ||
+ !strcmp(col->name, "speex") ||
+ !strcmp(col->name, "silk")) {
+ adjust = log10(col->sample_rate / 1000) + 1;
+ curlen = curlen + adjust;
+ }
}
if (curlen < 5) {
@@ -1008,10 +1016,25 @@ static char *handle_show_translation_table(struct ast_cli_args *a)
ast_str_append(&out, 0, "%*u", curlen + 1, (matrix_get(x, y)->table_cost/100));
} else if (i == 0 && k > 0) {
/* Top row - use a dynamic size */
- ast_str_append(&out, 0, "%*s", curlen + 1, col->name);
+ if (!strcmp(col->name, "slin") ||
+ !strcmp(col->name, "speex") ||
+ !strcmp(col->name, "silk")) {
+ ast_str_append(&out, 0, "%*s%u", curlen - adjust + 1,
+ col->name, col->sample_rate / 1000);
+ } else {
+ ast_str_append(&out, 0, "%*s", curlen + 1, col->name);
+ }
} else if (k == 0 && i > 0) {
/* Left column - use a static size. */
- ast_str_append(&out, 0, "%*s", longest, row->name);
+ if (!strcmp(row->name, "slin") ||
+ !strcmp(row->name, "speex") ||
+ !strcmp(row->name, "silk")) {
+ int adjust_row = log10(row->sample_rate / 1000) + 1;
+ ast_str_append(&out, 0, "%*s%u", longest - adjust_row,
+ row->name, row->sample_rate / 1000);
+ } else {
+ ast_str_append(&out, 0, "%*s", longest, row->name);
+ }
} else if (x >= 0 && y >= 0) {
/* Codec not supported */
ast_str_append(&out, 0, "%*s", curlen + 1, "-");