Commit 4e7cc31c authored by sagnowski's avatar sagnowski
Browse files

Merge branch '1119-split-rendering-crashes-in-jbm-ve' into '1119-split-rendering-crashes-in-jbm'

Resolve "Split rendering crashes in JBM"

See merge request !2182
parents 10eb9de0 d7fa39b2
Loading
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -147,7 +147,6 @@
    <ClCompile Include="..\lib_dec\ari_hm_dec.c" />
    <ClCompile Include="..\lib_dec\avq_dec.c" />
    <ClCompile Include="..\lib_dec\bass_psfilter.c" />
    <ClCompile Include="..\lib_dec\cldfb_ring_buffer.c" />
    <ClCompile Include="..\lib_dec\cng_dec.c" />
    <ClCompile Include="..\lib_dec\core_dec_init.c" />
    <ClCompile Include="..\lib_dec\core_dec_reconf.c" />
@@ -313,7 +312,6 @@
    <ClCompile Include="..\lib_dec\ivas_sns_dec.c" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\lib_dec\cldfb_ring_buffer.h" />
    <ClInclude Include="..\lib_dec\ivas_rom_dec.h" />
    <ClInclude Include="..\lib_dec\ivas_stat_dec.h" />
    <ClInclude Include="..\lib_dec\jbm_jb4sb.h" />
+1 −7
Original line number Diff line number Diff line
@@ -277,9 +277,6 @@
    <ClCompile Include="..\lib_dec\bass_psfilter.c">
      <Filter>decoder_all_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_dec\cldfb_ring_buffer.c">
      <Filter>decoder_all_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_dec\cng_dec.c">
      <Filter>decoder_all_c</Filter>
    </ClCompile>
@@ -520,9 +517,6 @@
    <ClCompile Include="..\lib_dec\lib_dec.c" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\lib_dec\cldfb_ring_buffer.h">
      <Filter>decoder_h</Filter>
    </ClInclude>
    <ClInclude Include="..\lib_dec\ivas_stat_dec.h">
      <Filter>decoder_h</Filter>
    </ClInclude>
+1 −0
Original line number Diff line number Diff line
@@ -138,6 +138,7 @@
    </Lib>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClCompile Include="..\lib_rend\ivas_cldfb_ring_buffer.c" />
    <ClCompile Include="..\lib_rend\ivas_dirac_decorr_dec.c" />
    <ClCompile Include="..\lib_rend\ivas_dirac_dec_binaural_functions.c" />
    <ClCompile Include="..\lib_rend\ivas_dirac_onsets_dec.c" />
+3 −0
Original line number Diff line number Diff line
@@ -119,6 +119,9 @@
    <ClCompile Include="..\lib_rend\ivas_td_ring_buffer.c">
      <Filter>rend_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_rend\ivas_cldfb_ring_buffer.c">
      <Filter>rend_c</Filter>
    </ClCompile>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\lib_rend\lib_rend.h" />
+18 −24
Original line number Diff line number Diff line
@@ -171,12 +171,11 @@ typedef struct
static bool parseCmdlIVAS_dec( int16_t argc, char **argv, DecArguments *arg );
static void usage_dec( void );
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtf, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, ObjectEditFileReader *objectEditFileReader, ISAR_SPLIT_REND_BITS_DATA *splitRendBits, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtf, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, ObjectEditFileReader *objectEditFileReader,
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
                              ISAR_SPLIT_REND_BITS_DATA *splitRendBits,
static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtf, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, ObjectEditFileReader *objectEditFileReader, ISAR_SPLIT_REND_BITS_DATA *splitRendBits, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
#else
static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtf, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, ObjectEditFileReader *objectEditFileReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
#endif
                              IVAS_DEC_HANDLE hIvasDec,
                              int16_t *pcmBuf );
