diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-08-30 00:13:22 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-08-30 00:22:58 +0200 |
commit | 946ed78f5f8683229afe778a774c12b3a25aba57 (patch) | |
tree | 5e7e82a03a1d391af73d8a43baa35101c66d9abd /libavcodec/aacdec.c | |
parent | 0fc684ff7c8281b252556a94e58271b12e9e6080 (diff) | |
download | ffmpeg-streaming-946ed78f5f8683229afe778a774c12b3a25aba57.zip ffmpeg-streaming-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.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c index ee6b112..b0a072d 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); |