libavformat/{riffenc, adpcmenc}.c: export correct bitrate

This commit is contained in:
Romain Beauxis
2026-03-16 22:07:28 -05:00
committed by toots
parent 80b2dcc991
commit f35a082ecc
10 changed files with 18 additions and 8 deletions
+2
View File
@@ -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;
+8
View File
@@ -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;
}
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -1,6 +1,6 @@
[STREAM]
adpcm_ima_wav
355228
355224
[/STREAM]
[FORMAT]
6.000000
+1 -1
View File
@@ -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
+1 -1
View File
@@ -1,6 +1,6 @@
[STREAM]
adpcm_ms
356983
356976
[/STREAM]
[FORMAT]
6.000000
+1 -1
View File
@@ -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