summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-01-05 01:48:29 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-01-05 02:02:02 +0100
commit4195ae0fd81534b4e68b9b3533f9da9b0a19a5fe (patch)
tree8cc4f58c4ec84c156232ba68e7c92e3be4f14be2 /libavcodec
parentc69906151b50e7e5ebc8e0ef5906accfe7465f4f (diff)
parentb2212dec0f011893ec68eecaa990170fa24050d7 (diff)
Merge commit 'b2212dec0f011893ec68eecaa990170fa24050d7'
* commit 'b2212dec0f011893ec68eecaa990170fa24050d7': aac: Fix TNS decoding for the 512 sample window family. also temporarily disable fate-aac-er_ad6000np_44_ep0 as this commit causes a mismatch with the reference pcm file The test will be reenabled after all fixes and with a new pcm reference Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/aacdec.c3
-rw-r--r--libavcodec/aactab.c4
-rw-r--r--libavcodec/aactab.h1
3 files changed, 7 insertions, 1 deletions
diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
index 1e15cb45fc..bb69d5d0e7 100644
--- a/libavcodec/aacdec.c
+++ b/libavcodec/aacdec.c
@@ -1246,13 +1246,14 @@ static int decode_ics_info(AACContext *ac, IndividualChannelStream *ics,
if (aot == AOT_ER_AAC_LD || aot == AOT_ER_AAC_ELD) {
ics->swb_offset = ff_swb_offset_512[ac->oc[1].m4ac.sampling_index];
ics->num_swb = ff_aac_num_swb_512[ac->oc[1].m4ac.sampling_index];
+ ics->tns_max_bands = ff_tns_max_bands_512[ac->oc[1].m4ac.sampling_index];
if (!ics->num_swb || !ics->swb_offset)
return AVERROR_BUG;
} else {
ics->swb_offset = ff_swb_offset_1024[ac->oc[1].m4ac.sampling_index];
ics->num_swb = ff_aac_num_swb_1024[ac->oc[1].m4ac.sampling_index];
+ ics->tns_max_bands = ff_tns_max_bands_1024[ac->oc[1].m4ac.sampling_index];
}
- ics->tns_max_bands = ff_tns_max_bands_1024[ac->oc[1].m4ac.sampling_index];
if (aot != AOT_ER_AAC_ELD) {
ics->predictor_present = get_bits1(gb);
ics->predictor_reset_group = 0;
diff --git a/libavcodec/aactab.c b/libavcodec/aactab.c
index 7ec8374535..5a2aea4852 100644
--- a/libavcodec/aactab.c
+++ b/libavcodec/aactab.c
@@ -1237,6 +1237,10 @@ const uint8_t ff_tns_max_bands_1024[] = {
31, 31, 34, 40, 42, 51, 46, 46, 42, 42, 42, 39, 39
};
+const uint8_t ff_tns_max_bands_512[] = {
+ 0, 0, 0, 31, 32, 37, 31, 31, 0, 0, 0, 0, 0
+};
+
const uint8_t ff_tns_max_bands_128[] = {
9, 9, 10, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14
};
diff --git a/libavcodec/aactab.h b/libavcodec/aactab.h
index 699d99d696..4d0b104653 100644
--- a/libavcodec/aactab.h
+++ b/libavcodec/aactab.h
@@ -76,6 +76,7 @@ extern const uint16_t * const ff_swb_offset_512 [13];
extern const uint16_t * const ff_swb_offset_128 [13];
extern const uint8_t ff_tns_max_bands_1024[13];
+extern const uint8_t ff_tns_max_bands_512 [13];
extern const uint8_t ff_tns_max_bands_128 [13];
#endif /* AVCODEC_AACTAB_H */