Merge "translate: Show sample rate for silk, speex, and slin in translation table."

This commit is contained in:
Joshua Colp 2017-11-28 12:37:51 -06:00 committed by Gerrit Code Review
commit c7aa6e41c1
1 changed files with 26 additions and 3 deletions

View File

@ -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, "-");