Commit 962221fd authored by multrus's avatar multrus
Browse files

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

Merge remote-tracking branch 'origin/main-pc' into 1205_basop_744_step_2_nonbe_fix_binary_binaural_reading
parents d584233e 8071f0d5
Loading
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -1424,7 +1424,27 @@ static bool parseCmdlIVAS_dec(
     * Mandatory input arguments
     *-----------------------------------------------------------------*/

#ifdef FIX_956_DECODER_COMMAND_LINE_FIX
    if ( i < argc - 4 )
    {
        for ( i = 1; i < argc; i++ )
        {
            if ( argv[i][0] == '-' )
            {
                fprintf( stderr, "Error: Wrong order of command-line arguments (optional arguments are first)\n\n" );
                usage_dec();
                return false;
            }
        }

        fprintf( stderr, "Error: Too many mandatory command-line arguments\n\n" );
        usage_dec();
        return false;
    }
    else if ( i < argc - 3 )
#else
    if ( i < argc - 3 )
#endif
    {
        arg->outputConfig = cmdline2config( argv[i] );
        if ( arg->outputConfig == IVAS_AUDIO_CONFIG_LS_CUSTOM )
+5 −0
Original line number Diff line number Diff line
@@ -97,6 +97,11 @@
#define NONBE_FIX_944_FEC_OMASA_1SEP_OBJ_MASA           /* Nokia: issue 944: fix FEC error in OMASA */
#define NONBE_FIX_949_MC_5MS_FRAMING                    /*Dlb: Issue 949: fix for 5ms framing/rendering in MC mode */
#define NONBE_FIX_952_MC_PARAMUPMIX_5MS                 /* Dlb : issue 952 : Differences between 5ms and 20ms rendering for ParamUpmix*/
#define FIX_957_REMOVE_PANNING_DEAD_CODE                /* VA: Remove obsolete non-diegetic panning related code. */
#define NONBE_FIX_935_EARLY_REFLECTIONS_WRONG_ORDER     /* Qualcomm: issue 953: fix order or ER channels in LC mode*/
#define FIX_955_FASTCONV_REND_IN_ISM                    /* VA: put FastConv rendering call under DEBUGGING */

#define FIX_956_DECODER_COMMAND_LINE_FIX                /* VA: Output correct error message when the decoder command-line has too many mandatory arguments. */

//#define SPLIT_REND_WITH_HEAD_ROT_NEW                    /* Orange: split rendering code differ between branchs main-pc and float-pc, do not know what to do */
#define NONBE_FIX_BINARY_BINAURAL_READING               /* Orange: Add support for reading binaural binary file */
+18 −5
Original line number Diff line number Diff line
@@ -1940,12 +1940,14 @@ ivas_error ivas_jbm_dec_render_fx(
            {
                ivas_dirac_dec_binaural_render_fx( st_ivas, nSamplesAskedLocal, nSamplesRendered, nSamplesAvailableNext, st_ivas->nchan_transport, p_output_fx );
            }
#ifndef FIX_957_REMOVE_PANNING_DEAD_CODE
            ELSE IF( EQ_32( st_ivas->renderer_type, RENDERER_NON_DIEGETIC_DOWNMIX ) )
            {
                *nSamplesRendered = s_min( st_ivas->hTcBuffer->n_samples_available, nSamplesAskedLocal );
                move16();
                ivas_apply_non_diegetic_panning_fx( p_output_fx, st_ivas->hDecoderConfig->non_diegetic_pan_gain_fx, *nSamplesRendered );
            }
#endif
            ELSE IF( EQ_32( st_ivas->renderer_type, RENDERER_PARAM_ISM ) || EQ_32( st_ivas->renderer_type, RENDERER_SBA_LINEAR_ENC ) )
            {
                ivas_param_ism_dec_render_fx( st_ivas, nSamplesAskedLocal, nSamplesRendered, nSamplesAvailableNext, p_output_fx );
@@ -1974,12 +1976,22 @@ ivas_error ivas_jbm_dec_render_fx(
            {
                ivas_apply_non_diegetic_panning_fx( p_output_fx, st_ivas->hDecoderConfig->non_diegetic_pan_gain_fx, *nSamplesRendered );
            }
#ifdef FIX_955_FASTCONV_REND_IN_ISM
#ifdef DEBUGGING
            ELSE IF( EQ_32( st_ivas->renderer_type, RENDERER_SBA_LINEAR_ENC ) || EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV ) )
#else
            ELSE IF( EQ_32( st_ivas->renderer_type, RENDERER_SBA_LINEAR_ENC ) )
#endif
            {
                /* Convert to Ambisonics */
#else
            ELSE IF( EQ_32( st_ivas->renderer_type, RENDERER_SBA_LINEAR_ENC ) || EQ_32( st_ivas->renderer_type, RENDERER_BINAURAL_FASTCONV ) )
            {
/* Convert to Ambisonics; used also for ISM->HOA3->binaural rendering */
#endif
                FOR( i = 0; i < st_ivas->nchan_transport; i++ )
                {
                    FOR( j = 0; j < 16; j++ )
                    FOR( j = 0; j < HOA3_CHANNELS; j++ )
                    {
                        st_ivas->hIsmRendererData->gains_fx[i][j] = L_shr( st_ivas->hIsmRendererData->gains_fx[i][j], 1 ); // Q30 -> Q29
                        move32();
@@ -1987,14 +1999,15 @@ ivas_error ivas_jbm_dec_render_fx(
                        move32();
                    }
                }

                ivas_ism2sba_sf_fx( st_ivas->hTcBuffer->tc_fx, p_output_fx, st_ivas->hIsmRendererData, st_ivas->nchan_transport, *nSamplesRendered, st_ivas->hTcBuffer->n_samples_rendered, st_ivas->hIntSetup.ambisonics_order );

                Word16 sba_num_chans = imult1616( add( st_ivas->hIntSetup.ambisonics_order, 1 ), add( st_ivas->hIntSetup.ambisonics_order, 1 ) );
                FOR( j = 0; j < sba_num_chans; j++ )
                {
                    scale_sig32( p_output_fx[j], *nSamplesRendered, sub( Q11, sub( add( output_q_factor, 29 ), 31 ) ) ); // Q11
                }


                FOR( i = 0; i < st_ivas->nchan_transport; i++ )
                {
                    FOR( j = 0; j < 16; j++ )
+8 −0
Original line number Diff line number Diff line
@@ -56,9 +56,17 @@ static UWord16 LC_mixing_7_1[7] = { 0, 1, 2, 3, 4, 3, 4 };

static UWord16 LC_mixing_5_1_2[7] = { 0, 1, 2, 3, 4, 0, 1 };

#ifdef NONBE_FIX_935_EARLY_REFLECTIONS_WRONG_ORDER
static UWord16 LC_mixing_5_1_4[9] = { 0, 1, 2, 3, 4, 0, 1, 3, 4 };
#else
static UWord16 LC_mixing_5_1_4[9] = { 0, 1, 2, 3, 4, 0, 1, 2, 3 };
#endif

#ifdef NONBE_FIX_935_EARLY_REFLECTIONS_WRONG_ORDER
static UWord16 LC_mixing_7_1_4[11] = { 0, 1, 2, 3, 4, 3, 4, 0, 1, 3, 4 };
#else
static UWord16 LC_mixing_7_1_4[11] = { 0, 1, 2, 3, 4, 3, 4, 0, 1, 2, 3 };
#endif


/*-----------------------------------------------------------------------------------------*