Commit 4562e7d0 authored by vaclav's avatar vaclav
Browse files

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

- Merge remote-tracking branch 'remotes/origin/main' into basop-2312-condition-missing-for-ivas-gsc-gain-de-quantization-when-compared-to-floating-point
parents 3b65ce59 ef47b1ef
Loading
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -172,7 +172,9 @@ typedef struct
    int16_t numInMetadataFiles;
    char outMetadataFilePath[RENDERER_MAX_CLI_ARG_LENGTH];
    char headRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH];
#ifndef FIX_1494_SET_SPLITBFI_UNUSED
    char splitRendBFIFilePath[RENDERER_MAX_CLI_ARG_LENGTH];
#endif
    char referenceVectorFilePath[RENDERER_MAX_CLI_ARG_LENGTH];
    char referenceRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH];
    char externalOrientationFilePath[RENDERER_MAX_CLI_ARG_LENGTH];
@@ -223,7 +225,9 @@ typedef enum
    CmdLnOptionId_listFormats,
    CmdLnOptionId_inputGain,
    CmdLnOptionId_outputMetadata,
#ifndef FIX_1494_SET_SPLITBFI_UNUSED
    CmdLnOptionId_SplitRendBFIFile,
#endif
    CmdLnOptionId_referenceVectorFile,
    CmdLnOptionId_exteriorOrientationFile,
    CmdLnOptionId_framing,
@@ -282,12 +286,14 @@ static const CmdLnParser_Option cliOptions[] = {
        .matchShort = "om",
        .description = "coded metadata file for BINAURAL_SPLIT_PCM output mode",
    },
#ifndef FIX_1494_SET_SPLITBFI_UNUSED
    {
        .id = CmdLnOptionId_SplitRendBFIFile,
        .match = "post_rend_bfi_file",
        .matchShort = "prbfi",
        .description = "Split rendering option: bfi file",
    },
