[soc]: r4163 - amr/amrnbfloatdec.c
Author: kmalaussene Date: Wed Mar 4 21:25:29 2009 New Revision: 4163 Log: Simplify further gain decoding. Modified: amr/amrnbfloatdec.c Modified: amr/amrnbfloatdec.c ============================================================================== --- amr/amrnbfloatdec.c Wed Mar 4 21:13:10 2009 (r4162) +++ amr/amrnbfloatdec.c Wed Mar 4 21:25:29 2009 (r4163) @@ -701,17 +701,14 @@ static void decode_gains(AMRContext *p, if(mode == MODE_122 || mode == MODE_795) { p->pitch_gain[4] = qua_gain_pit [amr_subframe->p_gain]; fixed_gain_factor = qua_gain_code[amr_subframe->fixed_gain]; - }else if(mode >= MODE_67) { - p->pitch_gain[4] = gains_high[amr_subframe->p_gain][0]; - fixed_gain_factor = gains_high[amr_subframe->p_gain][1]; - }else if(mode >= MODE_515) { - p->pitch_gain[4] = gains_low[amr_subframe->p_gain][0]; - fixed_gain_factor = gains_low[amr_subframe->p_gain][1]; }else { - // gain index is only coded in subframes 0,2 - const int index = (p->frame.subframe[subframe&2].p_gain << 1) + (subframe&1); - p->pitch_gain[4] = gains_MODE_475[index][0]; - fixed_gain_factor = gains_MODE_475[index][1]; + // gain index is only coded in subframes 0,2 for MODE_475 + const float *gains = mode >= MODE_67 ? gains_high[amr_subframe->p_gain] : + mode >= MODE_515 ? gains_low [amr_subframe->p_gain] : + gains_MODE_475[(p->frame.subframe[subframe&2].p_gain << 1) + (subframe&1)]; + + p->pitch_gain[4] = gains[0]; + fixed_gain_factor = gains[1]; } // ^g_c = g_c' * ^gamma_gc
participants (1)
-
kmalaussene