Commit fff4714d authored by vaclav's avatar vaclav
Browse files

port MR1915

parent 2f84dc47
Loading
Loading
Loading
Loading
Loading
+36 −31
Original line number Diff line number Diff line
@@ -1503,14 +1503,23 @@ ivas_error IVAS_DEC_GetEditableParameters(
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }

#ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST
    if ( !hIvasDec->hasBeenFedFirstGoodFrame )
    {
        hIvasEditableParameters->num_obj = 0;

        return IVAS_ERR_OK;
    }
#endif

    st_ivas = hIvasDec->st_ivas;
    ism_mode = st_ivas->ism_mode;

#ifdef FIX_BRATE_SWITCHING
    if ( !( hIvasDec->st_ivas->ivas_format == ISM_FORMAT ||
            hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT ||
            hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT ||
            ( hIvasDec->st_ivas->ivas_format == MASA_FORMAT && hIvasDec->st_ivas->nchan_ism > 0 ) ) )
#ifdef NONBE_1217_INIT_OBJ_EDIT
    if ( !( st_ivas->ivas_format == ISM_FORMAT ||
            st_ivas->ivas_format == SBA_ISM_FORMAT ||
            st_ivas->ivas_format == MASA_ISM_FORMAT ||
            ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nchan_ism > 0 ) ) )
#else
    if ( !( st_ivas->ivas_format == ISM_FORMAT ||
            ( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_SBA_MODE_DISC ) ||
@@ -1520,15 +1529,6 @@ ivas_error IVAS_DEC_GetEditableParameters(
        return IVAS_ERROR( IVAS_ERR_OBJECTS_EDITING_NOT_SUPPORTED, "Object editing is not supported in this operation mode." );
    }

#ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST
    if ( !hIvasDec->hasBeenFedFirstGoodFrame )
    {
        hIvasEditableParameters->num_obj = 0;

        return IVAS_ERR_OK;
    }
#endif

    hIvasEditableParameters->gain_bed = 1.0f;
    hIvasEditableParameters->num_obj = st_ivas->nchan_ism;
    if ( st_ivas->ivas_format == ISM_FORMAT || st_ivas->ivas_format == SBA_ISM_FORMAT )
@@ -1651,21 +1651,6 @@ ivas_error IVAS_DEC_SetEditableParameters(
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }

#ifdef FIX_BRATE_SWITCHING
    if ( !( hIvasDec->st_ivas->ivas_format == ISM_FORMAT ||
            hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT ||
            hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT ||
            ( hIvasDec->st_ivas->ivas_format == MASA_FORMAT && hIvasDec->st_ivas->nchan_ism > 0 ) ) )
#else
    if ( !( hIvasDec->st_ivas->ivas_format == ISM_FORMAT ||
            ( hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT && hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) ||
            ( hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT && ( hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_DISC ) ) ) ||
         hIvasDec->st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL )
#endif
    {
        return IVAS_ERROR( IVAS_ERR_OBJECTS_EDITING_NOT_SUPPORTED, "Object editing no supported in this operation mode." );
    }

#ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST
    if ( !hIvasDec->hasBeenFedFirstGoodFrame )
    {
@@ -1676,14 +1661,28 @@ ivas_error IVAS_DEC_SetEditableParameters(
    st_ivas = hIvasDec->st_ivas;
    ism_mode = st_ivas->ism_mode;

#ifdef DEBUGGING
    assert( hIvasEditableParameters.num_obj == st_ivas->nchan_ism );
#ifdef NONBE_1217_INIT_OBJ_EDIT
    if ( !( st_ivas->ivas_format == ISM_FORMAT ||
            st_ivas->ivas_format == SBA_ISM_FORMAT ||
            st_ivas->ivas_format == MASA_ISM_FORMAT ||
            ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nchan_ism > 0 ) ) )
#else
    if ( !( hIvasDec->st_ivas->ivas_format == ISM_FORMAT ||
            ( hIvasDec->st_ivas->ivas_format == SBA_ISM_FORMAT && hIvasDec->st_ivas->ism_mode == ISM_SBA_MODE_DISC ) ||
            ( hIvasDec->st_ivas->ivas_format == MASA_ISM_FORMAT && ( hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || hIvasDec->st_ivas->ism_mode == ISM_MASA_MODE_DISC ) ) ) ||
         hIvasDec->st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL )
#endif
    {
        return IVAS_ERROR( IVAS_ERR_OBJECTS_EDITING_NOT_SUPPORTED, "Object editing no supported in this operation mode." );
    }

    if ( st_ivas->ivas_format == ISM_FORMAT || st_ivas->ivas_format == SBA_ISM_FORMAT )
    {
        if ( ism_mode == ISM_MODE_DISC || ism_mode == ISM_SBA_MODE_DISC )
        {
#ifdef DEBUGGING
            assert( hIvasEditableParameters.num_obj == st_ivas->nchan_ism );
#endif
            for ( obj = 0; obj < hIvasEditableParameters.num_obj; obj++ )
            {
                st_ivas->hIsmMetaData[obj]->edited_azimuth = hIvasEditableParameters.ism_metadata[obj].azimuth;
@@ -1705,6 +1704,9 @@ ivas_error IVAS_DEC_SetEditableParameters(
        }
        else if ( ism_mode == ISM_MODE_PARAM )
        {
#ifdef DEBUGGING
            assert( hIvasEditableParameters.num_obj == st_ivas->nchan_ism );
#endif
            for ( obj = 0; obj < hIvasEditableParameters.num_obj; obj++ )
            {
#ifdef OBJ_EDITING_PARAMISM_BIN
@@ -1758,6 +1760,9 @@ ivas_error IVAS_DEC_SetEditableParameters(
        int32_t id_th;
        float threshold_azi, threshold_ele;

#ifdef DEBUGGING
        assert( hIvasEditableParameters.num_obj == st_ivas->nchan_ism );
#endif
        for ( obj = 0; obj < hIvasEditableParameters.num_obj; obj++ )
        {
            if ( st_ivas->hMasaIsmData != NULL )