Commit d271ebe4 authored by bayers's avatar bayers
Browse files

fix for #1009, fix ISM1 non-diegetic rendering, use the correct offset and...

fix for #1009, fix ISM1 non-diegetic rendering, use the correct offset and buffer for rendering the non-diegetic object, under define FIX_1009_ISM_NONDIEGETIC_PANNING, active
parent 48244454
Loading
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -769,7 +769,10 @@ void dtx_read_padding_bits(
);

void ivas_apply_non_diegetic_panning( 
    float *output_f[],                                          /* i/o: core-coder transport mono channel/stereo output             */
#ifdef FIX_1009_ISM_NONDIEGETIC_PANNING
    float *input_f,                                             /* i  : non-diegetic object                                         */
#endif
    float *output_f[],                                          /* o  : core-coder transport mono channel/stereo output             */
    const float non_diegetic_pan_gain,                          /* i  : non-diegetic panning gain                                   */
    const int16_t output_frame                                  /* i  : output frame length per channel                             */
);
+1 −1
Original line number Diff line number Diff line
@@ -160,7 +160,7 @@
#define FIX_1003_PARAMISM_BINAURAL_RECONFIG_USAN        /* FhG: fix for #1003: fix USAN caused by ParamISM reconfig                    */
#define FIX_1001_ARI_HM_OVERFLOW                        /* FhG: fix for undef behaviour in in the harmonic TCX model arithmetic coder */
#define FIX_901_PARAMMC_DEAD_CODE                       /* FhG: issue 901: remove dead ParamMC code             */

#define FIX_1009_ISM_NONDIEGETIC_PANNING                /* FhG: issue #1009: use correct object buffer for ISM1 non-diegetic pan      */


/* #################### End BE switches ################################## */
+4 −0
Original line number Diff line number Diff line
@@ -1120,7 +1120,11 @@ ivas_error ivas_jbm_dec_render(
            }
            else if ( st_ivas->renderer_type == RENDERER_NON_DIEGETIC_DOWNMIX )
            {
#ifdef FIX_1009_ISM_NONDIEGETIC_PANNING
                ivas_apply_non_diegetic_panning( p_tc[0], p_output, st_ivas->hDecoderConfig->non_diegetic_pan_gain, *nSamplesRendered );
#else
                ivas_apply_non_diegetic_panning( p_output, st_ivas->hDecoderConfig->non_diegetic_pan_gain, *nSamplesRendered );
#endif
            }
#ifdef DEBUGGING
            else if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV )
+9 −2
Original line number Diff line number Diff line
@@ -221,7 +221,10 @@ void ivas_mono_stereo_downmix_mcmasa(
 *------------------------------------------------------------------------*/

void ivas_apply_non_diegetic_panning(
    float *output_f[],                 /* i/o: core-coder transport mono channel/stereo output  */
#ifdef FIX_1009_ISM_NONDIEGETIC_PANNING
    float *input_f, /* i  : non-diegetic object                                         */
#endif
    float *output_f[],                 /* o  : core-coder transport mono channel/stereo output  */
    const float non_diegetic_pan_gain, /* i  : non-diegetic panning gain                        */
    const int16_t output_frame         /* i  : output frame length per channel                  */
)
@@ -230,9 +233,13 @@ void ivas_apply_non_diegetic_panning(

    pan_left = ( non_diegetic_pan_gain + 1.f ) * 0.5f;
    pan_right = 1.f - pan_left;

#ifdef FIX_1009_ISM_NONDIEGETIC_PANNING
    v_multc( input_f, pan_right, output_f[1], output_frame );
    v_multc( input_f, pan_left, output_f[0], output_frame );
#else
    v_multc( output_f[0], pan_right, output_f[1], output_frame );
    v_multc( output_f[0], pan_left, output_f[0], output_frame );
#endif

    return;
}