From 0547fa572bd88a20637508bd7dcf36e2953dc64d Mon Sep 17 00:00:00 2001 From: Zane van Iperen Date: Fri, 16 Oct 2020 13:51:58 +1000 Subject: [PATCH] avcodec/adpcm_swf: set block_align when encoding Allows it to be muxed to WAVs. Signed-off-by: Zane van Iperen --- libavcodec/adpcmenc.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c index b2be83b84e..9e0bb831e8 100644 --- a/libavcodec/adpcmenc.c +++ b/libavcodec/adpcmenc.c @@ -154,6 +154,7 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) return AVERROR(EINVAL); } avctx->frame_size = 512 * (avctx->sample_rate / 11025); + avctx->block_align = (2 + avctx->channels * (22 + 4 * (avctx->frame_size - 1)) + 7) / 8; break; case AV_CODEC_ID_ADPCM_IMA_SSI: avctx->frame_size = s->block_size * 2 / avctx->channels; @@ -550,10 +551,8 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, samples_p = (int16_t **)frame->extended_data; st = avctx->channels == 2; - if (avctx->codec_id == AV_CODEC_ID_ADPCM_SWF) - pkt_size = (2 + avctx->channels * (22 + 4 * (frame->nb_samples - 1)) + 7) / 8; - else if (avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_SSI || - avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_APM) + if (avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_SSI || + avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_APM) pkt_size = (frame->nb_samples * avctx->channels) / 2; else pkt_size = avctx->block_align;