Commit 01239f2a authored by Tapani Pihlajakuja's avatar Tapani Pihlajakuja
Browse files

Fix issue 1362 by implementing missing path in omasa downmix.

parent 16fd2911
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -176,6 +176,7 @@
#define NONBE_FIX_TCX5_INTERLEAVING_FOR_FS_IN_UNEQUAL_FS_OUT /* FhG: apply correct TCX5 grouping/interleaving when input_fs != output_fs */
#define NONBE_1339_FIXOSBA_EXT_LOUDNESS                 /* FhG: issue 1339: apply scaling with EXT output in OSBA high-BR mode */
#define NONBE_1352_HARMONIZE_OSBA_LOUDNESS             /* FhG: do not scale OSBA inputs by 0.5 any more */
#define NONBE_1362_FIX_OMASA_TO_MASA1_RENDERING         /* Nokia: Fix OMASA to MASA1 rendering in IVAS_rend */

/* ##################### End NON-BE switches ########################### */

+29 −0
Original line number Diff line number Diff line
@@ -489,6 +489,13 @@ static void ivas_omasa_dmx(
    }

    for ( i = 0; i < nchan_ism; i++ )
    {
#ifdef NONBE_1362_FIX_OMASA_TO_MASA1_RENDERING
        if ( nchan_transport == 1 )
        {
            v_add( data_out_f[0], data_in_f[i], data_out_f[0], input_frame );
        }
        else
        {
            azimuth = ism_azimuth[i];
            elevation = ism_elevation[i];
@@ -510,6 +517,28 @@ static void ivas_omasa_dmx(
                prev_gains[i][j] = gains[j];
            }
        }
#else
        azimuth = ism_azimuth[i];
        elevation = ism_elevation[i];

        ivas_ism_get_stereo_gains( azimuth, elevation, &gains[0], &gains[1] );

        /* Downmix using the panning gains */
        for ( j = 0; j < nchan_transport; j++ )
        {
            if ( fabsf( gains[j] ) > 0.0 || fabsf( prev_gains[i][j] ) > 0.0f )
            {
                for ( k = 0; k < input_frame; k++ )
                {
                    g1 = interpolator[k];
                    g2 = 1.0f - g1;
                    data_out_f[j][k] += ( g1 * gains[j] + g2 * prev_gains[i][j] ) * data_in_f[i][k];
                }
            }
            prev_gains[i][j] = gains[j];
        }
#endif
    }

    for ( i = 0; i < nchan_transport; i++ )
    {