diff options
author | Paul B Mahol <onemda@gmail.com> | 2023-01-21 14:07:48 +0100 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2023-01-24 16:58:01 +0100 |
commit | 3110e2845636aaab32c426c25790c7ead2878fde (patch) | |
tree | 8f888bb07249650c0ad0b8ad20f07e6c1ada9663 | |
parent | b8640bfc99d6fe32890a721b4a837bc6672af6f4 (diff) | |
download | ffmpeg-3110e2845636aaab32c426c25790c7ead2878fde.tar.gz |
avcodec/dpcm: add .flush
Otherwise after seek, DC offset for audio samples might be big.
-rw-r--r-- | libavcodec/dpcm.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libavcodec/dpcm.c b/libavcodec/dpcm.c index 2420647bc0..86cb9134f8 100644 --- a/libavcodec/dpcm.c +++ b/libavcodec/dpcm.c @@ -448,6 +448,13 @@ static int dpcm_decode_frame(AVCodecContext *avctx, AVFrame *frame, return avpkt->size; } +static void dpcm_flush(AVCodecContext *avctx) +{ + DPCMContext *s = avctx->priv_data; + + s->sample[0] = s->sample[1] = 0; +} + #define DPCM_DECODER(id_, name_, long_name_) \ const FFCodec ff_ ## name_ ## _decoder = { \ .p.name = #name_, \ @@ -457,6 +464,7 @@ const FFCodec ff_ ## name_ ## _decoder = { \ .p.capabilities = AV_CODEC_CAP_DR1, \ .priv_data_size = sizeof(DPCMContext), \ .init = dpcm_decode_init, \ + .flush = dpcm_flush, \ FF_CODEC_DECODE_CB(dpcm_decode_frame), \ } |