aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/aacdec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-08-30 00:13:22 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-08-30 00:22:58 +0200
commit946ed78f5f8683229afe778a774c12b3a25aba57 (patch)
tree5e7e82a03a1d391af73d8a43baa35101c66d9abd /libavcodec/aacdec.c
parent0fc684ff7c8281b252556a94e58271b12e9e6080 (diff)
downloadffmpeg-946ed78f5f8683229afe778a774c12b3a25aba57.tar.gz
aacdec: fix priming/skip for AAC HE/HE2
There is a remaining error of 2 - 8 samples in some but not all cases, the source of the error is unknown ATM. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/aacdec.c')
-rw-r--r--libavcodec/aacdec.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
index ee6b112fd5..b0a072db18 100644
--- a/libavcodec/aacdec.c
+++ b/libavcodec/aacdec.c
@@ -2539,6 +2539,12 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
ac->oc[1].status = OC_LOCKED;
}
+ if (multiplier) {
+ int side_size;
+ uint32_t *side = av_packet_get_side_data(avpkt, AV_PKT_DATA_SKIP_SAMPLES, &side_size);
+ if (side && side_size>=4)
+ AV_WL32(side, 2*AV_RL32(side));
+ }
return 0;
fail:
pop_output_configuration(ac);