Commit 05a93d13 authored by emerit's avatar emerit
Browse files

add switch

parent 6dc0f10b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -172,7 +172,7 @@

#define FIX_1576_LCLD_CRASH_DIFFERENT_CODEC_ISAR_FRAME_SIZE  /* Dolby: float issue 1576: fix for crash in LCLD mode when codec frame size is less than isar frame size */
#define FIX_2585_BIT_ALLOCATION_DIFF                    /* VA : issue 2585, bit allocation different behaviors between float and fixed-point for corner cases */

#define FIX_1134_BRIR_LEVEL_DIFFERENCE                /* FhG: fix for issue 1134, level difference between BRIR and HRIR filters in DFT stereo */ 
/* ##################### End NON-BE switches ########################### */

/* ################## End MAINTENANCE switches ######################### */
+18 −4
Original line number Diff line number Diff line
@@ -665,20 +665,31 @@ static void ivas_dirac_dec_binaural_internal(
                    /* LB: Copy first channel + LB-CNG to first and second channels with same scaling (dual-mono)*/
                    for ( b = 0; b < numCoreBands; b++ )
                    {
#ifdef FIX_1134_BRIR_LEVEL_DIFFERENCE
                        Cldfb_RealBuffer_in[0][slot][b] = ( Cldfb_RealBuffer_in[0][slot][b] + Cldfb_RealBuffer_in[2][slot][b] );
#else
                        Cldfb_RealBuffer_in[0][slot][b] = INV_SQRT2 * ( Cldfb_RealBuffer_in[0][slot][b] + Cldfb_RealBuffer_in[2][slot][b] );
#endif
                        Cldfb_RealBuffer_in[1][slot][b] = Cldfb_RealBuffer_in[0][slot][b];
#ifdef FIX_1134_BRIR_LEVEL_DIFFERENCE
                        Cldfb_ImagBuffer_in[0][slot][b] = ( Cldfb_ImagBuffer_in[0][slot][b] + Cldfb_ImagBuffer_in[2][slot][b] );
#else
                        Cldfb_ImagBuffer_in[0][slot][b] = INV_SQRT2 * ( Cldfb_ImagBuffer_in[0][slot][b] + Cldfb_ImagBuffer_in[2][slot][b] );
#endif
                        Cldfb_ImagBuffer_in[1][slot][b] = Cldfb_ImagBuffer_in[0][slot][b];
                    }

                    /* HB: Copy first channel to second channel and add HB-CNGs with different scalings*/
                    for ( ; b < nBins; b++ )
                    {
#ifndef FIX_1134_BRIR_LEVEL_DIFFERENCE
                        Cldfb_RealBuffer_in[0][slot][b] *= INV_SQRT2;
#endif
                        Cldfb_RealBuffer_in[1][slot][b] = Cldfb_RealBuffer_in[0][slot][b] + 0.5f * Cldfb_RealBuffer_in[1][slot][b] + Cldfb_RealBuffer_in[0][slot][b];
                        Cldfb_RealBuffer_in[0][slot][b] += 0.5f * Cldfb_RealBuffer_in[2][slot][b];

#ifndef FIX_1134_BRIR_LEVEL_DIFFERENCE
                        Cldfb_ImagBuffer_in[0][slot][b] *= INV_SQRT2;
#endif
                        Cldfb_ImagBuffer_in[1][slot][b] = Cldfb_ImagBuffer_in[0][slot][b] + 0.5f * Cldfb_ImagBuffer_in[1][slot][b];
                        Cldfb_ImagBuffer_in[0][slot][b] += 0.5f * Cldfb_ImagBuffer_in[2][slot][b];
                    }
@@ -687,9 +698,10 @@ static void ivas_dirac_dec_binaural_internal(
                {
                    /* At mono input duplicate the channel to dual-mono, and apply gain
                    correction to ensure same overall level as in stereo mode  */
#ifndef FIX_1134_BRIR_LEVEL_DIFFERENCE
                    v_multc( Cldfb_RealBuffer_in[0][slot], INV_SQRT_2, Cldfb_RealBuffer_in[0][slot], nBins );
                    v_multc( Cldfb_ImagBuffer_in[0][slot], INV_SQRT_2, Cldfb_ImagBuffer_in[0][slot], nBins );

#endif
                    mvr2r( Cldfb_RealBuffer_in[0][slot], Cldfb_RealBuffer_in[1][slot], nBins );
                    mvr2r( Cldfb_ImagBuffer_in[0][slot], Cldfb_ImagBuffer_in[1][slot], nBins );
                }
@@ -705,12 +717,14 @@ static void ivas_dirac_dec_binaural_internal(
                    Cldfb_RealBuffer_in[ch][slot],
                    Cldfb_ImagBuffer_in[ch][slot],
                    nBins, st_ivas->cldfbAnaDec[ch] );
#ifndef FIX_1134_BRIR_LEVEL_DIFFERENCE
                if ( config_data.nchan_transport == 1 &&
                     ( config_data.ivas_format == SBA_FORMAT || config_data.ivas_format == SBA_ISM_FORMAT ) )
                {
                    v_multc( Cldfb_RealBuffer_in[ch][slot], INV_SQRT_2, Cldfb_RealBuffer_in[ch][slot], nBins );
                    v_multc( Cldfb_ImagBuffer_in[ch][slot], INV_SQRT_2, Cldfb_ImagBuffer_in[ch][slot], nBins );
                }
#endif
            }
        }
    }
