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
This commit is contained in:
Justin Ruggles 2012-01-31 15:57:53 -05:00
parent 91a28b0e8e
commit 770a5c6d02
2 changed files with 5 additions and 5 deletions

View File

@ -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:

View File

@ -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