This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit f35a082ecc00fa78014b0152f34ce079e1444fdb Author: Romain Beauxis <[email protected]> AuthorDate: Mon Mar 16 22:07:28 2026 -0500 Commit: toots <[email protected]> CommitDate: Thu Jun 11 14:06:20 2026 +0000 libavformat/{riffenc, adpcmenc}.c: export correct bitrate --- libavcodec/adpcmenc.c | 2 ++ libavformat/riffenc.c | 8 ++++++++ tests/ref/acodec/adpcm-ima_wav | 2 +- tests/ref/acodec/adpcm-ima_wav-trellis | 2 +- tests/ref/acodec/adpcm-ms | 2 +- tests/ref/acodec/adpcm-ms-trellis | 2 +- tests/ref/fate/wav-enc-adpcm-ima-wav-bitrate | 2 +- tests/ref/fate/wav-enc-adpcm-ima-wav-encinfo | 2 +- tests/ref/fate/wav-enc-adpcm-ms-bitrate | 2 +- tests/ref/fate/wav-enc-adpcm-ms-encinfo | 2 +- 10 files changed, 18 insertions(+), 8 deletions(-) diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c index e350c41130..cd6b330554 100644 --- a/libavcodec/adpcmenc.c +++ b/libavcodec/adpcmenc.c @@ -135,6 +135,7 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) have to buffer the samples :-( */ avctx->block_align = s->block_size; avctx->bits_per_coded_sample = 4; + avctx->bit_rate = avctx->block_align * 8LL * avctx->sample_rate / avctx->frame_size; ) /* End of CASE */ CASE(ADPCM_IMA_QT, avctx->frame_size = 64; @@ -147,6 +148,7 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) avctx->frame_size = (s->block_size - 7 * channels) * 2 / channels + 2; avctx->bits_per_coded_sample = 4; avctx->block_align = s->block_size; + avctx->bit_rate = avctx->block_align * 8LL * avctx->sample_rate / avctx->frame_size; if (!(avctx->extradata = av_malloc(32 + AV_INPUT_BUFFER_PADDING_SIZE))) return AVERROR(ENOMEM); avctx->extradata_size = 32; diff --git a/libavformat/riffenc.c b/libavformat/riffenc.c index 687bcb0c44..90fc545394 100644 --- a/libavformat/riffenc.c +++ b/libavformat/riffenc.c @@ -135,6 +135,14 @@ int ff_put_wav_header(AVFormatContext *s, AVIOContext *pb, bytespersec = par->sample_rate * blkalign; } else if (par->codec_id == AV_CODEC_ID_G723_1) { bytespersec = 800; + } else if (par->codec_id == AV_CODEC_ID_ADPCM_MS || + par->codec_id == AV_CODEC_ID_ADPCM_IMA_WAV) { + if (frame_size <= 0) { + av_log(s, AV_LOG_ERROR, "Invalid block_align or bps for %s\n", + avcodec_get_name(par->codec_id)); + return AVERROR(EINVAL); + } + bytespersec = (int64_t)par->sample_rate * blkalign / frame_size; } else { bytespersec = par->bit_rate / 8; } diff --git a/tests/ref/acodec/adpcm-ima_wav b/tests/ref/acodec/adpcm-ima_wav index b2cc518b1e..8bf4de88d4 100644 --- a/tests/ref/acodec/adpcm-ima_wav +++ b/tests/ref/acodec/adpcm-ima_wav @@ -1,4 +1,4 @@ -af0b82a719762cc6e1a952a6081231cf *tests/data/fate/acodec-adpcm-ima_wav.wav +4eae699d96ecc0be95c0bdb309719c8a *tests/data/fate/acodec-adpcm-ima_wav.wav 267324 tests/data/fate/acodec-adpcm-ima_wav.wav a57d7b0ca564b5fed4bf78fc9f91d8e2 *tests/data/fate/acodec-adpcm-ima_wav.out.wav stddev: 903.56 PSNR: 37.21 MAXDIFF:34029 bytes: 1058400/ 1061748 diff --git a/tests/ref/acodec/adpcm-ima_wav-trellis b/tests/ref/acodec/adpcm-ima_wav-trellis index 008d1e4b62..90bfef891a 100644 --- a/tests/ref/acodec/adpcm-ima_wav-trellis +++ b/tests/ref/acodec/adpcm-ima_wav-trellis @@ -1,4 +1,4 @@ -6f0df0f3275f833c341d63b9054caebb *tests/data/fate/acodec-adpcm-ima_wav-trellis.wav +2d7d3ceddfc5b145995e330a57594c81 *tests/data/fate/acodec-adpcm-ima_wav-trellis.wav 267324 tests/data/fate/acodec-adpcm-ima_wav-trellis.wav 1af83218cde84bd7cd2297c04ef97f79 *tests/data/fate/acodec-adpcm-ima_wav-trellis.out.wav stddev: 710.09 PSNR: 39.30 MAXDIFF:25941 bytes: 1058400/ 1061748 diff --git a/tests/ref/acodec/adpcm-ms b/tests/ref/acodec/adpcm-ms index 9f546c9b77..2e8b38b3f4 100644 --- a/tests/ref/acodec/adpcm-ms +++ b/tests/ref/acodec/adpcm-ms @@ -1,4 +1,4 @@ -ed29590dc005c64940c46cfe4a0e8eba *tests/data/fate/acodec-adpcm-ms.wav +fd6d0af756557723606b19a38ce095c9 *tests/data/fate/acodec-adpcm-ms.wav 268378 tests/data/fate/acodec-adpcm-ms.wav 7be370f937c51e8a967e6a3d08d5156a *tests/data/fate/acodec-adpcm-ms.out.wav stddev: 1050.01 PSNR: 35.91 MAXDIFF:29806 bytes: 1058400/ 1060576 diff --git a/tests/ref/acodec/adpcm-ms-trellis b/tests/ref/acodec/adpcm-ms-trellis index e7ea230dba..b478f14ac6 100644 --- a/tests/ref/acodec/adpcm-ms-trellis +++ b/tests/ref/acodec/adpcm-ms-trellis @@ -1,4 +1,4 @@ -70deb036ed0bf3dd03699eafbbfa51b7 *tests/data/fate/acodec-adpcm-ms-trellis.wav +44b5ac4d1b35796eb9f64d7760a56142 *tests/data/fate/acodec-adpcm-ms-trellis.wav 268378 tests/data/fate/acodec-adpcm-ms-trellis.wav ed9d9cdfd264f2ec6c79127c04dd224e *tests/data/fate/acodec-adpcm-ms-trellis.out.wav stddev: 896.03 PSNR: 37.28 MAXDIFF:28029 bytes: 1058400/ 1060576 diff --git a/tests/ref/fate/wav-enc-adpcm-ima-wav-bitrate b/tests/ref/fate/wav-enc-adpcm-ima-wav-bitrate index 574f871809..a69225f4c7 100644 --- a/tests/ref/fate/wav-enc-adpcm-ima-wav-bitrate +++ b/tests/ref/fate/wav-enc-adpcm-ima-wav-bitrate @@ -1,6 +1,6 @@ [STREAM] adpcm_ima_wav -355228 +355224 [/STREAM] [FORMAT] 6.000000 diff --git a/tests/ref/fate/wav-enc-adpcm-ima-wav-encinfo b/tests/ref/fate/wav-enc-adpcm-ima-wav-encinfo index 906f1179bf..fa1cb032d1 100644 --- a/tests/ref/fate/wav-enc-adpcm-ima-wav-encinfo +++ b/tests/ref/fate/wav-enc-adpcm-ima-wav-encinfo @@ -1 +1 @@ -adpcm_ima_wav bit_rate=128000 block_align=1024 bits_per_coded_sample=4 frame_size=1017 +adpcm_ima_wav bit_rate=355228 block_align=1024 bits_per_coded_sample=4 frame_size=1017 diff --git a/tests/ref/fate/wav-enc-adpcm-ms-bitrate b/tests/ref/fate/wav-enc-adpcm-ms-bitrate index 55e6a256b5..8b2aa1a2a2 100644 --- a/tests/ref/fate/wav-enc-adpcm-ms-bitrate +++ b/tests/ref/fate/wav-enc-adpcm-ms-bitrate @@ -1,6 +1,6 @@ [STREAM] adpcm_ms -356983 +356976 [/STREAM] [FORMAT] 6.000000 diff --git a/tests/ref/fate/wav-enc-adpcm-ms-encinfo b/tests/ref/fate/wav-enc-adpcm-ms-encinfo index e6ffaac231..5a1f9da48b 100644 --- a/tests/ref/fate/wav-enc-adpcm-ms-encinfo +++ b/tests/ref/fate/wav-enc-adpcm-ms-encinfo @@ -1 +1 @@ -adpcm_ms bit_rate=128000 block_align=1024 bits_per_coded_sample=4 frame_size=1012 +adpcm_ms bit_rate=356983 block_align=1024 bits_per_coded_sample=4 frame_size=1012 _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
