summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/asterisk/translate.h2
-rw-r--r--main/translate.c8
2 files changed, 5 insertions, 5 deletions
diff --git a/include/asterisk/translate.h b/include/asterisk/translate.h
index 2db3019c1..48b5bf091 100644
--- a/include/asterisk/translate.h
+++ b/include/asterisk/translate.h
@@ -24,7 +24,7 @@
#ifndef _ASTERISK_TRANSLATE_H
#define _ASTERISK_TRANSLATE_H
-//#define MAX_FORMAT 15 /* Do not include video here */
+#define MAX_AUDIO_FORMAT 15 /* Do not include video here */
#define MAX_FORMAT 32 /* Do include video here */
#if defined(__cplusplus) || defined(c_plusplus)
diff --git a/main/translate.c b/main/translate.c
index 9c5da5c80..7f7af4cfd 100644
--- a/main/translate.c
+++ b/main/translate.c
@@ -717,10 +717,10 @@ int ast_translator_best_choice(int *dst, int *srcs)
int cur, cursrc;
int besttime = INT_MAX;
int beststeps = INT_MAX;
- int common = (*dst) & (*srcs); /* are there common formats ? */
+ int common = ((*dst) & (*srcs)) & AST_FORMAT_AUDIO_MASK; /* are there common formats ? */
if (common) { /* yes, pick one and return */
- for (cur = 1, y = 0; y < MAX_FORMAT; cur <<= 1, y++) {
+ for (cur = 1, y = 0; y <= MAX_AUDIO_FORMAT; cur <<= 1, y++) {
if (cur & common) /* guaranteed to find one */
break;
}
@@ -729,10 +729,10 @@ int ast_translator_best_choice(int *dst, int *srcs)
return 0;
} else { /* No, we will need to translate */
AST_RWLIST_RDLOCK(&translators);
- for (cur = 1, y = 0; y < MAX_FORMAT; cur <<= 1, y++) {
+ for (cur = 1, y = 0; y <= MAX_AUDIO_FORMAT; cur <<= 1, y++) {
if (! (cur & *dst))
continue;
- for (cursrc = 1, x = 0; x < MAX_FORMAT; cursrc <<= 1, x++) {
+ for (cursrc = 1, x = 0; x <= MAX_AUDIO_FORMAT; cursrc <<= 1, x++) {
if (!(*srcs & cursrc) || !tr_matrix[x][y].step ||
tr_matrix[x][y].cost > besttime)
continue; /* not existing or no better */