[Mplayer-cvslog] CVS: main adpcm.c,1.1,1.2
Mike Melanson
melanson at mplayer.dev.hu
Wed Dec 26 14:22:06 CET 2001
Update of /cvsroot/mplayer/main
In directory mplayer:/var/tmp.root/cvs-serv2901
Modified Files:
adpcm.c
Log Message:
fixed stereo IMA4 decoding
Index: adpcm.c
===================================================================
RCS file: /cvsroot/mplayer/main/adpcm.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- adpcm.c 26 Dec 2001 06:13:17 -0000 1.1
+++ adpcm.c 26 Dec 2001 13:22:03 -0000 1.2
@@ -77,11 +77,9 @@
int initial_predictor_r = 0;
int initial_index_l = 0;
int initial_index_r = 0;
- int stream_ptr = 0;
int i;
- initial_predictor_l = BE_16(&input[stream_ptr]);
- stream_ptr += 2;
+ initial_predictor_l = BE_16(&input[0]);
initial_index_l = initial_predictor_l;
// mask, sign-extend, and clamp the predictor portion
@@ -96,8 +94,7 @@
// handle stereo
if (channels > 1)
{
- initial_predictor_r = BE_16(&input[stream_ptr]);
- stream_ptr += 2;
+ initial_predictor_r = BE_16(&input[IMA_ADPCM_BLOCK_SIZE]);
initial_index_r = initial_predictor_r;
// mask, sign-extend, and clamp the predictor portion
@@ -114,18 +111,16 @@
if (channels == 1)
for (i = 0; i < IMA_ADPCM_SAMPLES_PER_BLOCK / 2; i++)
{
- output[i * 2 + 0] = input[stream_ptr] & 0x0F;
- output[i * 2 + 1] = input[stream_ptr] >> 4;
- stream_ptr++;
+ output[i * 2 + 0] = input[2 + i] & 0x0F;
+ output[i * 2 + 1] = input[2 + i] >> 4;
}
else
for (i = 0; i < IMA_ADPCM_SAMPLES_PER_BLOCK / 2 * 2; i++)
{
- output[i * 4 + 0] = input[stream_ptr] & 0x0F;
- output[i * 4 + 1] = input[stream_ptr + 1] & 0x0F;
- output[i * 4 + 2] = input[stream_ptr] >> 4;
- output[i * 4 + 3] = input[stream_ptr + 1] >> 4;
- stream_ptr++;
+ output[i * 4 + 0] = input[2 + i] & 0x0F;
+ output[i * 4 + 1] = input[2 + IMA_ADPCM_BLOCK_SIZE + i] & 0x0F;
+ output[i * 4 + 2] = input[2 + i] >> 4;
+ output[i * 4 + 3] = input[2 + IMA_ADPCM_BLOCK_SIZE + i] >> 4;
}
ima_dvi_decode_nibbles(output, channels,
More information about the MPlayer-cvslog
mailing list