Commit 554f97d0 authored by vaclav's avatar vaclav
Browse files

accept FIX_1119_SPLIT_RENDERING_VOIP

parent 526949b2
Loading
Loading
Loading
Loading
+4 −62
Original line number Diff line number Diff line
@@ -1904,11 +1904,7 @@ static ivas_error initOnFirstGoodFrame(

        for ( int16_t i = 0; i < numInitialBadFrames; ++i )
        {
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
            if ( isSplitRend )
#else
            if ( *splitRendWriter != NULL )
#endif
            {
                ISAR_SPLIT_REND_BITS_DATA splitRendBitsZero;
                splitRendBitsZero.bits_buf = NULL;
@@ -1926,12 +1922,7 @@ static ivas_error initOnFirstGoodFrame(
                    return error;
                }
            }
#ifdef FIX_1119_SPLIT_RENDERING_VOIP

            if ( !isSplitCoded )
#else
            else
#endif
            {
                if ( *pRemainingDelayNumSamples < *numOutSamples )
                {
@@ -2132,13 +2123,11 @@ static ivas_error decodeG192(
        return error;
    }

#ifdef FIX_1119_SPLIT_RENDERING_VOIP
    if ( !isSplitRend )
    {
        /* Ensure split rendering output struct is not used when not outputting to a split rendering output configuration */
        splitRendBits = NULL;
    }
#endif

    if ( ( error = IVAS_DEC_is_split_rendering_coded_out( hIvasDec, &isSplitCoded ) ) != IVAS_ERR_OK )
    {
@@ -2401,11 +2390,7 @@ static ivas_error decodeG192(
                }

                /* decode transport channels, do TSM and feed to renderer */
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
                if ( ( error = IVAS_DEC_GetSamplesDecoder( hIvasDec, splitRendBits ) ) != IVAS_ERR_OK )
#else
                if ( ( error = IVAS_DEC_GetSamplesDecoder( hIvasDec, isSplitRend, splitRendBits ) ) != IVAS_ERR_OK )
#endif
                {
                    return error;
                }
@@ -2900,7 +2885,6 @@ static ivas_error decodeVoIP(
    bool parametersAvailableForEditing = false;
    uint16_t nSamplesRendered;

#ifdef FIX_1119_SPLIT_RENDERING_VOIP
    SplitFileReadWrite *splitRendWriter = NULL;
    int16_t isSplitRend, isSplitCoded;

@@ -2921,7 +2905,6 @@ static ivas_error decodeVoIP(
        fprintf( stderr, "\nError in IVAS_DEC_is_split_rendering_coded_out, code: %d\n", error );
        return error;
    }
#endif

    vec_pos_update = 0;
    if ( ( error = IVAS_DEC_GetRenderFramesizeMs( hIvasDec, &systemTimeInc_ms ) ) != IVAS_ERR_OK )
@@ -3251,7 +3234,6 @@ static ivas_error decodeVoIP(
                ivasRtp.nProcPiData += numPiData;
            }

#ifdef FIX_1119_SPLIT_RENDERING_VOIP
            if ( isSplitRend )
            {
#ifdef SUPPORT_JBM_TRACEFILE
@@ -3266,7 +3248,6 @@ static ivas_error decodeVoIP(
            }
            else
            {
#endif
#ifdef SUPPORT_JBM_TRACEFILE
                if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, (void *) pcmBuf, writeJbmTraceFileFrameWrapper, jbmTraceWriter, &bitstreamReadDone, &nSamplesRendered, &parametersAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK )
#else
@@ -3276,9 +3257,7 @@ static ivas_error decodeVoIP(
                    fprintf( stderr, "\nError in IVAS_DEC_VoIP_GetSamples: %s\n", IVAS_DEC_GetErrorMessage( error ) );
                    goto cleanup;
                }
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
            }
#endif

            if ( bitstreamReadDone == true )
            {
@@ -3389,30 +3368,8 @@ static ivas_error decodeVoIP(
            /* Once good frame decoded, catch up */
            if ( decodedGoodFrame )
            {
#ifndef FIX_1119_SPLIT_RENDERING_VOIP
                SplitFileReadWrite *splitRendWriter = NULL;

#endif
                if ( ( error = initOnFirstGoodFrame( hIvasDec,
                                                     arg,
                                                     numInitialBadFrames,
                                                     &nOutSamples,
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
                                                     &vec_pos_len,
#else
                                                     NULL,
#endif
                                                     delayNumSamples_orig,
                                                     &delayNumSamples,
                                                     &delayTimeScale,
                                                     &bsFormat,
                                                     &afWriter,
                                                     &masaWriter,
                                                     ismWriters,
                                                     &nOutChannels,
                                                     &numObj,
                                                     &srRtp,
                                                     &splitRendWriter ) ) != IVAS_ERR_OK )
                if ( ( error = initOnFirstGoodFrame( hIvasDec, arg, numInitialBadFrames, &nOutSamples, &vec_pos_len, delayNumSamples_orig, &delayNumSamples, &delayTimeScale,
                                                     &bsFormat, &afWriter, &masaWriter, ismWriters, &nOutChannels, &numObj, &srRtp, &splitRendWriter ) ) != IVAS_ERR_OK )
                {
                    goto cleanup;
                }
@@ -3426,7 +3383,6 @@ static ivas_error decodeVoIP(
        /* Write current frame */
        if ( !srRtp.hPack && decodedGoodFrame )
        {
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
            if ( isSplitRend )
            {
                if ( split_rend_write_bitstream_to_file( splitRendWriter, splitRendBits->bits_buf, &splitRendBits->bits_read, &splitRendBits->bits_written ) != IVAS_ERR_OK )
@@ -3435,10 +3391,8 @@ static ivas_error decodeVoIP(
                    goto cleanup;
                }
            }

            if ( !isSplitCoded )
            else
            {
#endif
                if ( delayNumSamples < nOutSamples )
                {
                    if ( ( error = AudioFileWriter_write( afWriter, &pcmBuf[delayNumSamples * nOutChannels], nOutSamples * nOutChannels - ( delayNumSamples * nOutChannels ) ) ) != IVAS_ERR_OK )
@@ -3452,9 +3406,7 @@ static ivas_error decodeVoIP(
                {
                    delayNumSamples -= nOutSamples;
                }
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
            }
#endif

            /* Write ISM metadata to external file(s) */
            if ( decodedGoodFrame && arg.outputConfig == IVAS_AUDIO_CONFIG_EXTERNAL )
@@ -3558,11 +3510,7 @@ static ivas_error decodeVoIP(
        goto cleanup;
    }

#ifdef FIX_1119_SPLIT_RENDERING_VOIP
    if ( nSamplesFlushed && !isSplitCoded )
#else
    if ( nSamplesFlushed )
#endif
    {
        /* Write current frame */
        if ( ( error = AudioFileWriter_write( afWriter, pcmBuf, nSamplesFlushed * nOutChannels ) ) != IVAS_ERR_OK )
@@ -3635,18 +3583,14 @@ static ivas_error decodeVoIP(

    memset( pcmBuf, 0, delayNumSamples_orig[0] * nOutChannels * sizeof( int16_t ) );

#ifdef FIX_1119_SPLIT_RENDERING_VOIP
    if ( afWriter != NULL )
    {
#endif
        if ( ( error = AudioFileWriter_write( afWriter, pcmBuf, delayNumSamples_orig[0] * nOutChannels ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nError writing output file: %s\n", ivas_error_to_string( error ) );
            goto cleanup;
        }
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
    }
#endif

    /*------------------------------------------------------------------------------------------*
     * Printouts after decoding has finished
@@ -3694,9 +3638,7 @@ cleanup:
    IVAS_RTP_Term( &srRtp );
    IVAS_RTP_Term( &ivasRtp );
    AudioFileWriter_close( &afWriter );
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
    split_rend_reader_writer_close( &splitRendWriter );
#endif
    JbmOffsetFileWriter_close( &jbmOffsetWriter );
#ifdef SUPPORT_JBM_TRACEFILE
    JbmTraceFileWriter_close( &jbmTraceWriter );
+0 −2
Original line number Diff line number Diff line
@@ -1317,7 +1317,6 @@ int main(
                    goto cleanup;
                }

#ifdef FIX_1119_SPLIT_RENDERING_VOIP
                /* Set BFI if frame is empty */
                int16_t frameEmpty = (int16_t) ( bitsBuffer.config.bitsWritten == 0 );
                if ( frameEmpty )
@@ -1328,7 +1327,6 @@ int main(
                        goto cleanup;
                    }
                }
#endif
            }
        }

+1 −3
Original line number Diff line number Diff line
@@ -6695,10 +6695,9 @@ void ivas_binaural_hrtf_close_fx(
    HRTFS_FASTCONV_HANDLE *hHrtfFastConv                        /* i/o: decoder binaural hrtf handle                */
);

#ifdef FIX_1119_SPLIT_RENDERING_VOIP

/*---------------------------------------------------------------------------------*
 * Multi-pose ring buffer Prototypes
 * Multi-pose ring buffer Prototypes for split-rendering
*-----------------------------------------------------------------------------------*/

ivas_error ivas_CLDFB_RINGBUF_Open( 
@@ -6731,7 +6730,6 @@ void ivas_CLDFB_RINGBUF_GetByIdx(
    const Word16 idx 
);

#endif

/*----------------------------------------------------------------------------------*
 * renderer prototypes
+6 −1
Original line number Diff line number Diff line
@@ -122,7 +122,6 @@

#define NONBE_1244_FIX_SWB_BWE_MEMORY                   /* VA: issue 1244: fix to SWB BWE memory in case of switching from FB coding - pending a review by Huawei */
#define FIX_1053_REVERB_RECONFIGURATION
#define FIX_1119_SPLIT_RENDERING_VOIP                   /* FhG: Add split rendering support to decoder in VoIP mode */
#define TMP_1342_WORKAROUND_DEC_FLUSH_BROKEN_IN_SR      /* FhG: Temporary workaround for incorrect implementation of decoder flush with split rendering */
#define NONBE_1122_KEEP_EVS_MODE_UNCHANGED              /* FhG: Disables fix for issue 1122 in EVS mode to keep BE tests green. This switch should be removed once the 1122 fix is added to EVS via a CR.  */
#define FIX_1413_IGF_INIT_PRINTOUT                      /* FhG: use correct variable for IGF initiliazation */
@@ -145,7 +144,13 @@
#define FIX_2192_OBJ_EDITING_EXT_METADATA               /* Eri: Add support for extended metadata in object editing */
#define FIX_BASOP_ISSUE_1585_CUT_BS_CRASH               /* FhG: Fix for BASOP issue 1585 crash of a cut bitstream, also valid for float code*/

/* #################### Start NON-BE switches ############################ */

/* any switch which is non-be wrt last submitted floating point code */


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

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

#endif
+1 −13
Original line number Diff line number Diff line
@@ -2165,9 +2165,6 @@ static void binRenderer_split_fx(
    Word32 Cldfb_ImagBuffer_Binaural_fx[][BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* o  : Rotated Binaural signals                      */
    Word32 RealBuffer_fx[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX],                                   /* i  : LS signals                                    */
    Word32 ImagBuffer_fx[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX],                                   /* i  : LS signals                                    */
#ifndef FIX_1119_SPLIT_RENDERING_VOIP
    const Word16 slot_idx_start,
#endif
    const Word16 num_freq_bands,
    const Word16 nchan_out )
{
@@ -2200,16 +2197,11 @@ static void binRenderer_split_fx(
        {
            FOR( ch = 0; ch < nchan_out; ch++ )
            {
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
                ivas_CLDFB_RINGBUF_Push(
                    hSplitBinRend->hMultiBinCldfbData[pos_idx * BINAURAL_CHANNELS + ch],
                    Cldfb_RealBuffer_Binaural_loc[pos_idx][ch][slot_idx],
                    Cldfb_ImagBuffer_Binaural_loc[pos_idx][ch][slot_idx],
                    num_freq_bands );
#else
                Copy32( Cldfb_RealBuffer_Binaural_loc[pos_idx][ch][slot_idx], hSplitBinRend->hMultiBinCldfbData->Cldfb_RealBuffer_Binaural_fx[( pos_idx * BINAURAL_CHANNELS ) + ch][slot_idx_start + slot_idx], num_freq_bands );
                Copy32( Cldfb_ImagBuffer_Binaural_loc[pos_idx][ch][slot_idx], hSplitBinRend->hMultiBinCldfbData->Cldfb_ImagBuffer_Binaural_fx[( pos_idx * BINAURAL_CHANNELS ) + ch][slot_idx_start + slot_idx], num_freq_bands );
#endif
            }
        }
    }
@@ -3819,11 +3811,7 @@ void ivas_dirac_dec_render_sf_fx(
            }

            binRenderer_split_fx( st_ivas->hBinRenderer, st_ivas->hSplitBinRend, st_ivas->hCombinedOrientationData, hSpatParamRendCom->subframe_nbslots[subframe_idx],
                                  Cldfb_RealBuffer_Binaural_fx, Cldfb_ImagBuffer_Binaural_fx, Cldfb_RealBuffer_fx, Cldfb_ImagBuffer_fx,
#ifndef FIX_1119_SPLIT_RENDERING_VOIP
                                  slot_idx_start,
#endif
                                  hSpatParamRendCom->num_freq_bands, st_ivas->hDecoderConfig->nchan_out );
                                  Cldfb_RealBuffer_Binaural_fx, Cldfb_ImagBuffer_Binaural_fx, Cldfb_RealBuffer_fx, Cldfb_ImagBuffer_fx, hSpatParamRendCom->num_freq_bands, st_ivas->hDecoderConfig->nchan_out );
        }
        ELSE
        {
Loading