[FFmpeg-soc] [soc]: r4380 - amr/amrnbfloatdec.c
cmcq
subversion at mplayerhq.hu
Thu Jun 4 01:00:21 CEST 2009
Author: cmcq
Date: Thu Jun 4 01:00:21 2009
New Revision: 4380
Log:
5.15 and 4.75 kbit/s modes don't reset pitch lag in third subframe
Modified:
amr/amrnbfloatdec.c
Modified: amr/amrnbfloatdec.c
==============================================================================
--- amr/amrnbfloatdec.c Wed Jun 3 21:04:54 2009 (r4379)
+++ amr/amrnbfloatdec.c Thu Jun 4 01:00:21 2009 (r4380)
@@ -365,6 +365,8 @@ static void lsp2lpc(float *lsp, float *l
* of the pitch lag for one subframe at 1/6 resolution for MODE_122,
* 1/3 for other modes.
*
+ * The choice of pitch lag is described in 3GPP TS 26.090 section 5.6.1.
+ *
* @param lag_int integer part of pitch lag of the current subframe
* @param lag_frac fractional part of pitch lag of the current subframe
* @param pitch_index parsed adaptive codebook (pitch) index
@@ -376,8 +378,8 @@ static void decode_pitch_lag(int *lag_in
const int prev_lag_int, const int subframe,
const enum Mode mode)
{
- // subframe 1 or 3
- if (!(subframe & 1)) {
+ if (subframe == 0 ||
+ (subframe == 2 && mode != MODE_475 && mode != MODE_515)) {
if (mode == MODE_122) {
if (pitch_index < 463) {
*lag_int = (pitch_index + 5) / 6 + 17;
@@ -394,7 +396,6 @@ static void decode_pitch_lag(int *lag_in
*lag_int = pitch_index - 112;
*lag_frac = 0;
}
- // subframe 2 or 4
} else {
if (mode == MODE_122) {
*lag_int = (pitch_index + 5) / 6 - 1;
More information about the FFmpeg-soc
mailing list