Commit 152e5ee9 authored by vaclav's avatar vaclav
Browse files

Merge remote-tracking branch 'remotes/origin/main' into sba-ext-fix

parents 9dc30791 05c5f452
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -801,6 +801,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:
+1 −0
Original line number Diff line number Diff line
@@ -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" />
+4 −1
Original line number Diff line number Diff line
@@ -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>
+3 −1
Original line number Diff line number Diff line
@@ -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" />
@@ -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" />
+56 −3
Original line number Diff line number Diff line
@@ -713,6 +713,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 )
        {
@@ -1976,6 +1983,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 )
        {
@@ -1983,7 +1994,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;
@@ -1991,7 +2013,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;
@@ -2007,7 +2042,20 @@ static ivas_error initOnFirstGoodFrame(
            }
#endif

            if ( ( error = split_rend_writer_open( splitRendWriter, arg.outputMdFilename, delayNumSamples_temp[0], delayTimeScale_temp, splitRendCodec, poseCorrection, splitRendCodecFrameSizeMs ) ) != IVAS_ERR_OK )
            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;
@@ -2043,7 +2091,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