mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
adpcm: convert adpcm_xa to bytestream2.
This commit is contained in:
parent
16b7a5e241
commit
159831cc09
@ -292,7 +292,7 @@ static int xa_decode(AVCodecContext *avctx,
|
|||||||
for(j=0;j<28;j++) {
|
for(j=0;j<28;j++) {
|
||||||
d = in[16+i+j*4];
|
d = in[16+i+j*4];
|
||||||
|
|
||||||
t = (signed char)(d<<4)>>4;
|
t = sign_extend(d, 4);
|
||||||
s = ( t<<shift ) + ((s_1*f0 + s_2*f1+32)>>6);
|
s = ( t<<shift ) + ((s_1*f0 + s_2*f1+32)>>6);
|
||||||
s_2 = s_1;
|
s_2 = s_1;
|
||||||
s_1 = av_clip_int16(s);
|
s_1 = av_clip_int16(s);
|
||||||
@ -322,7 +322,7 @@ static int xa_decode(AVCodecContext *avctx,
|
|||||||
for(j=0;j<28;j++) {
|
for(j=0;j<28;j++) {
|
||||||
d = in[16+i+j*4];
|
d = in[16+i+j*4];
|
||||||
|
|
||||||
t = (signed char)d >> 4;
|
t = sign_extend(d >> 4, 4);
|
||||||
s = ( t<<shift ) + ((s_1*f0 + s_2*f1+32)>>6);
|
s = ( t<<shift ) + ((s_1*f0 + s_2*f1+32)>>6);
|
||||||
s_2 = s_1;
|
s_2 = s_1;
|
||||||
s_1 = av_clip_int16(s);
|
s_1 = av_clip_int16(s);
|
||||||
@ -834,13 +834,12 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
bytestream2_seek(&gb, 0, SEEK_END);
|
bytestream2_seek(&gb, 0, SEEK_END);
|
||||||
break;
|
break;
|
||||||
case CODEC_ID_ADPCM_XA:
|
case CODEC_ID_ADPCM_XA:
|
||||||
while (buf_size >= 128) {
|
while (bytestream2_get_bytes_left(&gb) >= 128) {
|
||||||
if ((ret = xa_decode(avctx, samples, src, &c->status[0],
|
if ((ret = xa_decode(avctx, samples, buf + bytestream2_tell(&gb), &c->status[0],
|
||||||
&c->status[1], avctx->channels)) < 0)
|
&c->status[1], avctx->channels)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
src += 128;
|
bytestream2_skipu(&gb, 128);
|
||||||
samples += 28 * 8;
|
samples += 28 * 8;
|
||||||
buf_size -= 128;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CODEC_ID_ADPCM_IMA_EA_EACS:
|
case CODEC_ID_ADPCM_IMA_EA_EACS:
|
||||||
|
Loading…
Reference in New Issue
Block a user