Commit df367c9d authored by bayers's avatar bayers
Browse files

fixes to make sure all modes run w/o problems when no object editing happens

parent 9e5c8aae
Loading
Loading
Loading
Loading
Loading
+18 −16
Original line number Diff line number Diff line
@@ -2371,6 +2371,10 @@ static ivas_error decodeG192(
                    goto cleanup;
                }
#ifdef OBJ_EDITING_INTERFACE
#ifdef DEBUGGING
                if ( arg.objEditEnabled )
                {

                    /* Do object info editing here */
                    /* get object parameters */
                    if ( ( error = IVAS_DEC_GetEditableParameters( hIvasDec, &editableParameters ) ) != IVAS_ERR_OK )
@@ -2380,9 +2384,7 @@ static ivas_error decodeG192(
                    }

                    /* edit object parameters...*/
#ifdef DEBUGGING
                if ( arg.objEditEnabled )
                {

                    /* put the objects equally spaced at the horizontal plane */
                    /* and play a little bit with the gains... */
                    int16_t obj_idx, non_diegetic_obj_idx;
@@ -2415,6 +2417,7 @@ static ivas_error decodeG192(
                            }
                        }
                    }
                    /* 2 second AM of the object gains. */
                    gain_mean = 1.0f;
                    gain_amplitude = 0.7f;
                    gain_freq = ( 2.0f * 3.1415f ) / 100.0f;
@@ -2423,15 +2426,14 @@ static ivas_error decodeG192(
                    {
                        editableParameters.ism_metadata[obj_idx].gain = gain_mean + gain_amplitude * sinf( (float) frame * gain_freq + gain_freq_offset * (float) obj_idx );
                    }
                }
#endif
                    /* set new object parameters*/
                    if ( ( error = IVAS_DEC_SetEditableParameters( hIvasDec, editableParameters ) ) != IVAS_ERR_OK )
                    {
                        fprintf( stderr, "\nError: could not set the editable parameters: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
                        goto cleanup;
                    }

                }
#endif
                /* Do the final preparations needed for rendering */
                if ( ( error = IVAS_DEC_PrepareRenderer( hIvasDec ) ) != IVAS_ERR_OK )
                {
+10 −3
Original line number Diff line number Diff line
@@ -191,7 +191,10 @@ ivas_error ivas_jbm_dec_tc(
        }

#ifdef OBJ_EDITING_INTERFACE
        if ( st_ivas->ism_mode != ISM_MODE_PARAM && ( st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_EXTERNAL && st_ivas->renderer_type != RENDERER_MONO_DOWNMIX ) )
        {
            ivas_ism_renderer_update_md( st_ivas );
        }
#endif

        if ( st_ivas->renderer_type == RENDERER_MONO_DOWNMIX )
@@ -965,7 +968,11 @@ void ivas_jbm_dec_feed_tc_to_renderer(
        }
        else
#endif
            if ( st_ivas->mc_mode == MC_MODE_PARAMMC )
            if ( st_ivas->mc_mode == MC_MODE_PARAMMC
#ifdef OBJ_EDITING_INTERFACE
                 && st_ivas->hTcBuffer->tc_buffer_mode == TC_BUFFER_MODE_RENDERER
#endif
            )
        {
            ivas_param_mc_dec_digest_tc( st_ivas, (uint8_t) n_render_timeslots, p_data_f );
        }
@@ -1011,7 +1018,7 @@ void ivas_jbm_dec_prepare_renderer(
    {
        ivas_jbm_dec_td_renderers_adapt_subframes( st_ivas );
    }
    if ( st_ivas->ivas_format == ISM_FORMAT )
    else if ( st_ivas->ivas_format == ISM_FORMAT )
    {
        /* Rendering */
        if ( st_ivas->ism_mode == ISM_MODE_PARAM )
+29 −18
Original line number Diff line number Diff line
@@ -174,6 +174,8 @@ ivas_error ivas_td_binaural_renderer_sf(
        if ( subframe_idx == ism_md_subframe_update_jbm )
        {
#ifdef OBJ_EDITING_INTERFACE
            if ( st_ivas->ivas_format == ISM_FORMAT )
            {
                ISM_METADATA_FRAME ismMetaData[MAX_NUM_OBJECTS];
                ISM_METADATA_HANDLE hIsmMetaData[MAX_NUM_OBJECTS];
                int16_t s_idx;
@@ -189,13 +191,22 @@ ivas_error ivas_td_binaural_renderer_sf(
                    ismMetaData[nS].gain = st_ivas->hIsmRendererData->edited_gains[nS];
                    hIsmMetaData[nS] = &ismMetaData[nS];
                }

                if ( ( error = TDREND_Update_object_positions( st_ivas->hBinRendererTd, nchan_ism, st_ivas->ivas_format, hIsmMetaData ) ) != IVAS_ERR_OK )
#else
            if ( ( error = TDREND_Update_object_positions( st_ivas->hBinRendererTd, nchan_ism, st_ivas->ivas_format, st_ivas->hIsmMetaData ) ) != IVAS_ERR_OK )
                {
                    return error;
                }
            }
            else
            {
#endif
                if ( ( error = TDREND_Update_object_positions( st_ivas->hBinRendererTd, nchan_ism, st_ivas->ivas_format, st_ivas->hIsmMetaData ) ) != IVAS_ERR_OK )
                {
                    return error;
                }
#ifdef OBJ_EDITING_INTERFACE
            }
#endif
        }

        /* Update the listener's location/orientation */