+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@
 *------------------------------------------------------------------------*/
/* TD renderer default HRIR model */
#ifdef DEBUGGING
/* Generated on 20-May-2026 with Matlab version 23.2.0.2668659 (R2023b) Update 9 by marcemerit on MACA64 */
/* Generated on 26-May-2026 with Matlab version 23.2.0.2668659 (R2023b) Update 9 by marcemerit on MACA64 */
#endif
const float defaultHRIR_rom_latency_s = 0.000020834f;
+238 −238

File changed.

Preview size limit exceeded, changes collapsed.

+10 −1
Original line number Diff line number Diff line
@@ -190,14 +190,23 @@ void ivas_sba_prototype_renderer(
                v_add( inRe[0][ts], inRe[1][ts], temp_signal, CLDFB_NO_CHANNELS_MAX );
                v_sub( inRe[0][ts], inRe[1][ts], inRe[1][ts], CLDFB_NO_CHANNELS_MAX );
                mvr2r( temp_signal, inRe[0][ts], CLDFB_NO_CHANNELS_MAX );
#ifdef FIX_1134_BRIR_LEVEL_DIFFERENCE
                v_multc( inRe[0][ts], INV_SQRT2, inRe[0][ts], CLDFB_NO_CHANNELS_MAX );
                v_multc( inRe[1][ts], INV_SQRT2, inRe[1][ts], CLDFB_NO_CHANNELS_MAX );
#else
                v_multc( inRe[0][ts], 0.5f, inRe[0][ts], CLDFB_NO_CHANNELS_MAX );
                v_multc( inRe[1][ts], 0.5f, inRe[1][ts], CLDFB_NO_CHANNELS_MAX );

#endif
                v_add( inIm[0][ts], inIm[1][ts], temp_signal, CLDFB_NO_CHANNELS_MAX );
                v_sub( inIm[0][ts], inIm[1][ts], inIm[1][ts], CLDFB_NO_CHANNELS_MAX );
                mvr2r( temp_signal, inIm[0][ts], CLDFB_NO_CHANNELS_MAX );
#ifdef FIX_1134_BRIR_LEVEL_DIFFERENCE
                v_multc( inIm[0][ts], INV_SQRT2, inIm[0][ts], CLDFB_NO_CHANNELS_MAX );
                v_multc( inIm[1][ts], INV_SQRT2, inIm[1][ts], CLDFB_NO_CHANNELS_MAX );
#else
                v_multc( inIm[0][ts], 0.5f, inIm[0][ts], CLDFB_NO_CHANNELS_MAX );
                v_multc( inIm[1][ts], 0.5f, inIm[1][ts], CLDFB_NO_CHANNELS_MAX );
#endif
            }
        }
    }