Author: superdump
Date: Sat Sep  8 19:19:30 2007
New Revision: 1303

Log:
Incorrect simplification - I wrongly neglected integer division and I missed a 
divide by 6 too

Modified:
   amr/amrnbdec.c

Modified: amr/amrnbdec.c
==============================================================================
--- amr/amrnbdec.c      (original)
+++ amr/amrnbdec.c      Sat Sep  8 19:19:30 2007
@@ -661,6 +661,7 @@ static void decode_pitch_lag_3(AVCodecCo
 
 static void decode_pitch_lag_6(AVCodecContext *avctx, int pitch_index, int 
*pitch_lag_int, int *pitch_lag_frac) {
     AMRContext *p = avctx->priv_data;
+    int temp;
 
     // FIXME - find out where these constants come from and add appropriate 
comments
     // such that people reading the code can understand why these particular 
values
@@ -686,8 +687,9 @@ static void decode_pitch_lag_6(AVCodecCo
             p->search_range_min = p->search_range_max - 9;
         }
         // calculate the pitch lag
-        *pitch_lag_int = (pitch_index + 5) + p->search_range_min - 1;
-        *pitch_lag_frac = -2;
+        temp = (pitch_index + 5)/6 - 1;
+        *pitch_lag_int = temp + p->search_range_min;
+        *pitch_lag_frac = (pitch_index - 3) - temp*6;
     }
 }
 
_______________________________________________
FFmpeg-soc mailing list
[email protected]
http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc

Reply via email to