mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2026-06-16 04:32:47 +02:00
libavformat/{riffenc, adpcmenc}.c: export correct bitrate
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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,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,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,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,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,6 +1,6 @@
|
||||
[STREAM]
|
||||
adpcm_ima_wav
|
||||
355228
|
||||
355224
|
||||
[/STREAM]
|
||||
[FORMAT]
|
||||
6.000000
|
||||
|
||||
@@ -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,6 +1,6 @@
|
||||
[STREAM]
|
||||
adpcm_ms
|
||||
356983
|
||||
356976
|
||||
[/STREAM]
|
||||
[FORMAT]
|
||||
6.000000
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user