summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZane van Iperen <[email protected]>2021-03-23 20:58:33 +1000
committerZane van Iperen <[email protected]>2021-03-25 16:34:40 +1000
commitf0169e9d58692235abcb82598b5bb4adf92dc3e2 (patch)
tree54ddc030400c5deb3b23562daf249015c8e198a4
parent2057068495496065a855e57ff103f1b7288405f6 (diff)
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 <[email protected]> (cherry picked from commit 660c14a9b9fe6e7add23163f8fc63a4f0824b434)
-rw-r--r--libavcodec/adpcm.c7
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;