Commit 2f4b325b authored by emerit's avatar emerit
Browse files

Merge branch 'float-pc' into 1205_ref_744_step_2_nonbe_fix_binary_binaural_reading

parents 5f3a1729 36f33dd8
Loading
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -1643,7 +1643,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
@@ -196,6 +196,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_956_DECODER_COMMAND_LINE_FIX                /* VA: Output correct error message when the decoder command-line has too many mandatory arguments. */
#define FIX_955_FASTCONV_REND_IN_ISM                    /* VA: put FastConv rendering call under DEBUGGING */
#define FIX_958_667_DISABLE_INITIAL_PLC_SUPPRESSION     /* Ericsson: Fix related to issue 667 in IVAS BASOP. Handling of initial lost frame in IVAS causes non-BE on EVS BASOP 26.444 */

/* #################### End BASOP porting switches ############################ */

+15 −0
Original line number Diff line number Diff line
@@ -1030,11 +1030,13 @@ ivas_error ivas_jbm_dec_render(
            {
                ivas_dirac_dec_binaural_render( st_ivas, nSamplesAskedLocal, nSamplesRendered, nSamplesAvailableNext, st_ivas->nchan_transport, p_output );
            }
#ifndef FIX_957_REMOVE_PANNING_DEAD_CODE
            else if ( st_ivas->renderer_type == RENDERER_NON_DIEGETIC_DOWNMIX )
            {
                *nSamplesRendered = min( st_ivas->hTcBuffer->n_samples_available, nSamplesAskedLocal );
                ivas_apply_non_diegetic_panning( p_output, st_ivas->hDecoderConfig->non_diegetic_pan_gain, *nSamplesRendered );
            }
#endif
            else if ( st_ivas->renderer_type == RENDERER_PARAM_ISM || st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC )
            {
                ivas_param_ism_dec_render( st_ivas, nSamplesAskedLocal, nSamplesRendered, nSamplesAvailableNext, p_output );
@@ -1060,11 +1062,24 @@ ivas_error ivas_jbm_dec_render(
            {
                ivas_apply_non_diegetic_panning( p_output, st_ivas->hDecoderConfig->non_diegetic_pan_gain, *nSamplesRendered );
            }

#ifdef FIX_955_FASTCONV_REND_IN_ISM
#ifdef DEBUGGING
            else if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV )
#else
            else if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC )
#endif
            {
                /* Convert to Ambisonics */
                ivas_ism2sba_sf( st_ivas->hTcBuffer->tc, p_output, st_ivas->hIsmRendererData, st_ivas->nchan_transport, *nSamplesRendered, st_ivas->hTcBuffer->n_samples_rendered, st_ivas->hIntSetup.ambisonics_order );
            }
#else
            else if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV )
            {
                /* Convert to Ambisonics; used also for ISM->HOA3->binaural rendering */
                ivas_ism2sba_sf( st_ivas->hTcBuffer->tc, p_output, st_ivas->hIsmRendererData, st_ivas->nchan_transport, *nSamplesRendered, st_ivas->hTcBuffer->n_samples_rendered, st_ivas->hIntSetup.ambisonics_order );
            }
#endif

            /* Binaural rendering */
            if ( st_ivas->renderer_type == RENDERER_BINAURAL_OBJECTS_TD )
+3 −0
Original line number Diff line number Diff line
@@ -221,6 +221,9 @@ ivas_error IVAS_DEC_Open(
        st_ivas->transport_config = IVAS_AUDIO_CONFIG_INVALID;
        st_ivas->intern_config = IVAS_AUDIO_CONFIG_INVALID;
        st_ivas->writeFECoffset = 0;
#ifdef FIX_958_667_DISABLE_INITIAL_PLC_SUPPRESSION
        hIvasDec->hasDecodedFirstGoodFrame = true; /* Functionality to suppress output for initial lost frames is disabled in EVS operation */
#endif

        return IVAS_ERR_OK;
    }
+8 −0
Original line number Diff line number Diff line
@@ -59,9 +59,17 @@ static uint16_t LC_mixing_7_1[7] = { 0, 1, 2, 3, 4, 3, 4 };

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

#ifdef NONBE_FIX_935_EARLY_REFLECTIONS_WRONG_ORDER
static uint16_t LC_mixing_5_1_4[9] = { 0, 1, 2, 3, 4, 0, 1, 3, 4 };
#else
static uint16_t 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 uint16_t LC_mixing_7_1_4[11] = { 0, 1, 2, 3, 4, 3, 4, 0, 1, 3, 4 };
#else
static uint16_t LC_mixing_7_1_4[11] = { 0, 1, 2, 3, 4, 3, 4, 0, 1, 2, 3 };
#endif


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