Loading apps/decoder.c +49 −0 Original line number Diff line number Diff line Loading @@ -175,7 +175,11 @@ typedef struct static bool parseCmdlIVAS_dec( int16_t argc, char **argv, DecArguments *arg ); static void usage_dec( void ); #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtfBinary, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, ObjectEditFileReader *objectEditFileReader, ISAR_SPLIT_REND_BITS_DATA *splitRendBits, IVAS_DEC_HANDLE *phIvasDec, int16_t *pcmBuf ); #else static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtfBinary, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, ObjectEditFileReader *objectEditFileReader, ISAR_SPLIT_REND_BITS_DATA *splitRendBits, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf ); #endif 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_RENDER_CONFIG_DATA *renderConfig, IVAS_DEC_HANDLE *phIvasDec, 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 Loading Loading @@ -779,7 +783,11 @@ int main( } else { #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH error = decodeG192( arg, hBsReader, &hHrtfBinary, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, objectEditFileReader, &splitRendBits, &hIvasDec, pcmBuf ); #else error = decodeG192( arg, hBsReader, &hHrtfBinary, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, objectEditFileReader, &splitRendBits, hIvasDec, pcmBuf ); #endif } if ( error == IVAS_ERR_OK || error == IVAS_ERR_END_OF_FILE ) Loading Loading @@ -2232,7 +2240,11 @@ static ivas_error decodeG192( Vector3PairFileReader *referenceVectorReader, ObjectEditFileReader *objectEditFileReader, ISAR_SPLIT_REND_BITS_DATA *splitRendBits, #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH IVAS_DEC_HANDLE *phIvasDec, #else IVAS_DEC_HANDLE hIvasDec, #endif int16_t *pcmBuf ) { Loading @@ -2240,6 +2252,9 @@ static ivas_error decodeG192( uint16_t bit_stream[IVAS_MAX_BITS_PER_FRAME + 4 * 8]; int16_t i, num_bits; int16_t bfi = 0; #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH IVAS_DEC_HANDLE hIvasDec = *phIvasDec; #endif #ifdef DEBUGGING int16_t fec_seed = 12558; /* FEC_SEED */ #endif Loading Loading @@ -2270,6 +2285,9 @@ static ivas_error decodeG192( int16_t vec_pos_update, vec_pos_len; SplitFileReadWrite *splitRendWriter = NULL; int16_t isSplitRend, isSplitCoded; #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH bool restartNeeded; #endif #ifdef VARIABLE_SPEED_DECODING if ( arg.tsmEnabled ) Loading Loading @@ -2601,6 +2619,37 @@ static ivas_error decodeG192( return error; } #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( ( error = IVAS_DEC_isRestartNeeded( hIvasDec, &restartNeeded ) ) != IVAS_ERR_OK ) { return error; } if ( restartNeeded ) { IVAS_DEC_BS_FORMAT tempFormat; if ( ( error = IVAS_DEC_GetFormat( hIvasDec, &tempFormat ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError in IVAS_DEC_GetFormat, code: %d\n", error ); goto cleanup; } IVAS_DEC_MODE codecMode = ( tempFormat == IVAS_DEC_BS_MONO ) ? IVAS_DEC_MODE_EVS : IVAS_DEC_MODE_IVAS; error = restartDecoder( &hIvasDec, codecMode, &arg, NULL, /* ToDo : Provide rendererConfig */ NULL /* ToDo : Provide LS Custom Data */ ); if ( error != IVAS_ERR_OK ) { fprintf( stderr, "\nFailed to restart decoder\n" ); goto cleanup; } *phIvasDec = hIvasDec; /* Update for main()' s free */ } #endif /* Placeholder for memory reallocation */ /* ... */ Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -165,6 +165,7 @@ #define FIX_ISSUE_1546_DEAD_CODE /* FhG: remove dead code reported in the issue*/ #define FIX_FLOAT_1544_SBA_META_IMPRECISION_UNSAFE_MATH /* FhG: float issue 1544: imprecision in ivas_get_dirac_sba_max_md_bits() with -funsafe-math-optimizations */ #define FIX_FLOAT_1544_ITD_IMPRECISION_UNSAFE_MATH /* FhG: float issue 1544: Avoid assert() with -funsafe-math-optimizations in stereo_td_itd() */ #define FIX_FLOAT_1539_G192_FORMAT_SWITCH /* Nokia: reintroduce format switching for g192 bitstreams */ /* #################### End BE switches ################################## */ Loading lib_dec/ivas_init_dec.c +53 −0 Original line number Diff line number Diff line Loading @@ -106,7 +106,9 @@ ivas_error ivas_dec_get_format( int16_t nchan_ism, element_mode_flag; int16_t sba_order, sba_planar, sba_analysis_order; int32_t ivas_total_brate; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH int16_t Opt_tsm; #endif uint16_t *bit_stream_orig; AUDIO_CONFIG signaled_config; ivas_error error; Loading @@ -115,7 +117,9 @@ ivas_error ivas_dec_get_format( element_mode_flag = 0; ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH Opt_tsm = st_ivas->hDecoderConfig->Opt_tsm; #endif bit_stream_orig = st_ivas->bit_stream; /*-------------------------------------------------------------------* Loading @@ -131,11 +135,14 @@ ivas_error ivas_dec_get_format( !( st_ivas->ivas_format == MASA_FORMAT && st_ivas->last_ivas_format == MASA_ISM_FORMAT ) && !( st_ivas->ivas_format == MASA_ISM_FORMAT && st_ivas->last_ivas_format == MASA_FORMAT ) ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -144,6 +151,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong number of objects signalled!" ); } #endif } /*-------------------------------------------------------------------* Loading Loading @@ -177,11 +185,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && nchan_ism != st_ivas->nchan_ism ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -190,6 +201,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong number of objects signalled!" ); } #endif } st_ivas->nchan_ism = nchan_ism; Loading @@ -209,10 +221,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && sba_planar != st_ivas->sba_planar ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -221,6 +237,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong SBA planar flag signalled!" ); } #endif } /* read Ambisonic (SBA) order */ Loading @@ -229,11 +246,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && sba_order != st_ivas->sba_order ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -242,6 +262,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong SBA order signalled!" ); } #endif } sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, sba_order ); Loading @@ -254,7 +275,11 @@ ivas_error ivas_dec_get_format( /* read number of MASA transport channels */ if ( st_ivas->bit_stream[( ivas_total_brate / FRAMES_PER_SEC ) - 1] ) { #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( st_ivas->nchan_transport == 1 ) #else if ( st_ivas->nchan_transport == 1 && Opt_tsm ) #endif { masaRestartCandidate = 1; } Loading @@ -264,7 +289,11 @@ ivas_error ivas_dec_get_format( } else { #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( st_ivas->nchan_transport == 2 ) #else if ( st_ivas->nchan_transport == 2 && Opt_tsm ) #endif { masaRestartCandidate = 1; } Loading Loading @@ -305,11 +334,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && nchan_ism != st_ivas->nchan_ism ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -318,6 +350,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong number of objects signalled!" ); } #endif } st_ivas->nchan_ism = nchan_ism; Loading @@ -332,11 +365,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && nchan_ism != st_ivas->nchan_ism ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -345,6 +381,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong number of objects signalled!" ); } #endif } st_ivas->nchan_ism = nchan_ism; Loading @@ -356,11 +393,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && nchan_ism != st_ivas->nchan_ism ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -369,6 +409,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong number of objects signalled!" ); } #endif } st_ivas->nchan_ism = nchan_ism; Loading @@ -392,11 +433,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && sba_order != st_ivas->sba_order ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -405,6 +449,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong SBA order signalled!" ); } #endif } st_ivas->ism_mode = ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->nchan_ism ); Loading @@ -429,11 +474,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && st_ivas->transport_config != signaled_config ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -442,6 +490,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "wrong MC configuration signalled!" ); } #endif } st_ivas->mc_mode = ivas_mc_mode_select( ivas_mc_map_output_config_to_mc_ls_setup( signaled_config ), ivas_total_brate ); Loading Loading @@ -523,11 +572,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && nchan_ism != st_ivas->nchan_ism ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -536,6 +588,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong number of objects signalled!" ); } #endif } st_ivas->nchan_ism = nchan_ism; Loading Loading
apps/decoder.c +49 −0 Original line number Diff line number Diff line Loading @@ -175,7 +175,11 @@ typedef struct static bool parseCmdlIVAS_dec( int16_t argc, char **argv, DecArguments *arg ); static void usage_dec( void ); #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtfBinary, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, ObjectEditFileReader *objectEditFileReader, ISAR_SPLIT_REND_BITS_DATA *splitRendBits, IVAS_DEC_HANDLE *phIvasDec, int16_t *pcmBuf ); #else static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HRTF_BINARY_WRAPPER *hHrtfBinary, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, ObjectEditFileReader *objectEditFileReader, ISAR_SPLIT_REND_BITS_DATA *splitRendBits, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf ); #endif 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_RENDER_CONFIG_DATA *renderConfig, IVAS_DEC_HANDLE *phIvasDec, 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 Loading Loading @@ -779,7 +783,11 @@ int main( } else { #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH error = decodeG192( arg, hBsReader, &hHrtfBinary, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, objectEditFileReader, &splitRendBits, &hIvasDec, pcmBuf ); #else error = decodeG192( arg, hBsReader, &hHrtfBinary, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, objectEditFileReader, &splitRendBits, hIvasDec, pcmBuf ); #endif } if ( error == IVAS_ERR_OK || error == IVAS_ERR_END_OF_FILE ) Loading Loading @@ -2232,7 +2240,11 @@ static ivas_error decodeG192( Vector3PairFileReader *referenceVectorReader, ObjectEditFileReader *objectEditFileReader, ISAR_SPLIT_REND_BITS_DATA *splitRendBits, #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH IVAS_DEC_HANDLE *phIvasDec, #else IVAS_DEC_HANDLE hIvasDec, #endif int16_t *pcmBuf ) { Loading @@ -2240,6 +2252,9 @@ static ivas_error decodeG192( uint16_t bit_stream[IVAS_MAX_BITS_PER_FRAME + 4 * 8]; int16_t i, num_bits; int16_t bfi = 0; #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH IVAS_DEC_HANDLE hIvasDec = *phIvasDec; #endif #ifdef DEBUGGING int16_t fec_seed = 12558; /* FEC_SEED */ #endif Loading Loading @@ -2270,6 +2285,9 @@ static ivas_error decodeG192( int16_t vec_pos_update, vec_pos_len; SplitFileReadWrite *splitRendWriter = NULL; int16_t isSplitRend, isSplitCoded; #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH bool restartNeeded; #endif #ifdef VARIABLE_SPEED_DECODING if ( arg.tsmEnabled ) Loading Loading @@ -2601,6 +2619,37 @@ static ivas_error decodeG192( return error; } #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( ( error = IVAS_DEC_isRestartNeeded( hIvasDec, &restartNeeded ) ) != IVAS_ERR_OK ) { return error; } if ( restartNeeded ) { IVAS_DEC_BS_FORMAT tempFormat; if ( ( error = IVAS_DEC_GetFormat( hIvasDec, &tempFormat ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError in IVAS_DEC_GetFormat, code: %d\n", error ); goto cleanup; } IVAS_DEC_MODE codecMode = ( tempFormat == IVAS_DEC_BS_MONO ) ? IVAS_DEC_MODE_EVS : IVAS_DEC_MODE_IVAS; error = restartDecoder( &hIvasDec, codecMode, &arg, NULL, /* ToDo : Provide rendererConfig */ NULL /* ToDo : Provide LS Custom Data */ ); if ( error != IVAS_ERR_OK ) { fprintf( stderr, "\nFailed to restart decoder\n" ); goto cleanup; } *phIvasDec = hIvasDec; /* Update for main()' s free */ } #endif /* Placeholder for memory reallocation */ /* ... */ Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -165,6 +165,7 @@ #define FIX_ISSUE_1546_DEAD_CODE /* FhG: remove dead code reported in the issue*/ #define FIX_FLOAT_1544_SBA_META_IMPRECISION_UNSAFE_MATH /* FhG: float issue 1544: imprecision in ivas_get_dirac_sba_max_md_bits() with -funsafe-math-optimizations */ #define FIX_FLOAT_1544_ITD_IMPRECISION_UNSAFE_MATH /* FhG: float issue 1544: Avoid assert() with -funsafe-math-optimizations in stereo_td_itd() */ #define FIX_FLOAT_1539_G192_FORMAT_SWITCH /* Nokia: reintroduce format switching for g192 bitstreams */ /* #################### End BE switches ################################## */ Loading
lib_dec/ivas_init_dec.c +53 −0 Original line number Diff line number Diff line Loading @@ -106,7 +106,9 @@ ivas_error ivas_dec_get_format( int16_t nchan_ism, element_mode_flag; int16_t sba_order, sba_planar, sba_analysis_order; int32_t ivas_total_brate; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH int16_t Opt_tsm; #endif uint16_t *bit_stream_orig; AUDIO_CONFIG signaled_config; ivas_error error; Loading @@ -115,7 +117,9 @@ ivas_error ivas_dec_get_format( element_mode_flag = 0; ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH Opt_tsm = st_ivas->hDecoderConfig->Opt_tsm; #endif bit_stream_orig = st_ivas->bit_stream; /*-------------------------------------------------------------------* Loading @@ -131,11 +135,14 @@ ivas_error ivas_dec_get_format( !( st_ivas->ivas_format == MASA_FORMAT && st_ivas->last_ivas_format == MASA_ISM_FORMAT ) && !( st_ivas->ivas_format == MASA_ISM_FORMAT && st_ivas->last_ivas_format == MASA_FORMAT ) ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -144,6 +151,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong number of objects signalled!" ); } #endif } /*-------------------------------------------------------------------* Loading Loading @@ -177,11 +185,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && nchan_ism != st_ivas->nchan_ism ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -190,6 +201,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong number of objects signalled!" ); } #endif } st_ivas->nchan_ism = nchan_ism; Loading @@ -209,10 +221,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && sba_planar != st_ivas->sba_planar ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -221,6 +237,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong SBA planar flag signalled!" ); } #endif } /* read Ambisonic (SBA) order */ Loading @@ -229,11 +246,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && sba_order != st_ivas->sba_order ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -242,6 +262,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong SBA order signalled!" ); } #endif } sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, sba_order ); Loading @@ -254,7 +275,11 @@ ivas_error ivas_dec_get_format( /* read number of MASA transport channels */ if ( st_ivas->bit_stream[( ivas_total_brate / FRAMES_PER_SEC ) - 1] ) { #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( st_ivas->nchan_transport == 1 ) #else if ( st_ivas->nchan_transport == 1 && Opt_tsm ) #endif { masaRestartCandidate = 1; } Loading @@ -264,7 +289,11 @@ ivas_error ivas_dec_get_format( } else { #ifdef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( st_ivas->nchan_transport == 2 ) #else if ( st_ivas->nchan_transport == 2 && Opt_tsm ) #endif { masaRestartCandidate = 1; } Loading Loading @@ -305,11 +334,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && nchan_ism != st_ivas->nchan_ism ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -318,6 +350,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong number of objects signalled!" ); } #endif } st_ivas->nchan_ism = nchan_ism; Loading @@ -332,11 +365,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && nchan_ism != st_ivas->nchan_ism ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -345,6 +381,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong number of objects signalled!" ); } #endif } st_ivas->nchan_ism = nchan_ism; Loading @@ -356,11 +393,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && nchan_ism != st_ivas->nchan_ism ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -369,6 +409,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong number of objects signalled!" ); } #endif } st_ivas->nchan_ism = nchan_ism; Loading @@ -392,11 +433,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && sba_order != st_ivas->sba_order ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -405,6 +449,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong SBA order signalled!" ); } #endif } st_ivas->ism_mode = ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->nchan_ism ); Loading @@ -429,11 +474,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && st_ivas->transport_config != signaled_config ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -442,6 +490,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "wrong MC configuration signalled!" ); } #endif } st_ivas->mc_mode = ivas_mc_mode_select( ivas_mc_map_output_config_to_mc_ls_setup( signaled_config ), ivas_total_brate ); Loading Loading @@ -523,11 +572,14 @@ ivas_error ivas_dec_get_format( if ( st_ivas->ini_frame > 0 && nchan_ism != st_ivas->nchan_ism ) { #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH if ( Opt_tsm ) { #endif st_ivas->restartNeeded = 1; return IVAS_ERR_OK; #ifndef FIX_FLOAT_1539_G192_FORMAT_SWITCH } else { Loading @@ -536,6 +588,7 @@ ivas_error ivas_dec_get_format( #endif return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Wrong number of objects signalled!" ); } #endif } st_ivas->nchan_ism = nchan_ism; Loading