Moar AAC fixes.

from Brad (maintainer)
This commit is contained in:
ajacoutot 2015-12-10 06:53:38 +00:00
parent 39df9a3ca3
commit df79e54670
6 changed files with 120 additions and 80 deletions

View File

@ -1,11 +1,11 @@
# $OpenBSD: Makefile,v 1.136 2015/12/06 08:51:46 ajacoutot Exp $
# $OpenBSD: Makefile,v 1.137 2015/12/10 06:53:38 ajacoutot Exp $
COMMENT= audio/video converter and streamer
V= 20151112
DISTNAME= ffmpeg-git-${V}
PKGNAME= ffmpeg-${V}
REVISION= 0
REVISION= 1
CATEGORIES= graphics multimedia
MASTER_SITES= http://comstyle.com/source/
EXTRACT_SUFX= .tar.xz

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-libavcodec_aaccoder_c,v 1.6 2015/12/06 08:51:46 ajacoutot Exp $
$OpenBSD: patch-libavcodec_aaccoder_c,v 1.7 2015/12/10 06:53:38 ajacoutot Exp $
aaccoder: use roundf() instead of ceilf()
@ -32,8 +32,10 @@ aaccoder: prevent crash of anmr coder
AAC encoder: ANMR, avoid empty search ranges
--- libavcodec/aaccoder.c.orig Sat Dec 5 15:12:49 2015
+++ libavcodec/aaccoder.c Sat Dec 5 15:07:36 2015
AAC encoder: fix OOB access in search_for_pns
--- libavcodec/aaccoder.c.orig Thu Nov 12 02:08:28 2015
+++ libavcodec/aaccoder.c Wed Dec 9 19:16:49 2015
@@ -33,7 +33,9 @@
#include "libavutil/libm.h" // brought forward to work around cygwin header breakage
@ -600,7 +602,7 @@ AAC encoder: ANMR, avoid empty search ranges
+ /* Estimate rd on average as 5 bits for SF, 4 for the CB, plus spread energy * lambda/thr */
+ dist2 += band->energy/(band->spread*band->spread)*lambda*dist_thresh/band->threshold;
+ }
+ if (g && sce->sf_idx[(w+w2)*16+g-1] == NOISE_BT) {
+ if (g && sce->band_type[w*16+g-1] == NOISE_BT) {
+ dist2 += 5;
+ } else {
+ dist2 += 9;

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-libavcodec_aacenc_c,v 1.8 2015/12/06 08:51:46 ajacoutot Exp $
$OpenBSD: patch-libavcodec_aacenc_c,v 1.9 2015/12/10 06:53:38 ajacoutot Exp $
aacenc: copy PRNG from the decoder
@ -44,8 +44,12 @@ aacenc: remove the experimental flag
aacenc: fix aac_pred option triggering an error
--- libavcodec/aacenc.c.orig Sat Dec 5 15:13:08 2015
+++ libavcodec/aacenc.c Sat Dec 5 15:11:04 2015
aacenc: move the TNS search and filtering before PNS
aacenc: update max_sfb when num_swb changes
--- libavcodec/aacenc.c.orig Thu Nov 12 02:08:28 2015
+++ libavcodec/aacenc.c Wed Dec 9 01:12:49 2015
@@ -54,11 +54,12 @@ static void put_audio_specific_config(AVCodecContext *
{
PutBitContext pb;
@ -145,7 +149,15 @@ aacenc: fix aac_pred option triggering an error
ics->window_sequence[0]);
}
ics->window_sequence[1] = ics->window_sequence[0];
@@ -570,25 +594,32 @@ static int aac_encode_frame(AVCodecContext *avctx, AVP
@@ -547,6 +571,7 @@ static int aac_encode_frame(AVCodecContext *avctx, AVP
ics->num_windows = wi[ch].num_windows;
ics->swb_sizes = s->psy.bands [ics->num_windows == 8];
ics->num_swb = tag == TYPE_LFE ? ics->num_swb : s->psy.num_bands[ics->num_windows == 8];
+ ics->max_sfb = FFMIN(ics->max_sfb, ics->num_swb);
ics->swb_offset = wi[ch].window_type[0] == EIGHT_SHORT_SEQUENCE ?
ff_swb_offset_128 [s->samplerate_index]:
ff_swb_offset_1024[s->samplerate_index];
@@ -570,25 +595,32 @@ static int aac_encode_frame(AVCodecContext *avctx, AVP
ics->clip_avoidance_factor = 1.0f;
}
@ -182,7 +194,7 @@ aacenc: fix aac_pred option triggering an error
memset(chan_el_counter, 0, sizeof(chan_el_counter));
for (i = 0; i < s->chan_map[0]; i++) {
FFPsyWindowInfo* wi = windows + start_ch;
@@ -605,15 +636,28 @@ static int aac_encode_frame(AVCodecContext *avctx, AVP
@@ -605,15 +637,28 @@ static int aac_encode_frame(AVCodecContext *avctx, AVP
sce = &cpe->ch[ch];
coeffs[ch] = sce->coeffs;
sce->ics.predictor_present = 0;
@ -212,7 +224,24 @@ aacenc: fix aac_pred option triggering an error
s->coder->search_for_quantizers(avctx, s, &cpe->ch[ch], s->lambda);
}
if (chans > 1
@@ -655,8 +699,8 @@ static int aac_encode_frame(AVCodecContext *avctx, AVP
@@ -631,14 +676,14 @@ static int aac_encode_frame(AVCodecContext *avctx, AVP
for (ch = 0; ch < chans; ch++) { /* TNS and PNS */
sce = &cpe->ch[ch];
s->cur_channel = start_ch + ch;
- if (s->options.pns && s->coder->search_for_pns)
- s->coder->search_for_pns(s, avctx, sce);
if (s->options.tns && s->coder->search_for_tns)
s->coder->search_for_tns(s, sce);
if (s->options.tns && s->coder->apply_tns_filt)
s->coder->apply_tns_filt(s, sce);
if (sce->tns.present)
tns_mode = 1;
+ if (s->options.pns && s->coder->search_for_pns)
+ s->coder->search_for_pns(s, avctx, sce);
}
s->cur_channel = start_ch;
if (s->options.intensity_stereo) { /* Intensity Stereo */
@@ -655,8 +700,8 @@ static int aac_encode_frame(AVCodecContext *avctx, AVP
s->coder->search_for_pred(s, sce);
if (cpe->ch[ch].ics.predictor_present) pred_mode = 1;
}
@ -223,7 +252,7 @@ aacenc: fix aac_pred option triggering an error
for (ch = 0; ch < chans; ch++) {
sce = &cpe->ch[ch];
s->cur_channel = start_ch + ch;
@@ -665,22 +709,34 @@ static int aac_encode_frame(AVCodecContext *avctx, AVP
@@ -665,22 +710,34 @@ static int aac_encode_frame(AVCodecContext *avctx, AVP
}
s->cur_channel = start_ch;
}
@ -262,7 +291,7 @@ aacenc: fix aac_pred option triggering an error
encode_ms_info(&s->pb, cpe);
if (cpe->ms_mode) ms_mode = 1;
}
@@ -692,36 +748,76 @@ static int aac_encode_frame(AVCodecContext *avctx, AVP
@@ -692,36 +749,76 @@ static int aac_encode_frame(AVCodecContext *avctx, AVP
start_ch += chans;
}
@ -359,7 +388,7 @@ aacenc: fix aac_pred option triggering an error
if (!frame)
s->last_frame++;
@@ -737,6 +833,8 @@ static av_cold int aac_encode_end(AVCodecContext *avct
@@ -737,6 +834,8 @@ static av_cold int aac_encode_end(AVCodecContext *avct
{
AACEncContext *s = avctx->priv_data;
@ -368,7 +397,7 @@ aacenc: fix aac_pred option triggering an error
ff_mdct_end(&s->mdct1024);
ff_mdct_end(&s->mdct128);
ff_psy_end(&s->psy);
@@ -795,76 +893,105 @@ static av_cold int aac_encode_init(AVCodecContext *avc
@@ -795,76 +894,105 @@ static av_cold int aac_encode_init(AVCodecContext *avc
uint8_t grouping[AAC_MAX_CHANNELS];
int lengths[2];
@ -506,7 +535,7 @@ aacenc: fix aac_pred option triggering an error
ff_af_queue_init(avctx, &s->afq);
return 0;
@@ -875,27 +1002,17 @@ fail:
@@ -875,27 +1003,17 @@ fail:
#define AACENC_FLAGS AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM
static const AVOption aacenc_options[] = {
@ -545,7 +574,7 @@ aacenc: fix aac_pred option triggering an error
{NULL}
};
@@ -916,8 +1033,7 @@ AVCodec ff_aac_encoder = {
@@ -916,8 +1034,7 @@ AVCodec ff_aac_encoder = {
.encode2 = aac_encode_frame,
.close = aac_encode_end,
.supported_samplerates = mpeg4audio_sample_rates,

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-libavcodec_aacenc_ltp_c,v 1.3 2015/12/06 08:51:46 ajacoutot Exp $
$OpenBSD: patch-libavcodec_aacenc_ltp_c,v 1.4 2015/12/10 06:53:38 ajacoutot Exp $
aacenc: add support for encoding files using Long Term Prediction
@ -16,8 +16,10 @@ aac_ltp: actually signal LTP as off during EIGHT_SHORT windows
aacenc_ltp: fix out of bounds memory access
--- libavcodec/aacenc_ltp.c.orig Sat Dec 5 15:13:26 2015
+++ libavcodec/aacenc_ltp.c Sat Dec 5 15:03:12 2015
aacenc_ltp: disable LTP with high lambda values
--- libavcodec/aacenc_ltp.c.orig Wed Dec 9 01:10:22 2015
+++ libavcodec/aacenc_ltp.c Wed Dec 9 01:11:54 2015
@@ -0,0 +1,236 @@
+/*
+ * AAC encoder long term prediction extension
@ -194,7 +196,7 @@ aacenc_ltp: fix out of bounds memory access
+ return;
+ }
+
+ if (!sce->ics.ltp.lag)
+ if (!sce->ics.ltp.lag || s->lambda > 120.0f)
+ return;
+
+ for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) {

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-libavcodec_aacenc_tns_c,v 1.4 2015/12/06 08:51:46 ajacoutot Exp $
$OpenBSD: patch-libavcodec_aacenc_tns_c,v 1.5 2015/12/10 06:53:38 ajacoutot Exp $
aacenc_tns: redo coefficient quantization and decision making
@ -16,9 +16,13 @@ aacenc_tns: rework TNS descision logic
aacenc_ltp: use an AR filter for LTP encoding as well
--- libavcodec/aacenc_tns.c.orig Sat Dec 5 15:13:37 2015
+++ libavcodec/aacenc_tns.c Sat Dec 5 15:12:34 2015
@@ -31,56 +31,75 @@
aacenc_tns: tune and reduce artifacts
aacenc_tns: use 4 bits for short windows
--- libavcodec/aacenc_tns.c.orig Thu Nov 12 02:08:28 2015
+++ libavcodec/aacenc_tns.c Wed Dec 9 01:11:15 2015
@@ -31,56 +31,72 @@
#include "aacenc_utils.h"
#include "aacenc_quantization.h"
@ -28,15 +32,12 @@ aacenc_ltp: use an AR filter for LTP encoding as well
+/* Coefficient resolution in short windows */
+#define TNS_Q_BITS_IS8 4
+
+/* Define this to save a bit, be warned decoders can't deal with it
+ * so it is not lossless despite what the specifications say */
+// #define TNS_ENABLE_COEF_COMPRESSION
+/* We really need the bits we save here elsewhere */
+#define TNS_ENABLE_COEF_COMPRESSION
+
+/* TNS will only be used if the LPC gain is within these margins */
+#define TNS_GAIN_THRESHOLD_LOW 1.477f
+#define TNS_GAIN_THRESHOLD_HIGH 7.0f
+#define TNS_GAIN_THRESHOLD_LOW_IS8 0.16f*TNS_GAIN_THRESHOLD_LOW
+#define TNS_GAIN_THRESHOLD_HIGH_IS8 0.26f*TNS_GAIN_THRESHOLD_HIGH
+#define TNS_GAIN_THRESHOLD_LOW 1.4f
+#define TNS_GAIN_THRESHOLD_HIGH 1.16f*TNS_GAIN_THRESHOLD_LOW
+
+static inline int compress_coeffs(int *coef, int order, int c_bits)
+{
@ -67,8 +68,8 @@ aacenc_ltp: use an AR filter for LTP encoding as well
- const uint8_t coef_res = TNS_Q_BITS == 4;
- int i, w, filt, coef_len, coef_compress = 0;
- const int is8 = sce->ics.window_sequence[0] == EIGHT_SHORT_SEQUENCE;
+ int i, w, filt, coef_compress = 0, coef_len;
TemporalNoiseShaping *tns = &sce->tns;
+ int i, w, filt, coef_compress = 0, coef_len;
+ const int is8 = sce->ics.window_sequence[0] == EIGHT_SHORT_SEQUENCE;
+ const int c_bits = is8 ? TNS_Q_BITS_IS8 == 4 : TNS_Q_BITS == 4;
@ -128,7 +129,7 @@ aacenc_ltp: use an AR filter for LTP encoding as well
/* Apply TNS filter */
void ff_aac_apply_tns(AACEncContext *s, SingleChannelElement *sce)
{
@@ -114,28 +133,50 @@ void ff_aac_apply_tns(AACEncContext *s, SingleChannelE
@@ -114,81 +130,87 @@ void ff_aac_apply_tns(AACEncContext *s, SingleChannelE
}
start += w * 128;
@ -154,7 +155,7 @@ aacenc_ltp: use an AR filter for LTP encoding as well
+ int i;
+ const float *quant_arr = tns_tmp2_map[c_bits];
+ for (i = 0; i < order; i++) {
+ idx[i] = quant_array_idx((float)coef[i], quant_arr, c_bits ? 16 : 8);
+ idx[i] = quant_array_idx(coef[i], quant_arr, c_bits ? 16 : 8);
+ lpc[i] = quant_arr[idx[i]];
+ }
+}
@ -165,27 +166,36 @@ aacenc_ltp: use an AR filter for LTP encoding as well
void ff_aac_search_for_tns(AACEncContext *s, SingleChannelElement *sce)
{
TemporalNoiseShaping *tns = &sce->tns;
+ double gain, coefs[MAX_LPC_ORDER];
int w, w2, g, count = 0;
+ double gain, coefs[MAX_LPC_ORDER];
const int mmm = FFMIN(sce->ics.tns_max_bands, sce->ics.max_sfb);
const int is8 = sce->ics.window_sequence[0] == EIGHT_SHORT_SEQUENCE;
- const int order = is8 ? 7 : s->profile == FF_PROFILE_AAC_LOW ? 12 : TNS_MAX_ORDER;
+ const int c_bits = is8 ? TNS_Q_BITS_IS8 == 4 : TNS_Q_BITS == 4;
+ const int sfb_start = av_clip(tns_min_sfb[is8][s->samplerate_index], 0, mmm);
+ const int sfb_end = av_clip(sce->ics.num_swb, 0, mmm);
const int order = is8 ? 7 : s->profile == FF_PROFILE_AAC_LOW ? 12 : TNS_MAX_ORDER;
+ const int slant = sce->ics.window_sequence[0] == LONG_STOP_SEQUENCE ? 1 :
+ sce->ics.window_sequence[0] == LONG_START_SEQUENCE ? 0 : 2;
int sfb_start = av_clip(tns_min_sfb[is8][s->samplerate_index], 0, mmm);
int sfb_end = av_clip(sce->ics.num_swb, 0, mmm);
+ int order = is8 ? 5 : s->profile == FF_PROFILE_AAC_LOW ? 12 : TNS_MAX_ORDER;
- int sfb_start = av_clip(tns_min_sfb[is8][s->samplerate_index], 0, mmm);
- int sfb_end = av_clip(sce->ics.num_swb, 0, mmm);
-
for (w = 0; w < sce->ics.num_windows; w++) {
- float e_ratio = 0.0f, threshold = 0.0f, spread = 0.0f, en[2] = {0.0, 0.0f};
- double gain = 0.0f, coefs[MAX_LPC_ORDER] = {0};
+ float en[2] = {0.0f, 0.0f};
+ int oc_start = 0, os_start = 0;
int coef_start = w*sce->ics.num_swb + sce->ics.swb_offset[sfb_start];
int coef_len = sce->ics.swb_offset[sfb_end] - sce->ics.swb_offset[sfb_start];
+ const int sfb_len = sfb_end - sfb_start;
@@ -148,47 +189,42 @@ void ff_aac_search_for_tns(AACEncContext *s, SingleCha
for (g = 0; g < sce->ics.num_swb; g++) {
if (w*16+g < sfb_start || w*16+g > sfb_end)
continue;
for (w2 = 0; w2 < sce->ics.group_len[w]; w2++) {
FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g];
- if ((w+w2)*16+g > sfb_start + ((sfb_end - sfb_start)/2))
+ if ((w+w2)*16+g > sfb_start + (sfb_len/2))
en[1] += band->energy;
else
en[0] += band->energy;
@ -194,7 +204,8 @@ aacenc_ltp: use an AR filter for LTP encoding as well
}
}
if (coef_len <= 0 || (sfb_end - sfb_start) <= 0)
- if (coef_len <= 0 || (sfb_end - sfb_start) <= 0)
+ if (coef_len <= 0 || sfb_len <= 0)
continue;
- else
- e_ratio = en[0]/en[1];
@ -221,37 +232,27 @@ aacenc_ltp: use an AR filter for LTP encoding as well
- tns->direction[w][g] = en[g] < en[!g];
- tns->order[w][g] = !g ? order/2 : order - tns->order[w][g-1];
- tns->length[w][g] = !g ? (sfb_end - sfb_start)/2 : \
+ if (!order || gain < TNS_GAIN_THRESHOLD_LOW || gain > TNS_GAIN_THRESHOLD_HIGH)
+ continue;
+ if (is8 && (gain < TNS_GAIN_THRESHOLD_LOW_IS8 || gain > TNS_GAIN_THRESHOLD_HIGH_IS8))
+ continue;
+ if (is8 || order < 2) {
+ tns->n_filt[w] = 1;
+ for (g = 0; g < tns->n_filt[w]; g++) {
+ tns->length[w][g] = sfb_end - sfb_start;
+ tns->direction[w][g] = slant != 2 ? slant : en[0] < en[1];
+ tns->order[w][g] = order;
+ quantize_coefs(coefs, tns->coef_idx[w][g], tns->coef[w][g],
+ order, c_bits);
+ }
+ } else { /* 2 filters due to energy disbalance */
+ tns->n_filt[w] = 2;
+ for (g = 0; g < tns->n_filt[w]; g++) {
+ tns->direction[w][g] = slant != 2 ? slant : en[g] < en[!g];
+ tns->order[w][g] = !g ? order/2 : order - tns->order[w][g-1];
+ tns->length[w][g] = !g ? (sfb_end - sfb_start)/2 : \
(sfb_end - sfb_start) - tns->length[w][g-1];
- (sfb_end - sfb_start) - tns->length[w][g-1];
- quantize_coefs(&coefs[!g ? 0 : order - tns->order[w][g-1]],
- tns->coef_idx[w][g], tns->coef[w][g],
- tns->order[w][g]);
- }
+ quantize_coefs(&coefs[!g ? 0 : order - tns->order[w][g-1]],
+ tns->coef_idx[w][g], tns->coef[w][g],
+ tns->order[w][g], c_bits);
}
- }
- count++;
+ if (!order || gain < TNS_GAIN_THRESHOLD_LOW || gain > TNS_GAIN_THRESHOLD_HIGH)
+ continue;
+
+ tns->n_filt[w] = is8 ? 1 : order != TNS_MAX_ORDER ? 2 : 3;
+ for (g = 0; g < tns->n_filt[w]; g++) {
+ tns->direction[w][g] = slant != 2 ? slant : en[g] < en[!g];
+ tns->order[w][g] = g < tns->n_filt[w] ? order/tns->n_filt[w] : order - oc_start;
+ tns->length[w][g] = g < tns->n_filt[w] ? sfb_len/tns->n_filt[w] : sfb_len - os_start;
+ quantize_coefs(&coefs[oc_start], tns->coef_idx[w][g], tns->coef[w][g],
+ tns->order[w][g], c_bits);
+ oc_start += tns->order[w][g];
+ os_start += tns->length[w][g];
}
+ count += tns->n_filt[w];
+ count++;
}
-
sce->tns.present = !!count;

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-tests_fate_aac_mak,v 1.4 2015/12/06 08:51:46 ajacoutot Exp $
$OpenBSD: patch-tests_fate_aac_mak,v 1.5 2015/12/10 06:53:38 ajacoutot Exp $
fate: adjust AAC encoder tests values
@ -50,8 +50,14 @@ AAC encoder: improve SF range utilization
aacenc_ltp: fix out of bounds memory access
--- tests/fate/aac.mak.orig Sat Dec 5 15:33:14 2015
+++ tests/fate/aac.mak Sat Dec 5 15:32:01 2015
fate: change the CMP_TARGETs for the recent AAC encoder changes
aacenc_tns: use 4 bits for short windows
aacenc_ltp: disable LTP with high lambda values
--- tests/fate/aac.mak.orig Thu Nov 12 02:08:31 2015
+++ tests/fate/aac.mak Wed Dec 9 01:10:59 2015
@@ -142,56 +142,84 @@ FATE_AAC += $(FATE_AAC_CT:%=fate-aac-ct-%)
FATE_AAC_ENCODE += fate-aac-aref-encode
@ -62,7 +68,7 @@ aacenc_ltp: fix out of bounds memory access
fate-aac-aref-encode: REF = ./tests/data/asynth-44100-2.wav
fate-aac-aref-encode: CMP_SHIFT = -4096
-fate-aac-aref-encode: CMP_TARGET = 594
+fate-aac-aref-encode: CMP_TARGET = 670
+fate-aac-aref-encode: CMP_TARGET = 586
fate-aac-aref-encode: SIZE_TOLERANCE = 2464
-fate-aac-aref-encode: FUZZ = 6
+fate-aac-aref-encode: FUZZ = 89
@ -74,7 +80,7 @@ aacenc_ltp: fix out of bounds memory access
fate-aac-ln-encode: REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
fate-aac-ln-encode: CMP_SHIFT = -4096
-fate-aac-ln-encode: CMP_TARGET = 68
+fate-aac-ln-encode: CMP_TARGET = 50
+fate-aac-ln-encode: CMP_TARGET = 61
fate-aac-ln-encode: SIZE_TOLERANCE = 3560
+fate-aac-ln-encode: FUZZ = 30
@ -83,7 +89,7 @@ aacenc_ltp: fix out of bounds memory access
+fate-aac-ln-encode-128k: CMP = stddev
+fate-aac-ln-encode-128k: REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
+fate-aac-ln-encode-128k: CMP_SHIFT = -4096
+fate-aac-ln-encode-128k: CMP_TARGET = 798
+fate-aac-ln-encode-128k: CMP_TARGET = 800
+fate-aac-ln-encode-128k: SIZE_TOLERANCE = 3560
+fate-aac-ln-encode-128k: FUZZ = 5
+
@ -94,7 +100,7 @@ aacenc_ltp: fix out of bounds memory access
fate-aac-pns-encode: REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
fate-aac-pns-encode: CMP_SHIFT = -4096
-fate-aac-pns-encode: CMP_TARGET = 646.89
+fate-aac-pns-encode: CMP_TARGET = 663
+fate-aac-pns-encode: CMP_TARGET = 616
fate-aac-pns-encode: SIZE_TOLERANCE = 3560
-fate-aac-pns-encode: FUZZ = 5
+fate-aac-pns-encode: FUZZ = 72
@ -107,7 +113,7 @@ aacenc_ltp: fix out of bounds memory access
fate-aac-tns-encode: CMP_SHIFT = -4096
-fate-aac-tns-encode: CMP_TARGET = 648.50
-fate-aac-tns-encode: FUZZ = 2.8
+fate-aac-tns-encode: CMP_TARGET = 857
+fate-aac-tns-encode: CMP_TARGET = 817
+fate-aac-tns-encode: FUZZ = 6
fate-aac-tns-encode: SIZE_TOLERANCE = 3560
@ -128,7 +134,7 @@ aacenc_ltp: fix out of bounds memory access
+fate-aac-ms-encode: CMP = stddev
+fate-aac-ms-encode: REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
+fate-aac-ms-encode: CMP_SHIFT = -4096
+fate-aac-ms-encode: CMP_TARGET = 682
+fate-aac-ms-encode: CMP_TARGET = 675
+fate-aac-ms-encode: SIZE_TOLERANCE = 3560
+fate-aac-ms-encode: FUZZ = 15
+
@ -137,7 +143,7 @@ aacenc_ltp: fix out of bounds memory access
+fate-aac-ltp-encode: CMP = stddev
+fate-aac-ltp-encode: REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
+fate-aac-ltp-encode: CMP_SHIFT = -4096
+fate-aac-ltp-encode: CMP_TARGET = 1273
+fate-aac-ltp-encode: CMP_TARGET = 1270
+fate-aac-ltp-encode: SIZE_TOLERANCE = 3560
+fate-aac-ltp-encode: FUZZ = 17
+
@ -149,7 +155,7 @@ aacenc_ltp: fix out of bounds memory access
fate-aac-pred-encode: CMP_SHIFT = -4096
-fate-aac-pred-encode: CMP_TARGET = 652.60
-fate-aac-pred-encode: FUZZ = 10
+fate-aac-pred-encode: CMP_TARGET = 835
+fate-aac-pred-encode: CMP_TARGET = 841
+fate-aac-pred-encode: FUZZ = 12
fate-aac-pred-encode: SIZE_TOLERANCE = 3560