Commit 35891d8d authored by malenov's avatar malenov
Browse files

merge main to branch

parents fd06181e 28fdb08e
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -154,6 +154,7 @@
#define FIX_559_EXTL_IGF_MISMATCH                       /* VA: issue 559: fix mismatch between st->extl and st->igf observed as crash in PlanarSBA bitrate switching */
#define FIX_572_LFE_LPF_ENC                             /* FhG: issue 572: always apply the low pass filter to the LFE channel */
#define FIX_QMETA_SID_5k2                               /* Nokia: Issue 137: enable using full 5.2k bitrate in MASA SID */
#define FIX_578_PARAMMC_ILD_BS                          /* FhG: Issue 578: transmitt also center ILD in band 0 when LFE is active in 3TC ParamMC */
#define FIX_UNCLR_ISSUE                                 /* VoiceAge: issue 574: Fix UNCLR mis-classifications in noisy speech stereo */
#define FIX_TCX_LOWRATE_LIMITATION                      /* VA: issue 577: TCX bitrate limitation only when DEBUGGING is active */

+15 −0
Original line number Diff line number Diff line
@@ -3055,11 +3055,19 @@ static void ivas_param_mc_bs_decode_parameter_values(
    int16_t i, j, k;
    float dequant_seq[PARAM_MC_MAX_PARAMETER_BANDS * PARAM_MC_MAX_VAL_MAP_SIZE];
    float dequant_ordered[PARAM_MC_MAX_PARAMETER_BANDS * PARAM_MC_MAX_VAL_MAP_SIZE];
#ifdef FIX_578_PARAMMC_ILD_BS
    int16_t n_lfe_idx;
#endif

    range_coding = bit_buffer[( *bit_pos )++];

    /* Decoding the sequence */
#ifdef FIX_578_PARAMMC_ILD_BS
    n_lfe_idx = map_size - map_size_wo_lfe;
    sz_seq = num_param_bands * ( map_size_wo_lfe ) + num_lfe_bands * n_lfe_idx;
#else
    sz_seq = num_param_bands * ( map_size_wo_lfe ) + num_lfe_bands;
#endif

    set_s( idx, 0, PARAM_MC_MAX_PARAMETER_BANDS * PARAM_MC_MAX_VAL_MAP_SIZE );
    set_zero( dequant_ordered, PARAM_MC_MAX_PARAMETER_BANDS * PARAM_MC_MAX_VAL_MAP_SIZE );
@@ -3120,7 +3128,14 @@ static void ivas_param_mc_bs_decode_parameter_values(

    for ( i = 0; i < num_lfe_bands; i++ )
    {
#ifdef FIX_578_PARAMMC_ILD_BS
        for ( j = 0; j < n_lfe_idx; j++ )
        {
            dequant_ordered[map_size - n_lfe_idx + j + i * map_size] = dequant_seq[k++];
        }
#else
        dequant_ordered[map_size - 1 + i * map_size] = dequant_seq[k++];
#endif
    }

    if ( !( *BER_detect ) )
+14 −1
Original line number Diff line number Diff line
@@ -1658,12 +1658,25 @@ static void ivas_param_mc_encode_parameter(
        {
            if ( hMetadataPMC->bAttackPresent || hMetadataPMC->param_frame_idx == hMetadataPMC->coding_band_mapping[i] )
            {
                /* LFE ICC is always the last ICC in coding band 0 */
                /* LFE ICC/ILDs are always the last ones in coding band 0 */
#ifdef FIX_578_PARAMMC_ILD_BS
                int16_t n_lfe_idx, k;
                n_lfe_idx = map_size - map_size_wo_lfe;
                for ( k = 0; k < n_lfe_idx; k++ )
                {
                    idx = quant_idx[( i + 1 ) * map_size - n_lfe_idx + k];
                    seq[sz_seq] = idx;
                    seq_delta[sz_seq] = idx - idx_prev + idx_offset;
                    idx_prev = idx;
                    sz_seq++;
                }
#else
                idx = quant_idx[( i + 1 ) * map_size - 1];
                seq[sz_seq] = idx;
                seq_delta[sz_seq] = idx - idx_prev + idx_offset;
                idx_prev = idx;
                sz_seq++;
#endif
            }
        }
    }