#endif
    {
        .id = CmdLnOptionId_refRotFile,
        .match = "reference_rotation_file",
@@ -763,7 +769,9 @@ int main(
    IVAS_CLDFB_FILTER_BANK_HANDLE cldfbAna[RENDERER_MAX_INPUT_CHANNELS];
    IVAS_CLDFB_FILTER_BANK_HANDLE cldfbSyn[RENDERER_MAX_INPUT_CHANNELS];
    int16_t cldfb_in_flag, CLDFBframeSize_smpls;
#ifndef FIX_1494_SET_SPLITBFI_UNUSED
    SplitRendBFIFileReader *splitRendBFIReader = NULL;
#endif
    Vector3PairFileReader *referenceVectorReader = NULL;
    hrtfFileReader *hrtfFileReader = NULL;
    IVAS_DEC_HRTF_CREND_HANDLE *hHrtfCrend = NULL;
@@ -893,11 +901,13 @@ int main(
        }
    }

#ifndef FIX_1494_SET_SPLITBFI_UNUSED
    if ( !isEmptyString( args.splitRendBFIFilePath ) )
    {
        convert_backslash( args.splitRendBFIFilePath );
        SplitRendBFIFileReader_open( args.splitRendBFIFilePath, &splitRendBFIReader );
    }
#endif
    if ( !isEmptyString( args.externalOrientationFilePath ) )
    {
        if ( RotationFileReader_open( args.externalOrientationFilePath, &externalOrientationFileReader ) != IVAS_ERR_OK )
@@ -2183,7 +2193,9 @@ cleanup:
    }

    split_rend_reader_writer_close( &hSplitRendFileReadWrite );
#ifndef FIX_1494_SET_SPLITBFI_UNUSED
    SplitRendBFIFileReader_close( &splitRendBFIReader );
#endif

    for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i )
    {
@@ -2785,7 +2797,9 @@ static CmdlnArgs defaultArgs(

    clearString( args.headRotationFilePath );
    clearString( args.outMetadataFilePath );
#ifndef FIX_1494_SET_SPLITBFI_UNUSED
    clearString( args.splitRendBFIFilePath );
#endif
    clearString( args.referenceVectorFilePath );
    clearString( args.referenceRotationFilePath );
    clearString( args.customHrtfFilePath );
@@ -2892,10 +2906,12 @@ static void parseOption(
            assert( numOptionValues == 1 );
            strncpy( args->outMetadataFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 );
            break;
#ifndef FIX_1494_SET_SPLITBFI_UNUSED
        case CmdLnOptionId_SplitRendBFIFile:
            assert( numOptionValues == 1 );
            strncpy( args->splitRendBFIFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 );
            break;
#endif
        case CmdLnOptionId_referenceVectorFile:
            assert( numOptionValues == 1 );
            strncpy( args->referenceVectorFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 );
+3 −0
Original line number Diff line number Diff line
@@ -595,6 +595,9 @@ void cldfbAnalysis_ts_fx_var_q(
    IF( NE_16( h_cldfb->Q_cldfb_state, *q_cldfb ) )
    {
        Word16 norm_st = L_norm_arr( timeBuffer_fx, offset );
#ifdef FIX_2257_INCR_GUARD_BITS
        norm_st = sub( norm_st, find_guarded_bits_fx( shr( h_cldfb->no_channels, 2 ) ) );
#endif
        IF( GE_16( norm_st, sub( *q_cldfb, h_cldfb->Q_cldfb_state ) ) )
        {
            scale_sig32( timeBuffer_fx, offset, sub( *q_cldfb, h_cldfb->Q_cldfb_state ) );
+6 −0
Original line number Diff line number Diff line
@@ -113,9 +113,12 @@
#define FIX_1872_REMOVE_UNUSED_PSNOISEGEN_ISAR              /* Dolby: Remove unused psNoiseGen from ISAR */
#define FIX_1478_UNINIT_ON_BFI                          /* VA: Fix issue 1478 where a vector is partly un-initialized during bfi */
#define FIX_1487_ACCESS_OF_UNINIT_VAL_FROM_ARR_ISM_DTX  /* FhG/VA: init nb_bits_metadata to zero */
#define FIX_1486_INIT_OUTPUT_POINTERS                   /* FhG: always initialize pointers in renderer flush */
#define FIX_2290_COPY_OF_UNINIT_DATA                    /* VA: prevent the copy of un-initialized data */
#define CLEANUP_ACELP_ENC                               /* VA: basop issue 2304: Remove duplicated code in excitation encoding in the ACELP core */
#define CLEANUP_VBR_CAM_ENC                             /* VA: basop issue 2299: Remove unused core-encoder VBR and CAM code */
#define FIX_1494_SET_SPLITBFI_UNUSED                    /* Dolby: Fix issue 1494, remove unused function setting BFI flag in ISAR renderer */
#define FIX_1479_MSAN_SPAR_UNINITIALIZED_VALUE          /* Dolby: Fix for issue 1479, MSAN error due to uninitialized value in SPAR */

/* #################### End BE switches ################################## */

@@ -132,8 +135,11 @@
#define FIX_1381_BWD                                    /* VA: issue 1381: apply no hysteresis in BWD at higher bitrates also in mono MASA and OMASA */
#define FIX_2285_CODE_DECODER_INIT_BW                   /* VA: basop issue 2285: fix core-decoder initialization bandwidth */
#define FIX_2306_MISSING_UPDATE_LOWRATE_PITCH_GAIN      /* Dolby: Fix missing update of low-rate pitch gain in the S/M classifier */
#define FIX_2257_INCR_GUARD_BITS                        /* FhG: take correct rendering frame-size into account for guard-bits calculation */
#define FIX_2297_SBA_SCALING_32KHZ                      /* VA: basop issue 2297: Fix scaling factor before the SBA decoder for output_Fs = 32 or 16 */
#define FIX_2315_AGC_MEMORY_RESET                       /* VA: basop issue 2315: fix reset of the AGC memory */
#define FIX_2312_CONDITION_MISSING_GSC_DEC_LR           /* VA: basop issue 2297: addition of condition missing in the GSC gain decoder at low-rate */

/* ##################### End NON-BE switches ########################### */

/* ################## End MAINTENANCE switches ######################### */
+6 −0
Original line number Diff line number Diff line
@@ -2491,8 +2491,14 @@ ivas_error core_switching_pre_dec_ivas_fx(
            /* Last frame was Stereo CNG and the synthesis memory is outdated -- reset */
            set16_fx( st->hTcxDec->old_syn_Overl, 0, L_FRAME32k / 2 );
            set16_fx( st->hFdCngDec->hFdCngCom->olapBufferAna_fx, 0, FFTLEN );
#ifndef FIX_2315_AGC_MEMORY_RESET
            set16_fx( st->agc_mem_fx, 0, 2 );
#endif
        }

#ifdef FIX_2315_AGC_MEMORY_RESET
        set16_fx( st->agc_mem_fx, 0, 2 );
#endif
        st->mem_deemph_fx = 0;
        move16();
        IF( !st->last_con_tcx )
+19 −0
Original line number Diff line number Diff line
@@ -2473,12 +2473,23 @@ ivas_error ivas_jbm_dec_flush_renderer_fx(
    DECODER_TC_BUFFER_HANDLE hTcBuffer;
    Word32 *p_output_fx[MAX_LS_CHANNELS + MAX_NUM_OBJECTS];
    Word16 nchan_in, nchan_out;
#ifdef FIX_1486_INIT_OUTPUT_POINTERS
    Word16 ch_idx;
#endif


    IF( !st_ivas->hDecoderConfig->Opt_tsm )
    {
        return IVAS_ERR_OK;
    }

#ifdef FIX_1486_INIT_OUTPUT_POINTERS
    FOR( ch_idx = 0; ch_idx < ( MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS ); ch_idx++ )
    {
        p_output_fx[ch_idx] = st_ivas->p_output_fx[ch_idx];
    }
#endif

    *nSamplesRendered = 0;
    move16();
    hTcBuffer = st_ivas->hTcBuffer;
@@ -2504,7 +2515,9 @@ ivas_error ivas_jbm_dec_flush_renderer_fx(

    IF( n_slots_still_available )
    {
#ifndef FIX_1486_INIT_OUTPUT_POINTERS
        Word16 ch_idx;
#endif

        /* render available full slots (with new lower granularity) */
        FOR( ch_idx = 0; ch_idx < s_max( hTcBuffer->nchan_transport_rend, hTcBuffer->nchan_buffer_full ); ch_idx++ )
@@ -2534,10 +2547,12 @@ ivas_error ivas_jbm_dec_flush_renderer_fx(
        move16();
        move16();

#ifndef FIX_1486_INIT_OUTPUT_POINTERS
        FOR( ch_idx = 0; ch_idx < ( MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS ); ch_idx++ )
        {
            p_output_fx[ch_idx] = st_ivas->p_output_fx[ch_idx];
        }
#endif

        test();
        IF( EQ_16( st_ivas->ivas_format, ISM_FORMAT ) )
@@ -2788,7 +2803,11 @@ ivas_error ivas_jbm_dec_flush_renderer_fx(
        IF( NE_16( st_ivas->ivas_format, MONO_FORMAT ) )
        {
#ifndef DISABLE_LIMITER
#ifndef FIX_1486_INIT_OUTPUT_POINTERS
            Word16 ch_idx, exp = 11;
#else
            Word16 exp = 11;
#endif
            move16();
            FOR( ch_idx = 0; ch_idx < MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS; ch_idx++ )
            {
Loading