From ce742eddf7ca21e5a694e56046b9cacccd2c55b8 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 21 Aug 2025 18:34:42 +0200 Subject: [PATCH 1/2] Revert "Merge branch 'update-basop-ci-branch-fix-lc3plus-unittest' into 'basop-ci-branch'" This reverts commit 13aea674b1c5db0a1987d93569a940c56735d547, reversing changes made to 64aff984bdfd3a5f725b7d6d949c453209429ed5. --- .../lc3plus_basop/ivas_lc3plus_unit_test.c | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/scripts/split_rendering/lc3plus_basop/ivas_lc3plus_unit_test.c b/scripts/split_rendering/lc3plus_basop/ivas_lc3plus_unit_test.c index df8b7589a9..7cdda56342 100644 --- a/scripts/split_rendering/lc3plus_basop/ivas_lc3plus_unit_test.c +++ b/scripts/split_rendering/lc3plus_basop/ivas_lc3plus_unit_test.c @@ -38,10 +38,10 @@ the United Nations Convention on Contracts on the International Sales of Goods. #include "isar_lc3plus_common.h" #include "isar_lc3plus_dec.h" #include "ivas_error_utils.h" -#include "lc3.h" +#include "lc3plus.h" #define MAX_SAMPLES_PER_CHANNEL 960 / 4 -#define DEFAULT_BPS 256000 +#define DEFAULT_BPS 256000 #ifndef PCM_SAMPLE_TYPEDEF_DEFINED #define PCM_SAMPLE_TYPEDEF_DEFINED @@ -93,23 +93,23 @@ static int encodeAndDecodeOneStereoFrame( LC3PLUS_CONFIG config, uint32_t bps ) uint8_t *bitstream_out = malloc( bitstreamSizePerIvasFrame ); memset( bitstream_out, 0, bitstreamSizePerIvasFrame ); - int perChannelBitrate = lc3plus_enc_get_real_bitrate( encHandle->handles[0] ); - int perLc3plusFrameDataBlockOctets = encHandle->num_ftds * perChannelBitrate / 8 / ( 1000 * 1000 / config.lc3plus_frame_duration_us ); - int targetOctets = bps / 8 / ( 1000 * 1000 / config.isar_frame_duration_us ); - printf( "IVAS-FS=%i LC3plus-FS=%i ch=%i targetBps=%i targetOctets=%i\n", config.isar_frame_duration_us, config.lc3plus_frame_duration_us, config.channels, bps, targetOctets ); - printf( " coreBps=%i corePerChBps=%i coreCodecOctets=%i nFtds=%i \n", perChannelBitrate * encHandle->num_encs, perChannelBitrate, perLc3plusFrameDataBlockOctets, encHandle->num_ftds ); + int perChannelBitrate = lc3plus_enc_get_real_bitrate(encHandle->handles[0]); + int perLc3plusFrameDataBlockOctets = encHandle->num_ftds * perChannelBitrate / 8 / (1000*1000/config.lc3plus_frame_duration_us); + int targetOctets = bps / 8 / (1000*1000/config.isar_frame_duration_us); + printf("IVAS-FS=%i LC3plus-FS=%i ch=%i targetBps=%i targetOctets=%i\n", config.isar_frame_duration_us, config.lc3plus_frame_duration_us, config.channels, bps, targetOctets); + printf(" coreBps=%i corePerChBps=%i coreCodecOctets=%i nFtds=%i \n", perChannelBitrate * encHandle->num_encs, perChannelBitrate, perLc3plusFrameDataBlockOctets, encHandle->num_ftds); int pfOctets = bitstreamSizePerIvasFrame - perLc3plusFrameDataBlockOctets; - int pfBps = pfOctets * 8 * ( 1000 * 1000 / config.isar_frame_duration_us ); - printf( " payloadFormatBps=%i payloadFormatOctets=%i \n\n", pfBps, pfOctets ); - if ( pfBps <= 0 ) + int pfBps = pfOctets * 8 * (1000*1000 / config.isar_frame_duration_us); + printf(" payloadFormatBps=%i payloadFormatOctets=%i \n\n", pfBps, pfOctets); + if(pfBps <= 0) { ISAR_LC3PLUS_ENC_Close( &encHandle ); return err; } Word16 Q_in[16]; - memset( Q_in, 0, sizeof( Q_in ) ); - err = ISAR_LC3PLUS_ENC_Encode( encHandle, pcm_in, bitstream_out, bitstreamSizePerIvasFrame, Q_in ); + memset(Q_in, 0, sizeof(Q_in) ); + err = ISAR_LC3PLUS_ENC_Encode( encHandle, pcm_in, bitstream_out, bitstreamSizePerIvasFrame, Q_in ); if ( IVAS_ERR_OK != err ) { ISAR_LC3PLUS_ENC_Close( &encHandle ); @@ -218,19 +218,19 @@ static int tryOpenEncoderWithInvalidBitrate( void ) { return 1; } - limitedBitrate = lc3plus_enc_get_real_bitrate( encHandle->handles[0] ); - if ( limitedBitrate != 320000 ) + limitedBitrate = lc3plus_enc_get_real_bitrate(encHandle->handles[0]); + if(limitedBitrate != 320000) { return 1; } - ISAR_LC3PLUS_ENC_Close( &encHandle ); + ISAR_LC3PLUS_ENC_Close(&encHandle); err = ISAR_LC3PLUS_ENC_Open( config, invalid_low_bps, &encHandle ); /* setting an invalid bitrate should trigger an error - which is what we expect */ if ( IVAS_ERR_LC3PLUS_INVALID_BITRATE != err ) { return 1; } - ISAR_LC3PLUS_ENC_Close( &encHandle ); + ISAR_LC3PLUS_ENC_Close(&encHandle); return 0; } @@ -295,13 +295,13 @@ static int tryCallEncoderApiWithInvalidParams( void ) } ISAR_LC3PLUS_ENC_Close( &invalidEncHandle ); Word16 Q_in[16]; - memset( Q_in, 0, sizeof( Q_in ) ); - if ( IVAS_ERR_UNEXPECTED_NULL_POINTER != ISAR_LC3PLUS_ENC_Encode( invalidEncHandle, invalidPcm_in, invalidBitstream_out, bsSize, Q_in ) ) + memset(Q_in, 0, sizeof(Q_in) ); + if ( IVAS_ERR_UNEXPECTED_NULL_POINTER != ISAR_LC3PLUS_ENC_Encode( invalidEncHandle, invalidPcm_in, invalidBitstream_out, bsSize, Q_in ) ) { return 1; } - memset( Q_in, 0, sizeof( Q_in ) ); - if ( IVAS_ERR_UNEXPECTED_NULL_POINTER != ISAR_LC3PLUS_ENC_Encode( invalidEncHandle, pcm_in, invalidBitstream_out, bsSize, Q_in ) || IVAS_ERR_UNEXPECTED_NULL_POINTER != ISAR_LC3PLUS_ENC_Encode( invalidEncHandle, invalidPcm_in, bitstream_out, bsSize, Q_in ) || IVAS_ERR_UNEXPECTED_NULL_POINTER != ISAR_LC3PLUS_ENC_Encode( invalidEncHandle, pcm_in, bitstream_out, bsSize, Q_in ) ) + memset(Q_in, 0, sizeof(Q_in) ); + if ( IVAS_ERR_UNEXPECTED_NULL_POINTER != ISAR_LC3PLUS_ENC_Encode( invalidEncHandle, pcm_in, invalidBitstream_out, bsSize, Q_in) || IVAS_ERR_UNEXPECTED_NULL_POINTER != ISAR_LC3PLUS_ENC_Encode( invalidEncHandle, invalidPcm_in, bitstream_out, bsSize, Q_in ) || IVAS_ERR_UNEXPECTED_NULL_POINTER != ISAR_LC3PLUS_ENC_Encode( invalidEncHandle, pcm_in, bitstream_out, bsSize, Q_in ) ) { return 1; } @@ -448,7 +448,7 @@ static int encodeOneFrame( void ) uint8_t *bitstream_out = malloc( bitstreamSizePerIvasFrame ); memset( bitstream_out, 0, bitstreamSizePerIvasFrame ); Word16 Q_in[16]; - memset( Q_in, 0, sizeof( Q_in ) ); + memset(Q_in, 0, sizeof(Q_in) ); err = ISAR_LC3PLUS_ENC_Encode( encHandle, pcm, bitstream_out, bitstreamSizePerIvasFrame, Q_in ); if ( IVAS_ERR_OK != err ) @@ -488,8 +488,8 @@ static int encodeAndDecodeOneMonoFrame( void ) uint8_t *bitstream_out = malloc( bitstreamSizePerIvasFrame ); memset( bitstream_out, 0, bitstreamSizePerIvasFrame ); Word16 Q_in[16]; - memset( Q_in, 0, sizeof( Q_in ) ); - err = ISAR_LC3PLUS_ENC_Encode( encHandle, pcm_in, bitstream_out, bitstreamSizePerIvasFrame, Q_in ); + memset(Q_in, 0, sizeof(Q_in) ); + err = ISAR_LC3PLUS_ENC_Encode( encHandle, pcm_in, bitstream_out, bitstreamSizePerIvasFrame, Q_in ); if ( IVAS_ERR_OK != err ) return err; ISAR_LC3PLUS_ENC_Close( &encHandle ); @@ -582,25 +582,25 @@ static int encodeAndDecodeOneStereoFrameIvas20msLc3plus2_5ms_48kHz( void ) static int encodeAndDecodeOneStereoFrameIvas10msLc3_10ms_48kHz_80kbpsPerChannel( void ) { LC3PLUS_CONFIG config = { .lc3plus_frame_duration_us = 10 * 1000, .isar_frame_duration_us = 10 * 1000, .channels = 2, .samplerate = 48000, .high_res_mode_enabled = 0 }; - return encodeAndDecodeOneStereoFrame( config, config.channels * 82 * 1000 ); + return encodeAndDecodeOneStereoFrame( config, config.channels * 82*1000 ); } static int encodeAndDecodeOneStereoFrameIvas10msLc3_10ms_48kHz_96kbpsPerChannel( void ) { LC3PLUS_CONFIG config = { .lc3plus_frame_duration_us = 10 * 1000, .isar_frame_duration_us = 10 * 1000, .channels = 2, .samplerate = 48000, .high_res_mode_enabled = 0 }; - return encodeAndDecodeOneStereoFrame( config, config.channels * 98 * 1000 ); + return encodeAndDecodeOneStereoFrame( config, config.channels * 98*1000 ); } static int encodeAndDecodeOneStereoFrameIvas10msLc3_10ms_48kHz_124kbpsPerChannel( void ) { LC3PLUS_CONFIG config = { .lc3plus_frame_duration_us = 10 * 1000, .isar_frame_duration_us = 10 * 1000, .channels = 2, .samplerate = 48000, .high_res_mode_enabled = 0 }; - return encodeAndDecodeOneStereoFrame( config, config.channels * 126 * 1000 ); + return encodeAndDecodeOneStereoFrame( config, config.channels * 126*1000 ); } static int encodeAndDecodeOneStereoFrameIvas10msLc3_10ms_48kHz_800kbpsPerChannel( void ) { LC3PLUS_CONFIG config = { .lc3plus_frame_duration_us = 10 * 1000, .isar_frame_duration_us = 10 * 1000, .channels = 2, .samplerate = 48000, .high_res_mode_enabled = 0 }; - return encodeAndDecodeOneStereoFrame( config, config.channels * 800 * 1000 ); + return encodeAndDecodeOneStereoFrame( config, config.channels * 800*1000 ); } static int encodeAndDecodeOneStereoFrameIvas10msLc3_10ms_48kHz_204800bpsPerChannel( void ) @@ -633,8 +633,8 @@ int main( int argc, char *argv[] ) { - (void) argc; - (void) argv; + (void)argc; + (void)argv; int ret = 0; ret = openCloseEncoder(); if ( ret != 0 ) -- GitLab From 0e2b8164e57d91edcce30b2b76c8e81a0aa2d68e Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 21 Aug 2025 18:35:02 +0200 Subject: [PATCH 2/2] Revert "Merge branch 'update-basop-ci-branch-renderer-tests' into 'basop-ci-branch'" This reverts commit 64aff984bdfd3a5f725b7d6d949c453209429ed5, reversing changes made to 516f80b6e6e1f5d4013100d74d4bf21e81543c48. --- .gitlab-ci.yml | 28 +- Workspace_msvc/lib_com.vcxproj | 2 +- Workspace_msvc/lib_lc3plus.vcxproj | 32 +- Workspace_msvc/lib_rend.vcxproj | 1 - Workspace_msvc/lib_rend.vcxproj.filters | 73 +- apps/decoder.c | 15 +- apps/renderer.c | 135 +- ci/basop-pages/basop_index.html | 4 - ci/remove_unsupported_testcases.py | 54 - ci/setup_pages.py | 1 - lib_com/options.h | 7 +- lib_com/tools.c | 20 +- lib_dec/dec_tcx.c | 8 + lib_dec/hq_lr_dec.c | 10 +- lib_dec/ivas_init_dec.c | 10 +- lib_dec/ivas_jbm_dec.c | 10 + lib_dec/ivas_lfe_dec.c | 16 +- lib_dec/ivas_mc_paramupmix_dec.c | 29 +- lib_dec/ivas_mct_dec.c | 93 +- lib_dec/ivas_osba_dec.c | 24 + lib_dec/ivas_stat_dec.h | 3 +- lib_dec/ivas_svd_dec.c | 131 +- lib_dec/jbm_pcmdsp_apa.c | 11 - lib_isar/isar_lc3plus_common.c | 2 +- lib_isar/isar_lc3plus_common.h | 2 +- lib_isar/isar_lc3plus_dec.c | 2 +- lib_isar/isar_lc3plus_dec.h | 2 +- lib_isar/isar_lc3plus_enc.c | 2 +- lib_isar/isar_lc3plus_enc.h | 2 +- lib_isar/isar_lc3plus_payload.h | 2 +- lib_isar/lib_isar_pre_rend.c | 10 +- lib_lc3plus/functions.h | 6 +- lib_lc3plus/{lc3plus.c => lc3.c} | 6 +- lib_lc3plus/{lc3plus.h => lc3.h} | 2 +- .../{setup_com_lc3plus.c => setup_com_lc3.c} | 0 .../{setup_dec_lc3plus.c => setup_dec_lc3.c} | 2 +- .../{setup_dec_lc3plus.h => setup_dec_lc3.h} | 0 .../{setup_enc_lc3plus.c => setup_enc_lc3.c} | 2 +- .../{setup_enc_lc3plus.h => setup_enc_lc3.h} | 0 lib_rend/ivas_omasa_ana.c | 32 +- lib_rend/ivas_prot_rend.h | 34 - lib_rend/ivas_rom_rend.c | 10 +- lib_rend/ivas_stat_rend.h | 16 - lib_rend/ivas_td_ring_buffer.c | 288 --- lib_rend/lib_rend.c | 864 +++------ lib_rend/lib_rend.h | 33 +- lib_util/mime_io.c | 73 +- lib_util/rtpdump.c | 4 + lib_util/tinywavein_c.h | 8 + lib_util/tinywaveout_c.h | 38 + readme.txt | 3 +- scripts/config/self_test.prm | 74 +- scripts/config/self_test_evs.prm | 6 +- scripts/config/self_test_ltv.prm | 70 +- scripts/generate_spectral_testv.py | 49 - scripts/lc3plus_lib_setup/get_lc3plus.sh | 8 +- scripts/pyivastest/IvasScriptsCommon.py | 4 +- .../lc3plus_basop/ivas_lc3plus_unit_test.c | 148 +- .../lc3plus_float/ivas_lc3plus_unit_test.c | 2 +- ..._48.txt => mixed_mc714_foa_masa2_ism4.txt} | 2 +- ..._48.wav => mixed_mc714_foa_masa2_ism4.wav} | 0 .../testv/mixed_mc714_foa_masa2_ism4_16.txt | 24 - .../testv/mixed_mc714_foa_masa2_ism4_16.wav | 3 - .../testv/mixed_mc714_foa_masa2_ism4_32.txt | 24 - .../testv/mixed_mc714_foa_masa2_ism4_32.wav | 3 - .../{mixed_scene_48.txt => mixed_scene.txt} | 0 scripts/testv/mixed_scene_16.txt | 15 - scripts/testv/mixed_scene_32.txt | 15 - ...e_simple_48.txt => mixed_scene_simple.txt} | 0 scripts/testv/mixed_scene_simple_16.txt | 12 - scripts/testv/mixed_scene_simple_32.txt | 12 - scripts/testv/spectral_16.wav | 3 - scripts/testv/spectral_32.wav | 3 - scripts/testv/spectral_48.wav | 3 - scripts/testv/spectral_test_10ch_16kHz.wav | 3 - scripts/testv/spectral_test_10ch_32kHz.wav | 3 - scripts/testv/spectral_test_10ch_48kHz.wav | 4 +- scripts/testv/spectral_test_11ch_16kHz.wav | 3 - scripts/testv/spectral_test_11ch_32kHz.wav | 3 - scripts/testv/spectral_test_11ch_48kHz.wav | 4 +- scripts/testv/spectral_test_12ch_16kHz.wav | 3 - scripts/testv/spectral_test_12ch_32kHz.wav | 3 - scripts/testv/spectral_test_12ch_48kHz.wav | 4 +- scripts/testv/spectral_test_13ch_16kHz.wav | 3 - scripts/testv/spectral_test_13ch_32kHz.wav | 3 - scripts/testv/spectral_test_13ch_48kHz.wav | 4 +- scripts/testv/spectral_test_14ch_16kHz.wav | 3 - scripts/testv/spectral_test_14ch_32kHz.wav | 3 - scripts/testv/spectral_test_14ch_48kHz.wav | 3 - scripts/testv/spectral_test_15ch_16kHz.wav | 3 - scripts/testv/spectral_test_15ch_32kHz.wav | 3 - scripts/testv/spectral_test_15ch_48kHz.wav | 4 +- scripts/testv/spectral_test_16ch_16kHz.wav | 3 - scripts/testv/spectral_test_16ch_32kHz.wav | 3 - scripts/testv/spectral_test_16ch_48kHz.wav | 4 +- scripts/testv/spectral_test_17ch_16kHz.wav | 3 - scripts/testv/spectral_test_17ch_32kHz.wav | 3 - scripts/testv/spectral_test_17ch_48kHz.wav | 4 +- scripts/testv/spectral_test_18ch_16kHz.wav | 3 - scripts/testv/spectral_test_18ch_32kHz.wav | 3 - scripts/testv/spectral_test_18ch_48kHz.wav | 4 +- scripts/testv/spectral_test_19ch_16kHz.wav | 3 - scripts/testv/spectral_test_19ch_32kHz.wav | 3 - scripts/testv/spectral_test_19ch_48kHz.wav | 4 +- scripts/testv/spectral_test_1ch_16kHz.wav | 3 - scripts/testv/spectral_test_1ch_32kHz.wav | 3 - scripts/testv/spectral_test_1ch_48kHz.wav | 4 +- scripts/testv/spectral_test_20ch_16kHz.wav | 3 - scripts/testv/spectral_test_20ch_32kHz.wav | 3 - scripts/testv/spectral_test_20ch_48kHz.wav | 4 +- scripts/testv/spectral_test_2ch_16kHz.wav | 3 - scripts/testv/spectral_test_2ch_32kHz.wav | 3 - scripts/testv/spectral_test_2ch_48kHz.wav | 4 +- scripts/testv/spectral_test_3ch_16kHz.wav | 3 - scripts/testv/spectral_test_3ch_32kHz.wav | 3 - scripts/testv/spectral_test_3ch_48kHz.wav | 4 +- scripts/testv/spectral_test_4ch_16kHz.wav | 3 - scripts/testv/spectral_test_4ch_32kHz.wav | 3 - scripts/testv/spectral_test_4ch_48kHz.wav | 4 +- scripts/testv/spectral_test_5ch_16kHz.wav | 3 - scripts/testv/spectral_test_5ch_32kHz.wav | 3 - scripts/testv/spectral_test_5ch_48kHz.wav | 4 +- scripts/testv/spectral_test_6ch_16kHz.wav | 3 - scripts/testv/spectral_test_6ch_32kHz.wav | 3 - scripts/testv/spectral_test_6ch_48kHz.wav | 4 +- scripts/testv/spectral_test_7ch_16kHz.wav | 3 - scripts/testv/spectral_test_7ch_32kHz.wav | 3 - scripts/testv/spectral_test_7ch_48kHz.wav | 4 +- scripts/testv/spectral_test_8ch_16kHz.wav | 3 - scripts/testv/spectral_test_8ch_32kHz.wav | 3 - scripts/testv/spectral_test_8ch_48kHz.wav | 4 +- scripts/testv/spectral_test_9ch_16kHz.wav | 3 - scripts/testv/spectral_test_9ch_32kHz.wav | 3 - scripts/testv/spectral_test_9ch_48kHz.wav | 4 +- scripts/testv/stv1ISM16s.wav | 3 - scripts/testv/stv1ISM32s.wav | 3 - scripts/testv/stv2ISM16s.wav | 3 - scripts/testv/stv2ISM32s.wav | 3 - scripts/testv/stv3ISM16s.wav | 3 - scripts/testv/stv3ISM32s.wav | 3 - scripts/testv/stv3OA48c_mono.wav | 3 - scripts/testv/stv4ISM16s.wav | 3 - scripts/testv/stv4ISM32s.wav | 3 - scripts/testv/stv512MC16c.wav | 3 - scripts/testv/stv512MC32c.wav | 3 - scripts/testv/stv514MC16c.wav | 3 - scripts/testv/stv514MC32c.wav | 3 - scripts/testv/stv51MC16c.wav | 3 - scripts/testv/stv714MC16c.wav | 3 - scripts/testv/stv714MC32c.wav | 3 - scripts/testv/stv71MC16c.wav | 3 - scripts/testv/stv71MC32c.wav | 3 - scripts/testv/stvOMASA_1ISM_1MASA1TC16c.met | 3 - scripts/testv/stvOMASA_1ISM_1MASA1TC16c.wav | 3 - .../testv/stvOMASA_1ISM_1MASA1TC16c_ISM1.csv | 1500 ---------------- scripts/testv/stvOMASA_1ISM_1MASA1TC32c.met | 3 - scripts/testv/stvOMASA_1ISM_1MASA1TC32c.wav | 3 - .../testv/stvOMASA_1ISM_1MASA1TC32c_ISM1.csv | 1500 ---------------- scripts/testv/stvOMASA_1ISM_1MASA2TC16c.met | 3 - scripts/testv/stvOMASA_1ISM_1MASA2TC16c.wav | 3 - .../testv/stvOMASA_1ISM_1MASA2TC16c_ISM1.csv | 1500 ---------------- scripts/testv/stvOMASA_1ISM_1MASA2TC32c.met | 3 - scripts/testv/stvOMASA_1ISM_1MASA2TC32c.wav | 3 - .../testv/stvOMASA_1ISM_1MASA2TC32c_ISM1.csv | 1500 ---------------- scripts/testv/stvOMASA_1ISM_2MASA1TC16c.met | 3 - scripts/testv/stvOMASA_1ISM_2MASA1TC16c.wav | 3 - .../testv/stvOMASA_1ISM_2MASA1TC16c_ISM1.csv | 1500 ---------------- scripts/testv/stvOMASA_1ISM_2MASA1TC32c.met | 3 - .../testv/stvOMASA_1ISM_2MASA1TC32c_ISM1.csv | 1500 ---------------- scripts/testv/stvOMASA_1ISM_2MASA2TC16c.met | 3 - scripts/testv/stvOMASA_1ISM_2MASA2TC16c.wav | 3 - .../testv/stvOMASA_1ISM_2MASA2TC16c_ISM1.csv | 1500 ---------------- scripts/testv/stvOMASA_1ISM_2MASA2TC32c.met | 3 - scripts/testv/stvOMASA_1ISM_2MASA2TC32c.wav | 3 - .../testv/stvOMASA_1ISM_2MASA2TC32c_ISM1.csv | 1500 ---------------- scripts/testv/stvOMASA_2ISM_1MASA1TC16c.met | 3 - .../testv/stvOMASA_2ISM_1MASA1TC16c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_2ISM_1MASA1TC16c_ISM2.csv | 1500 ---------------- scripts/testv/stvOMASA_2ISM_1MASA1TC32c.met | 3 - scripts/testv/stvOMASA_2ISM_1MASA1TC32c.wav | 3 - .../testv/stvOMASA_2ISM_1MASA1TC32c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_2ISM_1MASA1TC32c_ISM2.csv | 1500 ---------------- scripts/testv/stvOMASA_2ISM_1MASA2TC16c.met | 3 - scripts/testv/stvOMASA_2ISM_1MASA2TC16c.wav | 3 - .../testv/stvOMASA_2ISM_1MASA2TC16c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_2ISM_1MASA2TC16c_ISM2.csv | 1500 ---------------- scripts/testv/stvOMASA_2ISM_1MASA2TC32c.met | 3 - scripts/testv/stvOMASA_2ISM_1MASA2TC32c.wav | 3 - .../testv/stvOMASA_2ISM_1MASA2TC32c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_2ISM_1MASA2TC32c_ISM2.csv | 1500 ---------------- scripts/testv/stvOMASA_2ISM_2MASA1TC16c.met | 3 - scripts/testv/stvOMASA_2ISM_2MASA1TC16c.wav | 3 - .../testv/stvOMASA_2ISM_2MASA1TC16c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_2ISM_2MASA1TC16c_ISM2.csv | 1500 ---------------- scripts/testv/stvOMASA_2ISM_2MASA1TC32c.met | 3 - scripts/testv/stvOMASA_2ISM_2MASA1TC32c.wav | 3 - .../testv/stvOMASA_2ISM_2MASA1TC32c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_2ISM_2MASA1TC32c_ISM2.csv | 1500 ---------------- scripts/testv/stvOMASA_2ISM_2MASA2TC16c.met | 3 - scripts/testv/stvOMASA_2ISM_2MASA2TC16c.wav | 3 - .../testv/stvOMASA_2ISM_2MASA2TC16c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_2ISM_2MASA2TC16c_ISM2.csv | 1500 ---------------- scripts/testv/stvOMASA_2ISM_2MASA2TC32c.met | 3 - scripts/testv/stvOMASA_2ISM_2MASA2TC32c.wav | 3 - .../testv/stvOMASA_2ISM_2MASA2TC32c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_2ISM_2MASA2TC32c_ISM2.csv | 1500 ---------------- scripts/testv/stvOMASA_3ISM_1MASA1TC16c.met | 3 - scripts/testv/stvOMASA_3ISM_1MASA1TC16c.wav | 3 - .../testv/stvOMASA_3ISM_1MASA1TC16c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_1MASA1TC16c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_1MASA1TC16c_ISM3.csv | 1500 ---------------- scripts/testv/stvOMASA_3ISM_1MASA1TC32c.met | 3 - .../testv/stvOMASA_3ISM_1MASA1TC32c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_1MASA1TC32c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_1MASA1TC32c_ISM3.csv | 1500 ---------------- scripts/testv/stvOMASA_3ISM_1MASA2TC16c.met | 3 - .../testv/stvOMASA_3ISM_1MASA2TC16c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_1MASA2TC16c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_1MASA2TC16c_ISM3.csv | 1500 ---------------- scripts/testv/stvOMASA_3ISM_1MASA2TC32c.met | 3 - .../testv/stvOMASA_3ISM_1MASA2TC32c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_1MASA2TC32c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_1MASA2TC32c_ISM3.csv | 1500 ---------------- scripts/testv/stvOMASA_3ISM_2MASA1TC16c.met | 3 - scripts/testv/stvOMASA_3ISM_2MASA1TC16c.wav | 3 - .../testv/stvOMASA_3ISM_2MASA1TC16c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_2MASA1TC16c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_2MASA1TC16c_ISM3.csv | 1500 ---------------- scripts/testv/stvOMASA_3ISM_2MASA1TC32c.met | 3 - scripts/testv/stvOMASA_3ISM_2MASA1TC32c.wav | 3 - .../testv/stvOMASA_3ISM_2MASA1TC32c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_2MASA1TC32c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_2MASA1TC32c_ISM3.csv | 1500 ---------------- scripts/testv/stvOMASA_3ISM_2MASA2TC16c.met | 3 - scripts/testv/stvOMASA_3ISM_2MASA2TC16c.wav | 3 - .../testv/stvOMASA_3ISM_2MASA2TC16c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_2MASA2TC16c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_2MASA2TC16c_ISM3.csv | 1500 ---------------- scripts/testv/stvOMASA_3ISM_2MASA2TC32c.met | 3 - .../testv/stvOMASA_3ISM_2MASA2TC32c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_2MASA2TC32c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_3ISM_2MASA2TC32c_ISM3.csv | 1500 ---------------- scripts/testv/stvOMASA_4ISM_1MASA1TC16c.met | 3 - scripts/testv/stvOMASA_4ISM_1MASA1TC16c.wav | 3 - .../testv/stvOMASA_4ISM_1MASA1TC16c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_1MASA1TC16c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_1MASA1TC16c_ISM3.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_1MASA1TC16c_ISM4.csv | 1500 ---------------- scripts/testv/stvOMASA_4ISM_1MASA1TC32c.met | 3 - scripts/testv/stvOMASA_4ISM_1MASA1TC32c.wav | 3 - .../testv/stvOMASA_4ISM_1MASA1TC32c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_1MASA1TC32c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_1MASA1TC32c_ISM3.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_1MASA1TC32c_ISM4.csv | 1500 ---------------- scripts/testv/stvOMASA_4ISM_1MASA2TC16c.met | 3 - scripts/testv/stvOMASA_4ISM_1MASA2TC16c.wav | 3 - .../testv/stvOMASA_4ISM_1MASA2TC16c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_1MASA2TC16c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_1MASA2TC16c_ISM3.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_1MASA2TC16c_ISM4.csv | 1500 ---------------- scripts/testv/stvOMASA_4ISM_1MASA2TC32c.met | 3 - scripts/testv/stvOMASA_4ISM_1MASA2TC32c.wav | 3 - .../testv/stvOMASA_4ISM_1MASA2TC32c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_1MASA2TC32c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_1MASA2TC32c_ISM3.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_1MASA2TC32c_ISM4.csv | 1500 ---------------- scripts/testv/stvOMASA_4ISM_2MASA1TC16c.met | 3 - scripts/testv/stvOMASA_4ISM_2MASA1TC16c.wav | 3 - .../testv/stvOMASA_4ISM_2MASA1TC16c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_2MASA1TC16c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_2MASA1TC16c_ISM3.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_2MASA1TC16c_ISM4.csv | 1500 ---------------- scripts/testv/stvOMASA_4ISM_2MASA1TC32c.met | 3 - scripts/testv/stvOMASA_4ISM_2MASA1TC32c.wav | 3 - .../testv/stvOMASA_4ISM_2MASA1TC32c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_2MASA1TC32c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_2MASA1TC32c_ISM3.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_2MASA1TC32c_ISM4.csv | 1500 ---------------- scripts/testv/stvOMASA_4ISM_2MASA2TC16c.met | 3 - scripts/testv/stvOMASA_4ISM_2MASA2TC16c.wav | 3 - .../testv/stvOMASA_4ISM_2MASA2TC16c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_2MASA2TC16c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_2MASA2TC16c_ISM3.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_2MASA2TC16c_ISM4.csv | 1500 ---------------- scripts/testv/stvOMASA_4ISM_2MASA2TC32c.met | 3 - scripts/testv/stvOMASA_4ISM_2MASA2TC32c.wav | 3 - .../testv/stvOMASA_4ISM_2MASA2TC32c_ISM1.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_2MASA2TC32c_ISM2.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_2MASA2TC32c_ISM3.csv | 1500 ---------------- .../testv/stvOMASA_4ISM_2MASA2TC32c_ISM4.csv | 1500 ---------------- .../licenses_wav-diff.html | 308 +--- scripts/tools/Darwin/wav-diff | Bin 1701424 -> 1552680 bytes .../licenses_wav-diff.html | 308 +--- scripts/tools/Linux/wav-diff | Bin 944536 -> 874816 bytes .../licenses_wav-diff.html | 308 +--- scripts/tools/Win32/wav-diff.exe | 4 +- .../trajectories/full-circle-4s-Vector3.csv | 400 ++--- .../full-circle-4s-ccw-Vector3.csv | 400 ++--- scripts/trajectories/full-circle-4s-ccw.csv | 1600 ++++++++--------- scripts/trajectories/full-circle-4s.csv | 1600 ++++++++--------- ...ull-circle-with-up-and-down-4s-Vector3.csv | 400 ++--- ...circle-with-up-and-down-4s-ccw-Vector3.csv | 400 ++--- .../full-circle-with-up-and-down-4s-ccw.csv | 1600 ++++++++--------- ...p-and-down-4s-fixed-pos-offset-Vector3.csv | 400 ++--- .../full-circle-with-up-and-down-4s.csv | 1600 ++++++++--------- tests/renderer/constants.py | 192 +- tests/renderer/test_renderer.py | 493 +---- tests/renderer/utils.py | 42 +- tests/split_rendering/constants.py | 128 +- tests/split_rendering/test_split_rendering.py | 412 ++--- tests/split_rendering/utils.py | 146 +- tests/test_enc_passthrough.py | 2 - 312 files changed, 5683 insertions(+), 128129 deletions(-) rename lib_lc3plus/{lc3plus.c => lc3.c} (99%) rename lib_lc3plus/{lc3plus.h => lc3.h} (99%) rename lib_lc3plus/{setup_com_lc3plus.c => setup_com_lc3.c} (100%) rename lib_lc3plus/{setup_dec_lc3plus.c => setup_dec_lc3.c} (99%) rename lib_lc3plus/{setup_dec_lc3plus.h => setup_dec_lc3.h} (100%) rename lib_lc3plus/{setup_enc_lc3plus.c => setup_enc_lc3.c} (99%) rename lib_lc3plus/{setup_enc_lc3plus.h => setup_enc_lc3.h} (100%) delete mode 100644 lib_rend/ivas_td_ring_buffer.c delete mode 100644 scripts/generate_spectral_testv.py rename scripts/testv/{mixed_mc714_foa_masa2_ism4_48.txt => mixed_mc714_foa_masa2_ism4.txt} (78%) rename scripts/testv/{mixed_mc714_foa_masa2_ism4_48.wav => mixed_mc714_foa_masa2_ism4.wav} (100%) delete mode 100644 scripts/testv/mixed_mc714_foa_masa2_ism4_16.txt delete mode 100644 scripts/testv/mixed_mc714_foa_masa2_ism4_16.wav delete mode 100644 scripts/testv/mixed_mc714_foa_masa2_ism4_32.txt delete mode 100644 scripts/testv/mixed_mc714_foa_masa2_ism4_32.wav rename scripts/testv/{mixed_scene_48.txt => mixed_scene.txt} (100%) delete mode 100644 scripts/testv/mixed_scene_16.txt delete mode 100644 scripts/testv/mixed_scene_32.txt rename scripts/testv/{mixed_scene_simple_48.txt => mixed_scene_simple.txt} (100%) delete mode 100644 scripts/testv/mixed_scene_simple_16.txt delete mode 100644 scripts/testv/mixed_scene_simple_32.txt delete mode 100644 scripts/testv/spectral_16.wav delete mode 100644 scripts/testv/spectral_32.wav delete mode 100644 scripts/testv/spectral_48.wav delete mode 100644 scripts/testv/spectral_test_10ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_10ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_11ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_11ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_12ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_12ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_13ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_13ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_14ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_14ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_14ch_48kHz.wav delete mode 100644 scripts/testv/spectral_test_15ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_15ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_16ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_16ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_17ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_17ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_18ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_18ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_19ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_19ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_1ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_1ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_20ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_20ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_2ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_2ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_3ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_3ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_4ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_4ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_5ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_5ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_6ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_6ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_7ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_7ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_8ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_8ch_32kHz.wav delete mode 100644 scripts/testv/spectral_test_9ch_16kHz.wav delete mode 100644 scripts/testv/spectral_test_9ch_32kHz.wav delete mode 100644 scripts/testv/stv1ISM16s.wav delete mode 100644 scripts/testv/stv1ISM32s.wav delete mode 100644 scripts/testv/stv2ISM16s.wav delete mode 100644 scripts/testv/stv2ISM32s.wav delete mode 100644 scripts/testv/stv3ISM16s.wav delete mode 100644 scripts/testv/stv3ISM32s.wav delete mode 100644 scripts/testv/stv3OA48c_mono.wav delete mode 100644 scripts/testv/stv4ISM16s.wav delete mode 100644 scripts/testv/stv4ISM32s.wav delete mode 100644 scripts/testv/stv512MC16c.wav delete mode 100644 scripts/testv/stv512MC32c.wav delete mode 100644 scripts/testv/stv514MC16c.wav delete mode 100644 scripts/testv/stv514MC32c.wav delete mode 100644 scripts/testv/stv51MC16c.wav delete mode 100644 scripts/testv/stv714MC16c.wav delete mode 100644 scripts/testv/stv714MC32c.wav delete mode 100644 scripts/testv/stv71MC16c.wav delete mode 100644 scripts/testv/stv71MC32c.wav delete mode 100644 scripts/testv/stvOMASA_1ISM_1MASA1TC16c.met delete mode 100644 scripts/testv/stvOMASA_1ISM_1MASA1TC16c.wav delete mode 100644 scripts/testv/stvOMASA_1ISM_1MASA1TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_1ISM_1MASA1TC32c.met delete mode 100644 scripts/testv/stvOMASA_1ISM_1MASA1TC32c.wav delete mode 100644 scripts/testv/stvOMASA_1ISM_1MASA1TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_1ISM_1MASA2TC16c.met delete mode 100644 scripts/testv/stvOMASA_1ISM_1MASA2TC16c.wav delete mode 100644 scripts/testv/stvOMASA_1ISM_1MASA2TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_1ISM_1MASA2TC32c.met delete mode 100644 scripts/testv/stvOMASA_1ISM_1MASA2TC32c.wav delete mode 100644 scripts/testv/stvOMASA_1ISM_1MASA2TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_1ISM_2MASA1TC16c.met delete mode 100644 scripts/testv/stvOMASA_1ISM_2MASA1TC16c.wav delete mode 100644 scripts/testv/stvOMASA_1ISM_2MASA1TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_1ISM_2MASA1TC32c.met delete mode 100644 scripts/testv/stvOMASA_1ISM_2MASA1TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_1ISM_2MASA2TC16c.met delete mode 100644 scripts/testv/stvOMASA_1ISM_2MASA2TC16c.wav delete mode 100644 scripts/testv/stvOMASA_1ISM_2MASA2TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_1ISM_2MASA2TC32c.met delete mode 100644 scripts/testv/stvOMASA_1ISM_2MASA2TC32c.wav delete mode 100644 scripts/testv/stvOMASA_1ISM_2MASA2TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA1TC16c.met delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA1TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA1TC16c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA1TC32c.met delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA1TC32c.wav delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA1TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA1TC32c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA2TC16c.met delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA2TC16c.wav delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA2TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA2TC16c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA2TC32c.met delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA2TC32c.wav delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA2TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_1MASA2TC32c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA1TC16c.met delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA1TC16c.wav delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA1TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA1TC16c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA1TC32c.met delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA1TC32c.wav delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA1TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA1TC32c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA2TC16c.met delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA2TC16c.wav delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA2TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA2TC16c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA2TC32c.met delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA2TC32c.wav delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA2TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_2ISM_2MASA2TC32c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA1TC16c.met delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA1TC16c.wav delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA1TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA1TC16c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA1TC16c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA1TC32c.met delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA1TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA1TC32c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA1TC32c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA2TC16c.met delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA2TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA2TC16c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA2TC16c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA2TC32c.met delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA2TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA2TC32c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_1MASA2TC32c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA1TC16c.met delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA1TC16c.wav delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA1TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA1TC16c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA1TC16c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA1TC32c.met delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA1TC32c.wav delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA1TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA1TC32c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA1TC32c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA2TC16c.met delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA2TC16c.wav delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA2TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA2TC16c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA2TC16c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA2TC32c.met delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA2TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA2TC32c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_3ISM_2MASA2TC32c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA1TC16c.met delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA1TC16c.wav delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA1TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA1TC16c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA1TC16c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA1TC16c_ISM4.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA1TC32c.met delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA1TC32c.wav delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA1TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA1TC32c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA1TC32c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA1TC32c_ISM4.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA2TC16c.met delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA2TC16c.wav delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA2TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA2TC16c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA2TC16c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA2TC16c_ISM4.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA2TC32c.met delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA2TC32c.wav delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA2TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA2TC32c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA2TC32c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_1MASA2TC32c_ISM4.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA1TC16c.met delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA1TC16c.wav delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA1TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA1TC16c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA1TC16c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA1TC16c_ISM4.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA1TC32c.met delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA1TC32c.wav delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA1TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA1TC32c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA1TC32c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA1TC32c_ISM4.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA2TC16c.met delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA2TC16c.wav delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA2TC16c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA2TC16c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA2TC16c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA2TC16c_ISM4.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA2TC32c.met delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA2TC32c.wav delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA2TC32c_ISM1.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA2TC32c_ISM2.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA2TC32c_ISM3.csv delete mode 100644 scripts/testv/stvOMASA_4ISM_2MASA2TC32c_ISM4.csv diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 718da8cbf5..eb66d5d930 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -430,7 +430,7 @@ codec-smoke-test: - if cat smoke_test_output_hrtf.txt | grep -c "failed"; then echo "Smoke test with external hrtf files failed"; ret_val=1; fi - exit $ret_val artifacts: - name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" expire_in: 1 week when: always paths: @@ -512,7 +512,7 @@ pytest-compare-20ms-and-5ms-rendering: - if [ $exit_code10 -ne 0 ]; then echo "Non-bitexact cases encountered with 10ms rendering!"; exit_code=1; fi - if [ $exit_code -ne 0 ]; then exit $EXIT_CODE_FAIL; fi artifacts: - name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" expire_in: 1 week when: always expose_as: "pytest 5ms and 10ms vs 20ms results" @@ -554,7 +554,7 @@ renderer-smoke-test: - .rules-merge-request-to-main needs: ["build-codec-linux-cmake"] stage: test - timeout: "1 hour" + timeout: "30 minutes" artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week @@ -777,12 +777,6 @@ ivas-pytest-on-merge-request: stage: compare needs: ["build-codec-linux-cmake", "codec-smoke-test"] timeout: "14 minutes" - parallel: - matrix: - # note: keep in sync with list in $TESTS_DIR_CODEC_BE_ON_MR - - PYTEST_SCRIPT: - - test_param_file.py - - test_sba.py script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - commits_behind_count="$(bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/get-commits-behind-count.sh)" @@ -800,7 +794,7 @@ ivas-pytest-on-merge-request: ### prepare pytest # create references - - python3 -m pytest "$TESTS_DIR_CODEC_BE_ON_MR"/"$PYTEST_SCRIPT" -v --update_ref 1 + - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 ### Run test using branch scripts and input - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi @@ -808,7 +802,7 @@ ivas-pytest-on-merge-request: ### run pytest - exit_code=0 - testcase_timeout=60 - - python3 -m pytest "$TESTS_DIR_CODEC_BE_ON_MR"/"$PYTEST_SCRIPT" -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --testcase_timeout=$testcase_timeout || exit_code=$? + - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --testcase_timeout=$testcase_timeout || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check @@ -817,7 +811,7 @@ ivas-pytest-on-merge-request: exit_codes: - 123 artifacts: - name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" expire_in: 1 week when: always paths: @@ -868,7 +862,7 @@ ivas-interop-on-merge-request: exit_codes: - 123 artifacts: - name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" expire_in: 1 week when: always paths: @@ -920,7 +914,7 @@ evs-pytest-on-merge-request: exit_codes: - 123 artifacts: - name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" expire_in: 1 week when: always paths: @@ -1016,7 +1010,7 @@ check-first-frame-is-sid: expose_as: "logs-sidstart" expire_in: "5 days" -lc3plus-ensure-no-code-changes: +.lc3plus-ensure-no-code-changes: extends: - .test-job-linux - .rules-merge-request-to-main @@ -1028,7 +1022,7 @@ lc3plus-ensure-no-code-changes: - ./scripts/lc3plus_lib_setup/get_lc3plus.sh # Ensure git reports no changes - - modified_files=$(git status -su lib_lc3plus) + - modified_files=$(git status -s) - if [[ $modified_files ]]; then printf 'LC3plus codebase was modified!\n\n'"$modified_files"'\n\n'; exit $EXIT_CODE_FAIL; fi check-bitexactness-hrtf-rom-and-file: @@ -1202,7 +1196,7 @@ codec-comparison-on-main-push: exit_codes: - 123 artifacts: - name: "main-push--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" + name: "main-push--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" expire_in: 1 week when: always paths: diff --git a/Workspace_msvc/lib_com.vcxproj b/Workspace_msvc/lib_com.vcxproj index c28b36a145..223f837a2e 100644 --- a/Workspace_msvc/lib_com.vcxproj +++ b/Workspace_msvc/lib_com.vcxproj @@ -223,7 +223,7 @@ - + diff --git a/Workspace_msvc/lib_lc3plus.vcxproj b/Workspace_msvc/lib_lc3plus.vcxproj index 3f1527357a..55a291fa9c 100644 --- a/Workspace_msvc/lib_lc3plus.vcxproj +++ b/Workspace_msvc/lib_lc3plus.vcxproj @@ -106,6 +106,7 @@ + @@ -115,13 +116,13 @@ - - + + - + @@ -132,36 +133,35 @@ - + + - + - - - - - - + + + + @@ -169,12 +169,14 @@ + - - - - + + + + + diff --git a/Workspace_msvc/lib_rend.vcxproj b/Workspace_msvc/lib_rend.vcxproj index 854c99a979..27d4a19a69 100644 --- a/Workspace_msvc/lib_rend.vcxproj +++ b/Workspace_msvc/lib_rend.vcxproj @@ -175,7 +175,6 @@ - diff --git a/Workspace_msvc/lib_rend.vcxproj.filters b/Workspace_msvc/lib_rend.vcxproj.filters index 2d1d7d46c0..942c63712f 100644 --- a/Workspace_msvc/lib_rend.vcxproj.filters +++ b/Workspace_msvc/lib_rend.vcxproj.filters @@ -32,12 +32,30 @@ rend_c + + rend_c + + + rend_c + + + rend_c + + + rend_c + rend_c rend_c + + rend_c + + + rend_c + rend_c @@ -65,6 +83,15 @@ rend_c + + rend_c + + + rend_c + + + rend_c + rend_c @@ -86,6 +113,9 @@ rend_c + + rend_c + rend_c @@ -104,6 +134,24 @@ rend_c + + rend_c + + + rend_c + + + rend_c + + + rend_c + + + rend_c + + + rend_c + rend_c @@ -113,15 +161,30 @@ rend_c - + + rend_c + + + rend_c + + rend_c - + rend_c + + rend_h + + + rend_h + + + rend_h + rend_h @@ -140,6 +203,12 @@ rend_h + + rend_h + + + rend_h + diff --git a/apps/decoder.c b/apps/decoder.c index 4a28b4470b..71379c6575 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -1617,18 +1617,6 @@ static bool parseCmdlIVAS_dec( return false; } -#ifdef SUPPORT_JBM_TRACEFILE - /* Validate options that depend on other options */ - if ( arg->jbmTraceFilename != NULL && arg->delayCompensationEnabled - /* This decMode check should be removed once timestamp sync issues between JBM trace and audio are fixed in EVS */ - && arg->decMode != IVAS_DEC_MODE_EVS ) - { - fprintf( stderr, "Error: Writing to a JBM trace file requires delay compensation to be disabled with -no_delay_cmp\n\n" ); - usage_dec(); - return false; - } -#endif - return true; } @@ -1665,8 +1653,7 @@ static void usage_dec( void ) fprintf( stdout, " EVS RTP Payload Format. The SDP parameter hf_only is required.\n" ); fprintf( stdout, " Reading RFC4867 AMR/AMR-WB RTP payload format is not supported.\n" ); #ifdef SUPPORT_JBM_TRACEFILE - fprintf( stdout, "-Tracefile TF : VoIP mode: Generate trace file named TF. Requires -no_delay_cmp to\n" ); - fprintf( stdout, " be enabled so that trace contents remain in sync with audio output.\n" ); + fprintf( stdout, "-Tracefile TF : VoIP mode: Generate trace file named TF\n" ); #endif #ifdef DEBUGGING #ifdef VARIABLE_SPEED_DECODING diff --git a/apps/renderer.c b/apps/renderer.c index 8ef8a988bd..8e44fd6cc1 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -68,8 +68,6 @@ #define IVAS_MAX16B_FLT 32767.0f #define IVAS_MIN16B_FLT ( -32768.0f ) -#define OMASA_TDREND_MATCHING_GAIN_DB ( -2.0f ) - #if !defined( DEBUGGING ) && !defined( WMOPS ) static #endif @@ -700,7 +698,6 @@ int main( SplitFileReadWrite *hSplitRendFileReadWrite; int16_t delayNumSamples_temp; int32_t delayTimeScale_temp; - bool flushRendererLastFrame = false; int16_t numSamplesRead; int16_t delayNumSamples = -1; int16_t delayNumSamples_orig = 0; @@ -745,11 +742,8 @@ int main( CmdlnArgs args = parseCmdlnArgs( argc, argv ); - if ( args.nonDiegeticPan && - !( ( args.inConfig.numAudioObjects == 0 && - args.inConfig.multiChannelBuses[0].audioConfig == IVAS_AUDIO_CONFIG_MONO ) || - ( args.inConfig.numAudioObjects > 0 && - args.inConfig.audioObjects[0].audioConfig == IVAS_AUDIO_CONFIG_OBA && args.inConfig.numAudioObjects == 1 ) ) ) + if ( args.nonDiegeticPan && !( ( args.inConfig.numAudioObjects == 0 && args.inConfig.multiChannelBuses[0].audioConfig == IVAS_AUDIO_CONFIG_MONO ) || + ( args.inConfig.numAudioObjects > 0 && args.inConfig.audioObjects[0].audioConfig == IVAS_AUDIO_CONFIG_OBA && args.inConfig.numAudioObjects == 1 ) ) ) { fprintf( stderr, "\ninvalid configuration - non-diegetic panning requires mono or ISM1 input\n" ); goto cleanup; @@ -1070,10 +1064,7 @@ int main( { /* sanity check */ - if ( ( args.outConfig.audioConfig != IVAS_AUDIO_CONFIG_BINAURAL ) && - ( args.outConfig.audioConfig != IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) && - ( args.outConfig.audioConfig != IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) && - !is_split_pre_rend_mode( &args ) ) + if ( ( args.outConfig.audioConfig != IVAS_AUDIO_CONFIG_BINAURAL ) && ( args.outConfig.audioConfig != IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) && ( args.outConfig.audioConfig != IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) && !is_split_pre_rend_mode( &args ) ) { fprintf( stderr, "\nExternal Renderer Config is supported only when binaural output configurations is used as output OR when Split pre-rendering mode is enabled. Exiting. \n" ); goto cleanup; @@ -1162,30 +1153,20 @@ int main( } } + /* Set the total number of objects */ if ( args.inConfig.numAudioObjects > 0 ) { - /* Set the total number of objects */ if ( ( error = IVAS_REND_SetTotalNumberOfObjects( hIvasRend, args.inConfig.numAudioObjects ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError in IVAS_REND_SetTotalNumberOfObjects(): %s\n", ivas_error_to_string( error ) ); goto cleanup; } - /* Set the metadata delay for objects */ if ( ( error = IVAS_REND_SetIsmMetadataDelay( hIvasRend, args.syncMdDelay ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError in IVAS_REND_SetIsmMetadataDelay(): %s\n", ivas_error_to_string( error ) ); goto cleanup; } - - /* For OMASA input and BINAURAL output, apply a gain to objects to match the loudness with MASA part */ - if ( args.inConfig.numMasaBuses > 0 && args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL ) - { - for ( i = 0; i < args.inConfig.numAudioObjects; ++i ) - { - args.inConfig.audioObjects[i].gain_dB += OMASA_TDREND_MATCHING_GAIN_DB; - } - } } IVAS_REND_LfePanMtx lfePanMatrix; @@ -1370,7 +1351,7 @@ int main( } int16_t numOutChannels; - if ( ( error = IVAS_REND_GetNumOutChannels( hIvasRend, &numOutChannels ) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_NumOutChannels( hIvasRend, &numOutChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError in IVAS_REND_NumOutChannels(): %s\n", ivas_error_to_string( error ) ); goto cleanup; @@ -1385,16 +1366,8 @@ int main( } } - if ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) + if ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) { - char *outFile = args.outMetadataFilePath; - - if ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) - { - outFile = args.outputFilePath; - audioWriter = NULL; - } - if ( ( error = IVAS_REND_GetSplitRendBitstreamHeader( hIvasRend, &bitsBuffer.config.codec, &bitsBuffer.config.poseCorrection, &bitsBuffer.config.codec_frame_size_ms, &bitsBuffer.config.isar_frame_size_ms ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError in IVAS_REND_GetSplitRendBitstreamHeader()!\n" ); @@ -1407,15 +1380,36 @@ int main( goto cleanup; } - if ( ( error = split_rend_writer_open( &hSplitRendFileReadWrite, outFile, delayNumSamples_temp, delayTimeScale_temp, bitsBuffer.config.codec, bitsBuffer.config.poseCorrection, bitsBuffer.config.codec_frame_size_ms, bitsBuffer.config.isar_frame_size_ms, args.sampleRate, bitsBuffer.config.lc3plus_highres ) ) != IVAS_ERR_OK ) + if ( ( error = split_rend_writer_open( &hSplitRendFileReadWrite, args.outputFilePath, delayNumSamples_temp, delayTimeScale_temp, bitsBuffer.config.codec, bitsBuffer.config.poseCorrection, bitsBuffer.config.codec_frame_size_ms, bitsBuffer.config.isar_frame_size_ms, args.sampleRate, bitsBuffer.config.lc3plus_highres ) ) != IVAS_ERR_OK ) { - fprintf( stderr, "\nCould not open split rend metadata file %s\n", outFile ); + fprintf( stderr, "\nCould not open split rend metadata file %s\n", args.outputFilePath ); goto cleanup; } + audioWriter = NULL; } - - if ( args.outConfig.audioConfig != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) + else { + if ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) + { + if ( ( error = IVAS_REND_GetSplitRendBitstreamHeader( hIvasRend, &bitsBuffer.config.codec, &bitsBuffer.config.poseCorrection, &bitsBuffer.config.codec_frame_size_ms, &bitsBuffer.config.isar_frame_size_ms ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nError in IVAS_REND_GetSplitRendBitstreamHeader()!\n" ); + goto cleanup; + } + + if ( IVAS_REND_GetDelay( hIvasRend, &delayNumSamples_temp, &delayTimeScale_temp ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nUnable to get delay of renderer!\n" ); + goto cleanup; + } + + if ( ( error = split_rend_writer_open( &hSplitRendFileReadWrite, args.outMetadataFilePath, delayNumSamples_temp, delayTimeScale_temp, bitsBuffer.config.codec, bitsBuffer.config.poseCorrection, bitsBuffer.config.codec_frame_size_ms, bitsBuffer.config.isar_frame_size_ms, args.sampleRate, bitsBuffer.config.lc3plus_highres ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nCould not open split rend metadata file %s\n", args.outMetadataFilePath ); + goto cleanup; + } + } + if ( AudioFileWriter_open( &audioWriter, args.outputFilePath, args.sampleRate, numOutChannels ) != IVAS_ERR_OK ) { fprintf( stderr, "\nFailed to open file: %s\n", args.outputFilePath ); @@ -1541,23 +1535,16 @@ int main( if ( numSamplesRead == 0 ) { /* end of input data */ - flushRendererLastFrame = true; + break; } /* Convert from int to float and from interleaved to packed */ - if ( !flushRendererLastFrame ) - { - convertInputBuffer( inpInt16Buffer, numSamplesRead, inBuffer.config.numSamplesPerChannel, num_in_channels, inFloatBuffer, inBuffer.config.is_cldfb, cldfbAna ); - } - else - { - memset( inBuffer.data, 0, inBuffer.config.numChannels * inBuffer.config.numSamplesPerChannel * sizeof( float ) ); - } + convertInputBuffer( inpInt16Buffer, numSamplesRead, inBuffer.config.numSamplesPerChannel, num_in_channels, inFloatBuffer, inBuffer.config.is_cldfb, cldfbAna ); int16_t num_subframes, sf_idx; num_subframes = (int16_t) args.render_framesize; - if ( isCurrentFrameMultipleOf20ms && !flushRendererLastFrame ) + if ( isCurrentFrameMultipleOf20ms ) { IsmPositionProvider_getNextFrame( positionProvider, &mtdBuffer ); @@ -1669,7 +1656,7 @@ int main( } IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.multiChannelBuses[i].inputChannelIndex, numChannels ); - if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, mcIds[i], tmpBuffer, flushRendererLastFrame ) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, mcIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_REND_FeedInputAudio failed: %s\n", ivas_error_to_string( error ) ); goto cleanup; @@ -1684,7 +1671,7 @@ int main( { IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.audioObjects[i].inputChannelIndex, args.inConfig.numAudioObjects ); - if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, ismIds[i], tmpBuffer, flushRendererLastFrame ) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, ismIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_REND_FeedInputAudio failed: %s\n", ivas_error_to_string( error ) ); goto cleanup; @@ -1701,7 +1688,7 @@ int main( { IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.audioObjects[i].inputChannelIndex, 1 ); - if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, ismIds[i], tmpBuffer, flushRendererLastFrame ) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, ismIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_REND_FeedInputAudio failed: %s\n", ivas_error_to_string( error ) ); goto cleanup; @@ -1724,7 +1711,7 @@ int main( } IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.ambisonicsBuses[i].inputChannelIndex, numChannels ); - if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, sbaIds[i], tmpBuffer, flushRendererLastFrame ) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, sbaIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_REND_FeedInputAudio failed: %s\n", ivas_error_to_string( error ) ); goto cleanup; @@ -1740,13 +1727,13 @@ int main( } IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.masaBuses[i].inputChannelIndex, numChannels ); - if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, masaIds[i], tmpBuffer, flushRendererLastFrame ) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, masaIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) { fprintf( stderr, "IVAS_REND_FeedInputAudio failed: %s\n", ivas_error_to_string( error ) ); goto cleanup; } - if ( isCurrentFrameMultipleOf20ms && !flushRendererLastFrame ) + if ( isCurrentFrameMultipleOf20ms ) { if ( masaReaders[i] != NULL ) { @@ -1809,7 +1796,7 @@ int main( zeroPad = delayNumSamples; } - if ( is_split_pre_rend_mode( &args ) && !flushRendererLastFrame ) + if ( is_split_pre_rend_mode( &args ) ) { if ( split_rend_write_bitstream_to_file( hSplitRendFileReadWrite, bitsBuffer.bits, &bitsBuffer.config.bitsRead, &bitsBuffer.config.bitsWritten ) != IVAS_ERR_OK ) @@ -1819,7 +1806,7 @@ int main( } } - if ( audioWriter != NULL && !flushRendererLastFrame ) + if ( audioWriter != NULL ) { if ( delayNumSamples * num_out_channels < outBufferSize ) { @@ -1840,7 +1827,7 @@ int main( bitsBuffer.config.bitsWritten = 0; /* Write MASA metadata for MASA outputs */ - if ( !flushRendererLastFrame && ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_MASA1 || args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_MASA2 ) ) + if ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_MASA1 || args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_MASA2 ) { IVAS_REND_AudioConfigType inputType1; IVAS_REND_AudioConfigType inputType2; @@ -1912,8 +1899,7 @@ int main( } } - if ( ( args.inConfig.numAmbisonicsBuses > 0 || args.inConfig.numMultiChannelBuses > 0 || args.inConfig.numMasaBuses > 0 ) && - args.inConfig.numAudioObjects > 0 ) + if ( ( args.inConfig.numAmbisonicsBuses > 0 || args.inConfig.numMultiChannelBuses > 0 || args.inConfig.numMasaBuses > 0 ) && args.inConfig.numAudioObjects > 0 ) { inputType2 = IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED; if ( ( error = IVAS_REND_MergeMasaMetadata( hIvasRend, &hMetaOutput, inputType1, inputType2 ) ) != IVAS_ERR_OK ) @@ -1930,13 +1916,6 @@ int main( } } - /* no new input was actually read, only delay buffers were flushed - * therefore this is not a real frame */ - if ( flushRendererLastFrame ) - { - break; - } - frame++; if ( !args.quietModeEnabled ) { @@ -1949,13 +1928,12 @@ int main( #endif } - /* add zeros at the end to have equal length of synthesized signals - * the output buffer will contain either leftover input samples from delay aligned inputs - * or zeros for padding */ + /* add zeros at the end to have equal length of synthesized signals */ if ( audioWriter != NULL ) { for ( zeroPadToWrite = zeroPad; zeroPadToWrite > frameSize_smpls; zeroPadToWrite -= frameSize_smpls ) { + memset( outInt16Buffer, 0, outBufferSize * sizeof( int16_t ) ); if ( ( error = AudioFileWriter_write( audioWriter, outInt16Buffer, outBufferSize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nOutput audio file writer error\n" ); @@ -1963,6 +1941,7 @@ int main( } } + memset( outInt16Buffer, 0, zeroPadToWrite * outBuffer.config.numChannels * sizeof( int16_t ) ); if ( ( error = AudioFileWriter_write( audioWriter, outInt16Buffer, zeroPadToWrite * outBuffer.config.numChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nOutput audio file writer error\n" ); @@ -1971,10 +1950,9 @@ int main( zeroPadToWrite = 0; } - if ( args.inConfig.numAudioObjects != 0 && - ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL || args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) + if ( args.inConfig.numAudioObjects != 0 && ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL || args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) { - fprintf( stdout, "\n\nMetadata delayed %d subframes\n\n", (int16_t) round( args.syncMdDelay / ( 1000.f / IVAS_NUM_FRAMES_PER_SEC / IVAS_MAX_PARAM_SPATIAL_SUBFRAMES ) ) ); + fprintf( stdout, "\n\nMetadata delayed %d subframes\n\n", (int16_t) round( args.syncMdDelay / ( 1000 / IVAS_NUM_FRAMES_PER_SEC / IVAS_MAX_PARAM_SPATIAL_SUBFRAMES ) ) ); } if ( !args.quietModeEnabled && args.delayCompensationEnabled ) @@ -3304,8 +3282,7 @@ static void parseObjectPosition( *positionDuration = (uint16_t) strtol( line, &endptr, 10 ); readNextMetadataChunk( line, "\n" ); - read_values = (int16_t) sscanf( line, "%f,%f,%f,%f,%f,%f,%f,%f", - &meta_prm[0], &meta_prm[1], &meta_prm[2], &meta_prm[3], &meta_prm[4], &meta_prm[5], &meta_prm[6], &meta_prm[7] ); + read_values = (int16_t) sscanf( line, "%f,%f,%f,%f,%f,%f,%f,%f", &meta_prm[0], &meta_prm[1], &meta_prm[2], &meta_prm[3], &meta_prm[4], &meta_prm[5], &meta_prm[6], &meta_prm[7] ); if ( read_values < 2 ) { @@ -3514,8 +3491,20 @@ static void parseCombinedFormatInput( inConfig->numAmbisonicsBuses = 1; inConfig->ambisonicsBuses[0].audioConfig = audioConfig; inConfig->ambisonicsBuses[0].inputChannelIndex = inConfig->numAudioObjects; +#ifdef NONBE_1352_HARMONIZE_OSBA_LOUDNESS inConfig->ambisonicsBuses[0].gain_dB = 0.f; +#else + inConfig->ambisonicsBuses[0].gain_dB = -6.f; +#endif *configString += 4; + +#ifndef NONBE_1352_HARMONIZE_OSBA_LOUDNESS + /* Modify input gain for objects too */ + for ( int16_t i = 0; i < inConfig->numAudioObjects; ++i ) + { + inConfig->audioObjects[i].gain_dB = -6.f; + } +#endif } else if ( audioConfig == IVAS_AUDIO_CONFIG_MASA1 || audioConfig == IVAS_AUDIO_CONFIG_MASA2 ) { diff --git a/ci/basop-pages/basop_index.html b/ci/basop-pages/basop_index.html index c7203a9259..a31f3673a5 100644 --- a/ci/basop-pages/basop_index.html +++ b/ci/basop-pages/basop_index.html @@ -5,10 +5,6 @@

Ivas BASOP code Development

-

Regression tracking

- -
  • Long term regression
  • -

    Daily long testvector tests