According to specification max value allowed is 0x6000. Fixes #5862. Signed-off-by: Paul B Mahol <onemda@gmail.com>tags/n3.3
| @@ -343,7 +343,7 @@ static inline int16_t adpcm_yamaha_expand_nibble(ADPCMChannelStatus *c, uint8_t | |||||
| c->predictor += (c->step * ff_adpcm_yamaha_difflookup[nibble]) / 8; | c->predictor += (c->step * ff_adpcm_yamaha_difflookup[nibble]) / 8; | ||||
| c->predictor = av_clip_int16(c->predictor); | c->predictor = av_clip_int16(c->predictor); | ||||
| c->step = (c->step * ff_adpcm_yamaha_indexscale[nibble]) >> 8; | c->step = (c->step * ff_adpcm_yamaha_indexscale[nibble]) >> 8; | ||||
| c->step = av_clip(c->step, 127, 24567); | |||||
| c->step = av_clip(c->step, 127, 24576); | |||||
| return c->predictor; | return c->predictor; | ||||
| } | } | ||||
| @@ -258,7 +258,7 @@ static inline uint8_t adpcm_yamaha_compress_sample(ADPCMChannelStatus *c, | |||||
| c->predictor += ((c->step * ff_adpcm_yamaha_difflookup[nibble]) / 8); | c->predictor += ((c->step * ff_adpcm_yamaha_difflookup[nibble]) / 8); | ||||
| c->predictor = av_clip_int16(c->predictor); | c->predictor = av_clip_int16(c->predictor); | ||||
| c->step = (c->step * ff_adpcm_yamaha_indexscale[nibble]) >> 8; | c->step = (c->step * ff_adpcm_yamaha_indexscale[nibble]) >> 8; | ||||
| c->step = av_clip(c->step, 127, 24567); | |||||
| c->step = av_clip(c->step, 127, 24576); | |||||
| return nibble; | return nibble; | ||||
| } | } | ||||
| @@ -415,7 +415,7 @@ static void adpcm_compress_trellis(AVCodecContext *avctx, | |||||
| } else { //AV_CODEC_ID_ADPCM_YAMAHA | } else { //AV_CODEC_ID_ADPCM_YAMAHA | ||||
| LOOP_NODES(yamaha, step, | LOOP_NODES(yamaha, step, | ||||
| av_clip((step * ff_adpcm_yamaha_indexscale[nibble]) >> 8, | av_clip((step * ff_adpcm_yamaha_indexscale[nibble]) >> 8, | ||||
| 127, 24567)); | |||||
| 127, 24576)); | |||||
| #undef LOOP_NODES | #undef LOOP_NODES | ||||
| #undef STORE_NODE | #undef STORE_NODE | ||||
| } | } | ||||
| @@ -1,4 +1,4 @@ | |||||
| e9c14f701d25947317db9367b9dc772d *tests/data/fate/acodec-adpcm-yamaha.wav | |||||
| 245c194e84d482a70ca89de9c0bbd591 *tests/data/fate/acodec-adpcm-yamaha.wav | |||||
| 265274 tests/data/fate/acodec-adpcm-yamaha.wav | 265274 tests/data/fate/acodec-adpcm-yamaha.wav | ||||
| 93b95a663ec8799e0c4db18467b21234 *tests/data/fate/acodec-adpcm-yamaha.out.wav | |||||
| stddev: 1247.60 PSNR: 34.41 MAXDIFF:39895 bytes: 1058400/ 1060864 | |||||
| 758b4aee62964831d0a335ada9672104 *tests/data/fate/acodec-adpcm-yamaha.out.wav | |||||
| stddev: 1242.71 PSNR: 34.44 MAXDIFF:39960 bytes: 1058400/ 1060864 | |||||
| @@ -1,4 +1,4 @@ | |||||
| 247a06c3f26c57abd2db1a793174cb66 *tests/data/fate/acodec-adpcm-yamaha-trellis.wav | |||||
| c8306ada93ef52b1e87b6758853f4937 *tests/data/fate/acodec-adpcm-yamaha-trellis.wav | |||||
| 265274 tests/data/fate/acodec-adpcm-yamaha-trellis.wav | 265274 tests/data/fate/acodec-adpcm-yamaha-trellis.wav | ||||
| a42b5fa74b39a07691b0df80ce67f77e *tests/data/fate/acodec-adpcm-yamaha-trellis.out.wav | |||||
| stddev: 928.29 PSNR: 36.98 MAXDIFF:33557 bytes: 1058400/ 1060864 | |||||
| 8ad27b0ea7e13e70ed334b5ec26c62ef *tests/data/fate/acodec-adpcm-yamaha-trellis.out.wav | |||||
| stddev: 926.56 PSNR: 36.99 MAXDIFF:33570 bytes: 1058400/ 1060864 | |||||