[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