Commit fea472fb authored by vaclav's avatar vaclav
Browse files

accept NONBE_FIX_774_OSBA_MONO_DEC_CRASH

parent 8199a02e
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -171,7 +171,6 @@


#define NONBE_FIX_787_PARAM_UPMIX_LEVEL                       /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */
#define NONBE_FIX_774_OSBA_MONO_DEC_CRASH                     /* FhG: issue 774: decoder crash for OSBA to mono */
#define NONBE_FIX_802_PARAMUPMIX_HIGHPASS                     /* Dlb: issue 802: Move HighPass filter operation for ParamUpmix */
#define NONBE_FIX_809_EXTERNAL_TARGET_INTERPOLATION           /* FhG: issue 809: unify external target interpolation inter and intra frame behaviour */
#define NONBE_FIX_775_OSBA_BR_SWITCHING_CRASH                 /* FhG: issue 775: fix crash in OSBA with bitrate switching and output order lower than input order */
+1 −22
Original line number Diff line number Diff line
@@ -68,13 +68,8 @@ ivas_error ivas_mono_dmx_renderer_open(
        return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for downmixing\n" ) );
    }

#ifdef NONBE_FIX_774_OSBA_MONO_DEC_CRASH
    hDownmix->inputEnergy = 0;
    hDownmix->protoEnergy = 0;
#else
    set_zero( hDownmix->inputEnergy, CLDFB_NO_CHANNELS_MAX );
    set_zero( hDownmix->protoEnergy, CLDFB_NO_CHANNELS_MAX );
#endif
    st_ivas->hMonoDmxRenderer = hDownmix;

    return IVAS_ERR_OK;
@@ -125,36 +120,20 @@ void ivas_mono_downmix_render_passive(
    }

    /* compute the input energy, proto energy after smoothing */
#ifdef NONBE_FIX_774_OSBA_MONO_DEC_CRASH
    hDownmix->inputEnergy *= DOWNMIX_ALPHA;
    hDownmix->protoEnergy *= DOWNMIX_ALPHA;
#else
    hDownmix->inputEnergy[0] *= DOWNMIX_ALPHA;
    hDownmix->protoEnergy[0] *= DOWNMIX_ALPHA;
#endif
    for ( i = 0; i < output_frame; i++ )
    {
#ifdef NONBE_FIX_774_OSBA_MONO_DEC_CRASH
        hDownmix->protoEnergy += proto_signal[i] * proto_signal[i];
#else
        hDownmix->protoEnergy[0] += proto_signal[i] * proto_signal[i];
#endif

        for ( j = 0; j < numInputChannels; j++ )
        {
#ifdef NONBE_FIX_774_OSBA_MONO_DEC_CRASH
            hDownmix->inputEnergy += ( output_f[j][i] * output_f[j][i] );
#else
            hDownmix->inputEnergy[0] += ( output_f[j][i] * output_f[j][i] );
#endif
        }
    }

    /* compute the eq factor */
#ifdef NONBE_FIX_774_OSBA_MONO_DEC_CRASH
    eq = min( DOWNMIX_MAX_GAIN, sqrtf( hDownmix->inputEnergy / ( EPSILON + hDownmix->protoEnergy ) ) );
#else
    eq = min( DOWNMIX_MAX_GAIN, sqrtf( hDownmix->inputEnergy[0] / ( EPSILON + hDownmix->protoEnergy[0] ) ) );
#endif

    /* equalize the downmix */
    v_multc( proto_signal, eq, output_f[0], output_frame );
+0 −2
Original line number Diff line number Diff line
@@ -510,7 +510,6 @@ ivas_error ivas_sba_dec_reconfigure(
                }
            }

#ifdef NONBE_FIX_774_OSBA_MONO_DEC_CRASH
            if ( st_ivas->renderer_type == RENDERER_MONO_DOWNMIX )
            {
                if ( st_ivas->hMonoDmxRenderer == NULL )
@@ -529,7 +528,6 @@ ivas_error ivas_sba_dec_reconfigure(
                    st_ivas->hMonoDmxRenderer = NULL;
                }
            }
#endif

            if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV )
            {
+0 −5
Original line number Diff line number Diff line
@@ -1539,13 +1539,8 @@ typedef struct ivas_LS_setupconversion_mapping

typedef struct ivas_mono_downmix_renderer_struct
{
#ifdef NONBE_FIX_774_OSBA_MONO_DEC_CRASH
    float inputEnergy;
    float protoEnergy;
#else
    float inputEnergy[CLDFB_NO_CHANNELS_MAX];
    float protoEnergy[CLDFB_NO_CHANNELS_MAX];
#endif

} MONO_DOWNMIX_RENDERER_STRUCT, *MONO_DOWNMIX_RENDERER_HANDLE;