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]

Reply via email to