Commit c1109dfa authored by bayers's avatar bayers
Browse files

Merge remote-tracking branch 'remotes/origin/main' into...

Merge remote-tracking branch 'remotes/origin/main' into 1012-asan-stack-buffer-overflow-in-osba_ism1_planarfoa-decoding-to-binaural
parents d6c743fa f1b38ab5
Loading
Loading
Loading
Loading
Loading
+0 −33
Original line number Diff line number Diff line
@@ -455,14 +455,9 @@ int main(
     *------------------------------------------------------------------------------------------*/

#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef SPLIT_REND_LCLD_5MS
    asked_frame_size = arg.renderFramesize;
#endif
    if ( arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM )
    {
#ifndef SPLIT_REND_LCLD_5MS
        asked_frame_size = arg.renderFramesize;
#endif
        if ( ( error = IVAS_DEC_EnableSplitRendering( hIvasDec ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
@@ -475,12 +470,6 @@ int main(
            goto cleanup;
        }

#ifndef SPLIT_REND_LCLD_5MS
        if ( arg.renderFramesize != asked_frame_size )
        {
            fprintf( stderr, "\nChanged render framesize, only 20ms are allowed for split rendering!\n" );
        }
#endif
        arg.enableHeadRotation = true;
    }
#endif
@@ -633,26 +622,6 @@ int main(
            goto cleanup;
        }

#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifndef SPLIT_REND_LCLD_5MS
        if ( arg.renderFramesize == IVAS_RENDER_FRAMESIZE_5MS && ( renderConfig.split_rend_config.poseCorrectionMode == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_NONE ||
                                                                   renderConfig.split_rend_config.dof == 0 ) )
        {
            /*TODO : needs to be refined as this wont work with LCLD codec*/
            arg.renderFramesize = IVAS_RENDER_FRAMESIZE_5MS;
        }
        else
        {
            arg.renderFramesize = IVAS_RENDER_FRAMESIZE_20MS;
        }

        if ( ( error = IVAS_DEC_SetRenderFramesize( hIvasDec, arg.renderFramesize ) ) != IVAS_ERR_OK )
        {
            return error;
        }

#endif
#endif
        if ( RenderConfigReader_read( renderConfigReader, arg.renderConfigFilename, &renderConfig ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "Failed to read renderer configuration from file %s\n\n", arg.renderConfigFilename );
@@ -665,7 +634,6 @@ int main(
            goto cleanup;
        }

#ifdef SPLIT_REND_LCLD_5MS
#ifdef SPLIT_REND_WITH_HEAD_ROT
        if ( asked_frame_size != IVAS_RENDER_FRAMESIZE_20MS && ( renderConfig.split_rend_config.poseCorrectionMode == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_NONE ||
                                                                 renderConfig.split_rend_config.dof == 0 ) )
@@ -686,7 +654,6 @@ int main(
        {
            fprintf( stderr, "\nChanged render framesize, only 20ms are allowed for non-0dof split rendering!\n" );
        }
#endif
#endif

        if ( arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB )
+0 −18
Original line number Diff line number Diff line
@@ -1889,7 +1889,6 @@ int main(
#ifdef SPLIT_REND_WITH_HEAD_ROT
        for ( i = 0; i < args.inConfig.numBinBuses; ++i )
        {
#ifdef SPLIT_REND_LCLD_5MS
            if ( numSamplesRead > 0 )
            {
                if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, splitBinIds[i], &numChannels ) ) != IVAS_ERR_OK )
@@ -1905,23 +1904,8 @@ int main(
                    exit( -1 );
                }
            }
#endif
            if ( splitBinNeedsNewFrame )
            {
#ifndef SPLIT_REND_LCLD_5MS
                if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, splitBinIds[i], &numChannels ) ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) );
                    exit( -1 );
                }
                IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.binBuses[i].inputChannelIndex, numChannels );

                if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, splitBinIds[i], tmpBuffer ) ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) );
                    exit( -1 );
                }
#endif
                if ( ( error = IVAS_REND_FeedSplitBinauralBitstream( hIvasRend, splitBinIds[i], &bitsBuffer ) ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) );
@@ -2225,9 +2209,7 @@ cleanup:
    }

    split_rend_reader_writer_close( &hSplitRendFileReadWrite );
