Commit 8245ba2c authored by eichenseer's avatar eichenseer
Browse files

Improve EXT output for ParamISM, switch FIX_663_PARAM_ISM_EXT.

parent 922c7f21
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -215,7 +215,7 @@
#define FIX_625_IDX_OOB                                 /* FhG: Fix index out-of-bounds UBSAN error (issue 625) */

#define MASA_AND_OBJECTS                                /* Nokia: Combination of MASA and objects */

#define FIX_663_PARAM_ISM_EXT                           /* FhG: Issue 663: ParamISM EXT output improvement */


/* ################## End BE DEVELOPMENT switches ######################### */
+50 −0
Original line number Diff line number Diff line
@@ -839,6 +839,7 @@ void ivas_param_ism_dec(
            }
        }

#ifndef FIX_663_PARAM_ISM_EXT
        for ( i = 0; i < nchan_transport; i++ )
        {
            for ( j = 0; j < nchan_out_woLFE; j++ )
@@ -853,6 +854,30 @@ void ivas_param_ism_dec(
                }
            }
        }
#else
        assert( nchan_transport == 2 ); /* to do: remove */
        for ( j = 0; j < nchan_out_woLFE; j++ )
        {
            if ( hDirAC->azimuth_values[j] > 0.0f )
            {
                hDirAC->hParamIsmRendering->proto_matrix[j] = 1.0f;
                hDirAC->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 0.0f;
            }
            else
            {
                if ( hDirAC->azimuth_values[j] < 0.0f )
                {
                    hDirAC->hParamIsmRendering->proto_matrix[j] = 0.0f;
                    hDirAC->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 1.0f;
                }
                else /* == 0.0f */
                {
                    hDirAC->hParamIsmRendering->proto_matrix[j] = 0.5f;
                    hDirAC->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 0.5f;
                }
            }
        }
#endif
    }

    /* Energy Compensation */
@@ -1193,6 +1218,7 @@ void ivas_param_ism_dec_digest_tc(
            }
        }

#ifndef FIX_663_PARAM_ISM_EXT
        for ( i = 0; i < nchan_transport; i++ )
        {
            for ( j = 0; j < nchan_out_woLFE; j++ )
@@ -1207,6 +1233,30 @@ void ivas_param_ism_dec_digest_tc(
                }
            }
        }
#else
        assert( nchan_transport == 2 ); /* to do: remove */
        for ( j = 0; j < nchan_out_woLFE; j++ )
        {
            if ( hDirAC->azimuth_values[j] > 0.0f )
            {
                hDirAC->hParamIsmRendering->proto_matrix[j] = 1.0f;
                hDirAC->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 0.0f;
            }
            else
            {
                if ( hDirAC->azimuth_values[j] < 0.0f )
                {
                    hDirAC->hParamIsmRendering->proto_matrix[j] = 0.0f;
                    hDirAC->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 1.0f;
                }
                else /* == 0.0f */
                {
                    hDirAC->hParamIsmRendering->proto_matrix[j] = 0.5f;
                    hDirAC->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 0.5f;
                }
            }
        }
#endif
    }

    /* Energy Compensation */