Loading .gitlab-ci.yml +17 −5 Original line number Diff line number Diff line Loading @@ -800,6 +800,18 @@ split-rendering-smoke-test: junit: - report-junit.xml lc3-wrapper-unit-test: extends: - .test-job-linux - .rules-merge-request needs: ["build-codec-linux-cmake"] stage: test script: - *enable-split-rendering - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - scripts/split_rendering/lc3plus/ivas_lc3plus_unit_test # compare split-rendering bitexactness between target and source branch split-rendering-pytest-on-merge-request: extends: Loading Loading @@ -1578,7 +1590,7 @@ ltv-msan: - .sanitizer-selftest-ltv rules: - if: $SANITIZER_SCHEDULE_E timeout: 2 hour timeout: 3 hour tags: - ivas-linux-fast before_script: Loading @@ -1594,10 +1606,10 @@ ltv-asan: rules: - if: $SANITIZER_SCHEDULE_E when: delayed start_in: 2 hours start_in: 3 hours tags: - ivas-linux-fast timeout: 2 hour timeout: 3 hour before_script: - CLANG_NUM=2 - SELFTEST_SANITY_TIMEOUT=$TESTCASE_TIMEOUT_LTV_SANITIZERS Loading @@ -1611,10 +1623,10 @@ ltv-usan: rules: - if: $SANITIZER_SCHEDULE_E when: delayed start_in: 3 hours start_in: 6 hours tags: - ivas-linux-fast timeout: 2 hour timeout: 3 hour before_script: - CLANG_NUM=3 - SELFTEST_SANITY_TIMEOUT=$TESTCASE_TIMEOUT_LTV_SANITIZERS Loading Workspace_msvc/lib_com.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,7 @@ <ClCompile Include="..\lib_com\ivas_mdct_imdct.c" /> <ClCompile Include="..\lib_com\ivas_mdft_imdft.c" /> <ClCompile Include="..\lib_com\ivas_omasa_com.c" /> <ClCompile Include="..\lib_com\ivas_osba_com.c" /> <ClCompile Include="..\lib_com\ivas_pca_tools.c" /> <ClCompile Include="..\lib_com\ivas_qmetadata_com.c" /> <ClCompile Include="..\lib_com\ivas_qspherical_com.c" /> Loading Workspace_msvc/lib_com.vcxproj.filters +4 −1 Original line number Diff line number Diff line Loading @@ -469,6 +469,9 @@ <ClCompile Include="..\lib_com\ivas_lfe_com.c"> <Filter>common_ivas_c</Filter> </ClCompile> <ClCompile Include="..\lib_com\ivas_osba_com.c"> <Filter>common_ivas_c</Filter> </ClCompile> <ClCompile Include="..\lib_com\ivas_rotation_com.c" /> </ItemGroup> <ItemGroup> Loading Workspace_msvc/lib_isar.vcxproj +3 −1 Original line number Diff line number Diff line Loading @@ -146,6 +146,7 @@ <ClCompile Include="..\lib_isar\isar_lc3plus_common.c" /> <ClCompile Include="..\lib_isar\isar_lc3plus_dec.c" /> <ClCompile Include="..\lib_isar\isar_lc3plus_enc.c" /> <ClCompile Include="..\lib_isar\isar_lc3plus_payload.c" /> <ClCompile Include="..\lib_isar\isar_MSPred.c" /> <ClCompile Include="..\lib_isar\isar_NoiseGen.c" /> <ClCompile Include="..\lib_isar\isar_PerceptualModel.c" /> Loading @@ -169,6 +170,7 @@ <ClInclude Include="..\lib_isar\isar_lc3plus_common.h" /> <ClInclude Include="..\lib_isar\isar_lc3plus_dec.h" /> <ClInclude Include="..\lib_isar\isar_lc3plus_enc.h" /> <ClInclude Include="..\lib_isar\isar_lc3plus_payload.h" /> <ClInclude Include="..\lib_isar\isar_rom_post_rend.h" /> <ClInclude Include="..\lib_isar\lib_isar_post_rend.h" /> <ClInclude Include="..\lib_isar\lib_isar_pre_rend.h" /> Loading apps/decoder.c +73 −3 Original line number Diff line number Diff line Loading @@ -712,6 +712,13 @@ int main( } renderConfig.roomAcoustics.override = true; } #ifdef SPLIT_REND_WITH_HEAD_ROT #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS /* ISAR frame size is set from command line, not renderer config file. * This will be ignored if output format is not split rendering. */ renderConfig.split_rend_config.isar_frame_size_ms = (int16_t) arg.renderFramesize /* given in number of 5ms subframes */ * 5; #endif #endif if ( ( error = IVAS_DEC_FeedRenderConfig( hIvasDec, renderConfig ) ) != IVAS_ERR_OK ) { Loading Loading @@ -1703,6 +1710,15 @@ static bool parseCmdlIVAS_dec( usage_dec(); return false; } #ifdef FIX_1081_BINAURAL_SPLIT_PCM_SANITY_CHECK if ( arg->outputMdFilename != NULL && arg->outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) { fprintf( stderr, "Error: Output split rendering metadata file is supported for BINAURAL_SPLIT_PCM output config. only\n\n" ); usage_dec(); return false; } #endif } else { Loading Loading @@ -1966,6 +1982,10 @@ static ivas_error initOnFirstGoodFrame( ISAR_SPLIT_REND_CODEC splitRendCodec; int16_t splitRendCodecFrameSizeMs; ISAR_SPLIT_REND_POSE_CORRECTION_MODE poseCorrection; #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS int16_t splitRendIsarFrameSizeMs; int16_t lc3plusHighRes; #endif if ( ( error = IVAS_DEC_GetDelay( hIvasDec, delayNumSamples_temp, &delayTimeScale_temp ) ) != IVAS_ERR_OK ) { Loading @@ -1973,7 +1993,18 @@ static ivas_error initOnFirstGoodFrame( return error; } if ( ( error = IVAS_DEC_GetSplitRendBitstreamHeader( hIvasDec, &splitRendCodec, &poseCorrection, &splitRendCodecFrameSizeMs ) ) != IVAS_ERR_OK ) if ( ( error = IVAS_DEC_GetSplitRendBitstreamHeader( hIvasDec, &splitRendCodec, &poseCorrection, #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS &splitRendIsarFrameSizeMs, #endif &splitRendCodecFrameSizeMs #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS , &lc3plusHighRes #endif ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nUnable to get split renderer bitstream header: %s\n", ivas_error_to_string( error ) ); return error; Loading @@ -1981,7 +2012,20 @@ static ivas_error initOnFirstGoodFrame( if ( IVAS_DEC_is_split_rendering_coded_out( hIvasDec ) ) { if ( ( error = split_rend_writer_open( splitRendWriter, arg.outputWavFilename, delayNumSamples_temp[0], delayTimeScale_temp, splitRendCodec, poseCorrection, splitRendCodecFrameSizeMs ) ) != IVAS_ERR_OK ) if ( ( error = split_rend_writer_open( splitRendWriter, arg.outputWavFilename, delayNumSamples_temp[0], delayTimeScale_temp, splitRendCodec, poseCorrection, splitRendCodecFrameSizeMs #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS , splitRendIsarFrameSizeMs, arg.output_Fs, lc3plusHighRes #endif ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nUnable to open output split rendering metadata file %s\n", arg.outputWavFilename ); return error; Loading @@ -1989,7 +2033,28 @@ static ivas_error initOnFirstGoodFrame( } else { if ( ( error = split_rend_writer_open( splitRendWriter, arg.outputMdFilename, delayNumSamples_temp[0], delayTimeScale_temp, splitRendCodec, poseCorrection, splitRendCodecFrameSizeMs ) ) != IVAS_ERR_OK ) #ifdef FIX_1081_BINAURAL_SPLIT_PCM_SANITY_CHECK if ( arg.outputMdFilename == NULL ) { fprintf( stderr, "\nOutput split rendering metadata file not specified\n" ); return IVAS_ERR_INVALID_SPLIT_REND_CONFIG; } #endif if ( ( error = split_rend_writer_open( splitRendWriter, arg.outputMdFilename, delayNumSamples_temp[0], delayTimeScale_temp, splitRendCodec, poseCorrection, splitRendCodecFrameSizeMs #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS , splitRendIsarFrameSizeMs, arg.output_Fs, lc3plusHighRes #endif ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nUnable to open output split rendering metadata file %s\n", arg.outputWavFilename ); return error; Loading Loading @@ -2025,7 +2090,12 @@ static ivas_error initOnFirstGoodFrame( splitRendBitsZero.buf_len = 0; splitRendBitsZero.codec = ISAR_SPLIT_REND_CODEC_DEFAULT; splitRendBitsZero.pose_correction = ISAR_SPLIT_REND_POSE_CORRECTION_MODE_NONE; #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS splitRendBitsZero.codec_frame_size_ms = 0; splitRendBitsZero.isar_frame_size_ms = 20; #else splitRendBitsZero.codec_frame_size_ms = 20; #endif if ( split_rend_write_bitstream_to_file( *splitRendWriter, splitRendBitsZero.bits_buf, &splitRendBitsZero.bits_read, &splitRendBitsZero.bits_written ) != IVAS_ERR_OK ) { Loading Loading
.gitlab-ci.yml +17 −5 Original line number Diff line number Diff line Loading @@ -800,6 +800,18 @@ split-rendering-smoke-test: junit: - report-junit.xml lc3-wrapper-unit-test: extends: - .test-job-linux - .rules-merge-request needs: ["build-codec-linux-cmake"] stage: test script: - *enable-split-rendering - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - scripts/split_rendering/lc3plus/ivas_lc3plus_unit_test # compare split-rendering bitexactness between target and source branch split-rendering-pytest-on-merge-request: extends: Loading Loading @@ -1578,7 +1590,7 @@ ltv-msan: - .sanitizer-selftest-ltv rules: - if: $SANITIZER_SCHEDULE_E timeout: 2 hour timeout: 3 hour tags: - ivas-linux-fast before_script: Loading @@ -1594,10 +1606,10 @@ ltv-asan: rules: - if: $SANITIZER_SCHEDULE_E when: delayed start_in: 2 hours start_in: 3 hours tags: - ivas-linux-fast timeout: 2 hour timeout: 3 hour before_script: - CLANG_NUM=2 - SELFTEST_SANITY_TIMEOUT=$TESTCASE_TIMEOUT_LTV_SANITIZERS Loading @@ -1611,10 +1623,10 @@ ltv-usan: rules: - if: $SANITIZER_SCHEDULE_E when: delayed start_in: 3 hours start_in: 6 hours tags: - ivas-linux-fast timeout: 2 hour timeout: 3 hour before_script: - CLANG_NUM=3 - SELFTEST_SANITY_TIMEOUT=$TESTCASE_TIMEOUT_LTV_SANITIZERS Loading
Workspace_msvc/lib_com.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,7 @@ <ClCompile Include="..\lib_com\ivas_mdct_imdct.c" /> <ClCompile Include="..\lib_com\ivas_mdft_imdft.c" /> <ClCompile Include="..\lib_com\ivas_omasa_com.c" /> <ClCompile Include="..\lib_com\ivas_osba_com.c" /> <ClCompile Include="..\lib_com\ivas_pca_tools.c" /> <ClCompile Include="..\lib_com\ivas_qmetadata_com.c" /> <ClCompile Include="..\lib_com\ivas_qspherical_com.c" /> Loading
Workspace_msvc/lib_com.vcxproj.filters +4 −1 Original line number Diff line number Diff line Loading @@ -469,6 +469,9 @@ <ClCompile Include="..\lib_com\ivas_lfe_com.c"> <Filter>common_ivas_c</Filter> </ClCompile> <ClCompile Include="..\lib_com\ivas_osba_com.c"> <Filter>common_ivas_c</Filter> </ClCompile> <ClCompile Include="..\lib_com\ivas_rotation_com.c" /> </ItemGroup> <ItemGroup> Loading
Workspace_msvc/lib_isar.vcxproj +3 −1 Original line number Diff line number Diff line Loading @@ -146,6 +146,7 @@ <ClCompile Include="..\lib_isar\isar_lc3plus_common.c" /> <ClCompile Include="..\lib_isar\isar_lc3plus_dec.c" /> <ClCompile Include="..\lib_isar\isar_lc3plus_enc.c" /> <ClCompile Include="..\lib_isar\isar_lc3plus_payload.c" /> <ClCompile Include="..\lib_isar\isar_MSPred.c" /> <ClCompile Include="..\lib_isar\isar_NoiseGen.c" /> <ClCompile Include="..\lib_isar\isar_PerceptualModel.c" /> Loading @@ -169,6 +170,7 @@ <ClInclude Include="..\lib_isar\isar_lc3plus_common.h" /> <ClInclude Include="..\lib_isar\isar_lc3plus_dec.h" /> <ClInclude Include="..\lib_isar\isar_lc3plus_enc.h" /> <ClInclude Include="..\lib_isar\isar_lc3plus_payload.h" /> <ClInclude Include="..\lib_isar\isar_rom_post_rend.h" /> <ClInclude Include="..\lib_isar\lib_isar_post_rend.h" /> <ClInclude Include="..\lib_isar\lib_isar_pre_rend.h" /> Loading
apps/decoder.c +73 −3 Original line number Diff line number Diff line Loading @@ -712,6 +712,13 @@ int main( } renderConfig.roomAcoustics.override = true; } #ifdef SPLIT_REND_WITH_HEAD_ROT #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS /* ISAR frame size is set from command line, not renderer config file. * This will be ignored if output format is not split rendering. */ renderConfig.split_rend_config.isar_frame_size_ms = (int16_t) arg.renderFramesize /* given in number of 5ms subframes */ * 5; #endif #endif if ( ( error = IVAS_DEC_FeedRenderConfig( hIvasDec, renderConfig ) ) != IVAS_ERR_OK ) { Loading Loading @@ -1703,6 +1710,15 @@ static bool parseCmdlIVAS_dec( usage_dec(); return false; } #ifdef FIX_1081_BINAURAL_SPLIT_PCM_SANITY_CHECK if ( arg->outputMdFilename != NULL && arg->outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) { fprintf( stderr, "Error: Output split rendering metadata file is supported for BINAURAL_SPLIT_PCM output config. only\n\n" ); usage_dec(); return false; } #endif } else { Loading Loading @@ -1966,6 +1982,10 @@ static ivas_error initOnFirstGoodFrame( ISAR_SPLIT_REND_CODEC splitRendCodec; int16_t splitRendCodecFrameSizeMs; ISAR_SPLIT_REND_POSE_CORRECTION_MODE poseCorrection; #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS int16_t splitRendIsarFrameSizeMs; int16_t lc3plusHighRes; #endif if ( ( error = IVAS_DEC_GetDelay( hIvasDec, delayNumSamples_temp, &delayTimeScale_temp ) ) != IVAS_ERR_OK ) { Loading @@ -1973,7 +1993,18 @@ static ivas_error initOnFirstGoodFrame( return error; } if ( ( error = IVAS_DEC_GetSplitRendBitstreamHeader( hIvasDec, &splitRendCodec, &poseCorrection, &splitRendCodecFrameSizeMs ) ) != IVAS_ERR_OK ) if ( ( error = IVAS_DEC_GetSplitRendBitstreamHeader( hIvasDec, &splitRendCodec, &poseCorrection, #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS &splitRendIsarFrameSizeMs, #endif &splitRendCodecFrameSizeMs #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS , &lc3plusHighRes #endif ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nUnable to get split renderer bitstream header: %s\n", ivas_error_to_string( error ) ); return error; Loading @@ -1981,7 +2012,20 @@ static ivas_error initOnFirstGoodFrame( if ( IVAS_DEC_is_split_rendering_coded_out( hIvasDec ) ) { if ( ( error = split_rend_writer_open( splitRendWriter, arg.outputWavFilename, delayNumSamples_temp[0], delayTimeScale_temp, splitRendCodec, poseCorrection, splitRendCodecFrameSizeMs ) ) != IVAS_ERR_OK ) if ( ( error = split_rend_writer_open( splitRendWriter, arg.outputWavFilename, delayNumSamples_temp[0], delayTimeScale_temp, splitRendCodec, poseCorrection, splitRendCodecFrameSizeMs #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS , splitRendIsarFrameSizeMs, arg.output_Fs, lc3plusHighRes #endif ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nUnable to open output split rendering metadata file %s\n", arg.outputWavFilename ); return error; Loading @@ -1989,7 +2033,28 @@ static ivas_error initOnFirstGoodFrame( } else { if ( ( error = split_rend_writer_open( splitRendWriter, arg.outputMdFilename, delayNumSamples_temp[0], delayTimeScale_temp, splitRendCodec, poseCorrection, splitRendCodecFrameSizeMs ) ) != IVAS_ERR_OK ) #ifdef FIX_1081_BINAURAL_SPLIT_PCM_SANITY_CHECK if ( arg.outputMdFilename == NULL ) { fprintf( stderr, "\nOutput split rendering metadata file not specified\n" ); return IVAS_ERR_INVALID_SPLIT_REND_CONFIG; } #endif if ( ( error = split_rend_writer_open( splitRendWriter, arg.outputMdFilename, delayNumSamples_temp[0], delayTimeScale_temp, splitRendCodec, poseCorrection, splitRendCodecFrameSizeMs #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS , splitRendIsarFrameSizeMs, arg.output_Fs, lc3plusHighRes #endif ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nUnable to open output split rendering metadata file %s\n", arg.outputWavFilename ); return error; Loading Loading @@ -2025,7 +2090,12 @@ static ivas_error initOnFirstGoodFrame( splitRendBitsZero.buf_len = 0; splitRendBitsZero.codec = ISAR_SPLIT_REND_CODEC_DEFAULT; splitRendBitsZero.pose_correction = ISAR_SPLIT_REND_POSE_CORRECTION_MODE_NONE; #ifdef ISAR_BITSTREAM_UPDATE_LC3PLUS splitRendBitsZero.codec_frame_size_ms = 0; splitRendBitsZero.isar_frame_size_ms = 20; #else splitRendBitsZero.codec_frame_size_ms = 20; #endif if ( split_rend_write_bitstream_to_file( *splitRendWriter, splitRendBitsZero.bits_buf, &splitRendBitsZero.bits_read, &splitRendBitsZero.bits_written ) != IVAS_ERR_OK ) { Loading