Commit 89291396 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

enable experimental object-editing example

parent a7cf377d
Loading
Loading
Loading
Loading
Loading
+34 −34
Original line number Diff line number Diff line
@@ -2159,40 +2159,40 @@ static ivas_error decodeG192(

                    /* 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;
                    // int16_t num_nondiegetic_objects;
                    //
                    // num_nondiegetic_objects = 0;
                    // for ( obj_idx = 0; obj_idx < editableParameters.num_obj; obj_idx++ )
                    // {
                    //     if ( !editableParameters.ism_metadata[obj_idx].non_diegetic_flag )
                    //     {
                    //         num_nondiegetic_objects++;
                    //     }
                    // }
                    // if ( num_nondiegetic_objects )
                    // {
                    //     float start_angle, angle_inc;
                    //     angle_inc = 360.0f / (float) num_nondiegetic_objects;
                    //     start_angle = angle_inc / 2.0f;
                    //     for ( obj_idx = 0, non_diegetic_obj_idx = 0; obj_idx < editableParameters.num_obj; obj_idx++ )
                    //     {
                    //         if ( !editableParameters.ism_metadata[obj_idx].non_diegetic_flag )
                    //         {
                    //             editableParameters.ism_metadata[obj_idx].elevation = 0.0f;
                    //             editableParameters.ism_metadata[obj_idx].azimuth = start_angle + (float) non_diegetic_obj_idx * angle_inc;
                    //             non_diegetic_obj_idx++;
                    //         }
                    //     }
                    // }
                    //
                    // /* breakover object gains */
                    // for ( obj_idx = 0; obj_idx < editableParameters.num_obj; obj_idx++ )
                    // {
                    //     editableParameters.ism_metadata[obj_idx].gain = 0.5f + (float) ( ( frame + obj_idx * 50 ) % 250 ) / 250.0f;
                    // }
                    //
                    // editableParameters.gain_bed = 0.5f;
                    Word16 obj_idx, non_diegetic_obj_idx;
                    Word16 num_nondiegetic_objects;

                    num_nondiegetic_objects = 0;
                    for ( obj_idx = 0; obj_idx < editableParameters.num_obj; obj_idx++ )
                    {
                        if ( !editableParameters.ism_metadata[obj_idx].non_diegetic_flag )
                        {
                            num_nondiegetic_objects++;
                        }
                    }
                    if ( num_nondiegetic_objects )
                    {
                        float start_angle, angle_inc;
                        angle_inc = 360.0f / (float) num_nondiegetic_objects;
                        start_angle = angle_inc / 2.0f;
                        for ( obj_idx = 0, non_diegetic_obj_idx = 0; obj_idx < editableParameters.num_obj; obj_idx++ )
                        {
                            if ( !editableParameters.ism_metadata[obj_idx].non_diegetic_flag )
                            {
                                editableParameters.ism_metadata[obj_idx].elevation_fx = 0;
                                editableParameters.ism_metadata[obj_idx].azimuth_fx = (Word32) ( (start_angle + (float) non_diegetic_obj_idx * angle_inc) * powf(2.0f, 22.0f) );
                                non_diegetic_obj_idx++;
                            }
                        }
                    }

                    /* breakover object gains */
                    for ( obj_idx = 0; obj_idx < editableParameters.num_obj; obj_idx++ )
                    {
                        editableParameters.ism_metadata[obj_idx].gain_fx = (Word32) ( ( 0.5f + (float) ( ( frame + obj_idx * 50 ) % 250 ) / 250.0f ) * powf(2.0f, 29.0f) );
                    }

                    editableParameters.gain_bed_fx = (1 << 28); // 0.5 in Q29

                    /* set new object parameters*/
                    if ( ( error = IVAS_DEC_SetEditableParameters( hIvasDec, editableParameters ) ) != IVAS_ERR_OK )