summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-06-04 16:31:12 +0200
committerSebastian Dröge <sebastian@centricular.com>2015-06-04 16:31:12 +0200
commitb3b2251c59aeea0439a2ce7f421ea3471365e394 (patch)
treef76495d8bc2ffd2cbcb1793ae8ada04d2b557e07 /gst-libs
parentce16635f46bbfab45d34d660ee95bacdf8edb76d (diff)
codec-utils: Add AAC channel configurations 11, 12 and 14 and levels 6 and 7
Diffstat (limited to 'gst-libs')
-rw-r--r--gst-libs/gst/pbutils/codec-utils.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gst-libs/gst/pbutils/codec-utils.c b/gst-libs/gst/pbutils/codec-utils.c
index 7aadecb17..8d9848113 100644
--- a/gst-libs/gst/pbutils/codec-utils.c
+++ b/gst-libs/gst/pbutils/codec-utils.c
@@ -258,12 +258,19 @@ gst_codec_utils_aac_get_level (const guint8 * audio_config, guint len)
num_cpe = 2;
break;
case 7:
+ case 12:
+ case 14:
/* front left, right, center and LFE; outside front left and right;
* rear left and right surround */
num_sce = 1;
num_cpe = 3;
num_lfe = 1;
break;
+ case 11:
+ num_sce = 2;
+ num_cpe = 2;
+ num_lfe = 1;
+ break;
default:
GST_WARNING ("Unknown channel config in header: %d", channel_config);
return NULL;
@@ -320,6 +327,10 @@ gst_codec_utils_aac_get_level (const guint8 * audio_config, guint len)
ret = 4;
else if (num_channels <= 5 && rate <= 96000 && pcu <= 38 && rcu <= 15)
ret = 5;
+ else if (num_channels <= 7 && rate <= 48000 && pcu <= 25 && rcu <= 19)
+ ret = 6;
+ else if (num_channels <= 7 && rate <= 96000 && pcu <= 50 && rcu <= 19)
+ ret = 7;
} else {
/* Return the level as per the 'Main Profile' */
if (pcu < 40 && rcu < 20)