static ivas_error load_hrtf_from_file( IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtfBinary, IVAS_DEC_HANDLE hIvasDec, const IVAS_AUDIO_CONFIG OutputConfig, const int32_t output_Fs );
#ifdef DEBUGGING
static ivas_error printBitstreamInfoVoip( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec );
@@ -757,11 +756,11 @@ int main(

    if ( arg.voipMode )
    {
        error = decodeVoIP( arg, hBsReader, &hHrtfBinary, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, objectEditFileReader,
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
                            &splitRendBits,
        error = decodeVoIP( arg, hBsReader, &hHrtfBinary, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, objectEditFileReader, &splitRendBits, hIvasDec, pcmBuf );
#else
        error = decodeVoIP( arg, hBsReader, &hHrtfBinary, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, objectEditFileReader, hIvasDec, pcmBuf );
#endif
                            hIvasDec, pcmBuf );
    }
    else
    {
@@ -2127,7 +2126,7 @@ static ivas_error decodeG192(
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
    if ( !isSplitRend )
    {
        /* Ensure split rendering output struct is not used when not outputting to a split rendering format */
        /* Ensure split rendering output struct is not used when not outputting to a split rendering output configuration */
        splitRendBits = NULL;
    }
#endif
@@ -2467,11 +2466,11 @@ static ivas_error decodeG192(
                }

                /* decode transport channels, do TSM and feed to renderer */
                if ( ( error = IVAS_DEC_GetSamplesDecoder( hIvasDec,
#ifndef FIX_1119_SPLIT_RENDERING_VOIP
                                                           isSplitRend,
#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
                                                           splitRendBits ) ) != IVAS_ERR_OK )
                {
                    return error;
                }
@@ -3392,15 +3391,11 @@ static ivas_error decodeVoIP(
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
            if ( isSplitRend )
            {
                if ( ( error = IVAS_DEC_VoIP_GetSplitBinauralBitstream( hIvasDec, (void *) pcmBuf, splitRendBits,
#ifdef SUPPORT_JBM_TRACEFILE
                                                                        writeJbmTraceFileFrameWrapper,
                                                                        jbmTraceWriter,
                if ( ( error = IVAS_DEC_VoIP_GetSplitBinauralBitstream( hIvasDec, (void *) pcmBuf, splitRendBits, writeJbmTraceFileFrameWrapper, jbmTraceWriter, &bitstreamReadDone, &nSamplesRendered, &parametersAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK )
#else
                if ( ( error = IVAS_DEC_VoIP_GetSplitBinauralBitstream( hIvasDec, (void *) pcmBuf, splitRendBits, &bitstreamReadDone, &nSamplesRendered, &parametersAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK )
#endif
                                                                        &bitstreamReadDone,
                                                                        &nSamplesRendered,
                                                                        &parametersAvailableForEditing,
                                                                        systemTime_ms ) ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "\nError in IVAS_DEC_VoIP_GetSplitBinauralBitstream: %s\n", IVAS_DEC_GetErrorMessage( error ) );
                    goto cleanup;
@@ -3502,15 +3497,13 @@ static ivas_error decodeVoIP(
            {
#ifndef FIX_1119_SPLIT_RENDERING_VOIP
                SplitFileReadWrite *splitRendWriter = NULL;
#endif

                if ( ( error = initOnFirstGoodFrame( hIvasDec, arg, numInitialBadFrames, &nOutSamples,
#endif
#ifdef FIX_1119_SPLIT_RENDERING_VOIP
                                                     &vec_pos_len,
                if ( ( error = initOnFirstGoodFrame( hIvasDec, arg, numInitialBadFrames, &nOutSamples, &vec_pos_len, delayNumSamples_orig, &delayNumSamples, &delayTimeScale,
#else
                                                     NULL,
                if ( ( error = initOnFirstGoodFrame( hIvasDec, arg, numInitialBadFrames, &nOutSamples, NULL, delayNumSamples_orig, &delayNumSamples, &delayTimeScale,
#endif
                                                     delayNumSamples_orig, &delayNumSamples, &delayTimeScale,
                                                     &bsFormat, &afWriter, &masaWriter, ismWriters, &nOutChannels, &numObj, &splitRendWriter ) ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "Error in initOnFirstGoodFrame(): %s\n", IVAS_DEC_GetErrorMessage( error ) );
@@ -3535,6 +3528,7 @@ static ivas_error decodeVoIP(
                    goto cleanup;
                }
            }

            if ( !isSplitCoded )
            {
#endif
Loading