summaryrefslogtreecommitdiff
path: root/libavcodec/adpcm.c
diff options
context:
space:
mode:
authorZane van Iperen <zane@zanevaniperen.com>2021-03-23 20:55:17 +1000
committerZane van Iperen <zane@zanevaniperen.com>2021-03-25 12:51:08 +1000
commitefb58ec8f9c26f0b779a05df15782dfe002aaacc (patch)
tree09b8aaf4e5d4e5fba64540e3131060ab5d78317d /libavcodec/adpcm.c
parent95280cf3e795c18175f7e5ca8bb05ef40abb6c42 (diff)
avcodec/adpcm_aica: reset state in flush callback
Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
Diffstat (limited to 'libavcodec/adpcm.c')
-rw-r--r--libavcodec/adpcm.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index b145622f4f..b035406550 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -1811,11 +1811,6 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
}
break;
case AV_CODEC_ID_ADPCM_AICA:
- if (!c->has_status) {
- for (channel = 0; channel < avctx->channels; channel++)
- c->status[channel].step = 0;
- c->has_status = 1;
- }
for (channel = 0; channel < avctx->channels; channel++) {
samples = samples_p[channel];
for (n = nb_samples >> 1; n > 0; n--) {
@@ -2116,6 +2111,11 @@ static void adpcm_flush(AVCodecContext *avctx)
ADPCMDecodeContext *c = avctx->priv_data;
switch(avctx->codec_id) {
+ case AV_CODEC_ID_ADPCM_AICA:
+ for (int channel = 0; channel < avctx->channels; channel++)
+ c->status[channel].step = 0;
+ break;
+
case AV_CODEC_ID_ADPCM_ZORK:
for (int channel = 0; channel < avctx->channels; channel++) {
c->status[channel].predictor = 0;