#ifdef SPLIT_REND_LCLD_5MS
    SplitRendBFIFileReader_close( &splitRendBFIReader );
#endif
#endif

    for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i )
+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                             */
);

lib_com/options.h

100644 → 100755
+2 −6
Original line number Diff line number Diff line
@@ -164,6 +164,7 @@
#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_1008_EXTORIENT_TARGET_INTERPOLATION         /* FhG: issue #1008, external orientation init was wrong for 5ms */
#define FIX_1009_ISM_NONDIEGETIC_PANNING                /* FhG: issue #1009: use correct object buffer for ISM1 non-diegetic pan      */


/* #################### End BE switches ################################## */
@@ -173,11 +174,6 @@
/* all switches in this category should start with "NONBE_" */

#define NONBE_FIX_978_MC_TDREND_REVERB                        /* Eri : activate reverb for TDREND with headtracking */

#ifdef SPLIT_REND_WITH_HEAD_ROT
#define SPLIT_REND_LCLD_5MS                                   /* Dlb: LCLD 5ms framing operation  */
#endif

#define NONBE_FIX_984_OMASA_EXT_OUTPUT                        /* Nokia: issue #984: complete the OMASA EXT output implementation */
#define NONBE_FIX_1000_G1_G2_SWB_TBE                          /* VA: issue 1000: avoid div by zero due to g1 + g2 being zero in SWB TBE */
#define NONBE_FIX_999_JBM_MCT_FLUSH                           /* FhG: issue #999: fix wrong flushing for MCT at a JBM rate switch */
+0 −20
Original line number Diff line number Diff line
@@ -247,17 +247,10 @@ static ivas_error ivas_dec_init_split_rend(
        }
    }

#ifdef SPLIT_REND_LCLD_5MS
    if ( ( error = ivas_split_rend_choose_default_codec( &st_ivas->hRenderConfig->split_rend_config.codec, &st_ivas->hRenderConfig->split_rend_config.codec_frame_size_ms, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize ) ) != IVAS_ERR_OK )
    {
        return error;
    }
#else
    if ( ( error = ivas_split_rend_choose_default_codec( &st_ivas->hRenderConfig->split_rend_config.codec, &st_ivas->hRenderConfig->split_rend_config.codec_frame_size_ms, cldfb_in_flag, pcm_out_flag ) ) != IVAS_ERR_OK )
    {
        return error;
    }
#endif

#ifdef SPLIT_REND_WITH_HEAD_ROT
    if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV && st_ivas->ivas_format == SBA_ISM_FORMAT )
@@ -266,11 +259,7 @@ static ivas_error ivas_dec_init_split_rend(
    }
#endif

#ifdef SPLIT_REND_LCLD_5MS
    error = ivas_split_renderer_open( &st_ivas->hSplitBinRend.splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize );
#else
    error = ivas_split_renderer_open( &st_ivas->hSplitBinRend.splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, st_ivas->hDecoderConfig->render_framesize == IVAS_RENDER_FRAMESIZE_5MS );
#endif
    return error;
}
#endif
@@ -2559,9 +2548,6 @@ void ivas_initialize_handles_dec(
    st_ivas->hSplitBinRend.hMultiBinCldfbData = NULL;
    st_ivas->hSplitBinRend.hSplitRendBits = NULL;
    st_ivas->hSplitBinRend.hCldfbDataOut = NULL;
#ifndef SPLIT_REND_LCLD_5MS
    st_ivas->hSplitBinRend.tdDataOut = NULL;
#endif
    st_ivas->hSplitBinRend.numTdSamplesPerChannelCached = 0;
    ivas_init_split_rend_handles( &st_ivas->hSplitBinRend.splitrend );
#endif
@@ -2711,12 +2697,6 @@ void ivas_destroy_dec(
        free( st_ivas->hSplitBinRend.hCldfbDataOut );
        st_ivas->hSplitBinRend.hCldfbDataOut = NULL;
    }
#ifndef SPLIT_REND_LCLD_5MS
    if ( st_ivas->hSplitBinRend.tdDataOut != NULL )
    {
        free( st_ivas->hSplitBinRend.tdDataOut );
    }
#endif
#endif

    /* Parametric binaural renderer handle */
Loading