diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2012-02-01 00:57:53 +0400 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2012-02-21 00:52:32 +0400 |
commit | 770a5c6d025e9c8eb3f5aba9cf1d7d7938fb918a (patch) | |
tree | 8419878c8ab8e252551de4899da14bb184f7b4b8 | |
parent | 91a28b0e8e4f09a8256727e8a514bf98da81e186 (diff) |
adpcmenc: Use correct frame_size for Yamaha ADPCM.
Output packet size should match avctx->block_align. The target output packet
size is 1024 bytes.
Before:
mono - 1024 samples -> 512 bytes
stereo - 2048 samples -> 2048 bytes
After:
mono - 2048 samples -> 1024 bytes
stereo - 1024 samples -> 1024 bytes
-rw-r--r-- | libavcodec/adpcmenc.c | 2 | ||||
-rw-r--r-- | tests/ref/acodec/adpcm_yam | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c index a24238ccb8..25a07c4464 100644 --- a/libavcodec/adpcmenc.c +++ b/libavcodec/adpcmenc.c @@ -122,7 +122,7 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) } break; case CODEC_ID_ADPCM_YAMAHA: - avctx->frame_size = BLKSIZE * avctx->channels; + avctx->frame_size = BLKSIZE * 2 / avctx->channels; avctx->block_align = BLKSIZE; break; case CODEC_ID_ADPCM_SWF: diff --git a/tests/ref/acodec/adpcm_yam b/tests/ref/acodec/adpcm_yam index 0fd702954e..f7c9f757a6 100644 --- a/tests/ref/acodec/adpcm_yam +++ b/tests/ref/acodec/adpcm_yam @@ -1,4 +1,4 @@ -006f8dc92eb4f7bab82eded314ca1124 *./tests/data/acodec/adpcm_yam.wav -266298 ./tests/data/acodec/adpcm_yam.wav -c36a9d5a1e0ad57fbe9665a31373b7c1 *./tests/data/adpcm_yam.acodec.out.wav -stddev: 1247.60 PSNR: 34.41 MAXDIFF:39895 bytes: 1064960/ 1058400 +e9c14f701d25947317db9367b9dc772d *./tests/data/acodec/adpcm_yam.wav +265274 ./tests/data/acodec/adpcm_yam.wav +1488b5974fa040a65f0d407fc0224c6a *./tests/data/adpcm_yam.acodec.out.wav +stddev: 1247.60 PSNR: 34.41 MAXDIFF:39895 bytes: 1060864/ 1058400 |