diff options
author | Zane van Iperen <zane@zanevaniperen.com> | 2021-03-23 20:58:33 +1000 |
---|---|---|
committer | Zane van Iperen <zane@zanevaniperen.com> | 2021-03-25 12:51:08 +1000 |
commit | 660c14a9b9fe6e7add23163f8fc63a4f0824b434 (patch) | |
tree | 6e15c5692aeb74e53831e2e31c75a1f41efd8bbc /libavcodec | |
parent | efb58ec8f9c26f0b779a05df15782dfe002aaacc (diff) | |
download | ffmpeg-660c14a9b9fe6e7add23163f8fc63a4f0824b434.tar.gz |
avcodec/adpcm_argo: reset state on flush
Commit 003b5c800fef909fa84dd2fae43d66bd434d3f7e introduced seeking in argo_asf,
but this was missed, leading to non-deterministic output.
Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/adpcm.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c index b035406550..07fa1a65b3 100644 --- a/libavcodec/adpcm.c +++ b/libavcodec/adpcm.c @@ -2116,6 +2116,13 @@ static void adpcm_flush(AVCodecContext *avctx) c->status[channel].step = 0; break; + case AV_CODEC_ID_ADPCM_ARGO: + for (int channel = 0; channel < avctx->channels; channel++) { + c->status[channel].sample1 = 0; + c->status[channel].sample2 = 0; + } + break; + case AV_CODEC_ID_ADPCM_ZORK: for (int channel = 0; channel < avctx->channels; channel++) { c->status[channel].predictor = 0; |