Loading .gitlab-ci.yml +114 −21 Original line number Diff line number Diff line variables: TESTV_DIR: "/usr/local/testv" LTV_DIR: "/usr/local/ltv" EVS_BE_TEST_DIR_BASOP: "/usr/local/be_2_evs_basop" REFERENCE_TAG: "20231128_Update_Ittiam" Loading @@ -8,8 +9,9 @@ variables: EXIT_CODE_FAIL: 1 LONG_TEST_SUITE: "tests/test_param_file_ltv.py tests/renderer" SHORT_TEST_SUITE: "tests/codec_be_on_mr_nonselection" USE_REF_ENC: "1" TEST_SUITE: "" DUT_ENCODER_PATH: "./IVAS_cod" DUT_DECODER_PATH: "./IVAS_dec" LEVEL_SCALING: "1.0" IVAS_PIPELINE_NAME: '' BASOP_CI_BRANCH_PC_REPO: "basop-ci-branch" Loading @@ -20,7 +22,9 @@ variables: options: - 'default' - 'pytest-mld' - 'pytest-mld-interop' - 'pytest-mld-long' - 'pytest-saturation-smoke-test' - 'evs-26444' - 'sanitizer-stv' Loading @@ -46,9 +50,15 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-mld' variables: IVAS_PIPELINE_NAME: 'Run MLD tool against float ref: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-mld-interop' variables: IVAS_PIPELINE_NAME: 'Run MLD tool agains float ref - interop: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-mld-long' variables: IVAS_PIPELINE_NAME: 'Run MLD tool against float ref (long test vectors): $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-saturation-smoke-test' variables: IVAS_PIPELINE_NAME: 'Run saturation smoke-test: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'evs-26444' variables: IVAS_PIPELINE_NAME: 'EVS 26.444 test: $CI_COMMIT_BRANCH' Loading Loading @@ -153,6 +163,24 @@ stages: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: never .rules-pytest-mld-interop: rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "pytest-mld-interop" - if: $CI_PIPELINE_SOURCE == 'push' when: never - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: never .rules-pytest-saturation-smoke-test: rules: - if: $PYTEST_SMOKE_TEST # Set by scheduled pipeline - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "pytest-saturation-smoke-test" - if: $CI_PIPELINE_SOURCE == 'push' when: never - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: never # --------------------------------------------------------------- # Job templates # --------------------------------------------------------------- Loading @@ -173,10 +201,10 @@ stages: .test-job-linux-needs-testv-dir: extends: .test-job-linux before_script: - *update-scripts-repo - if [ ! -d "$TESTV_DIR" ]; then mkdir -p $TESTV_DIR; fi - cp -r scripts/testv/* $TESTV_DIR/ .ivas-pytest-mld-anchor: &ivas-pytest-mld-anchor stage: test needs: ["build-codec-linux-make"] Loading @@ -198,11 +226,7 @@ stages: - exit_code=0 # timeout of 15 min per individual testcase - hopefully too much, but better be safe for now - testcase_timeout=900 - if [ $USE_REF_ENC -eq 1 ]; then - python3 -m pytest $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld --dut_encoder_path ./IVAS_cod_ref -n auto --testcase_timeout $testcase_timeout || exit_code=$? - else - python3 -m pytest $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld -n auto --testcase_timeout $testcase_timeout || exit_code=$? - fi - python3 -m pytest $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH -n auto --testcase_timeout $testcase_timeout || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - python3 scripts/parse_mld_xml.py report-junit.xml mld.csv Loading @@ -215,7 +239,7 @@ stages: exit_codes: - 123 artifacts: name: "mld--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "mld--sha-$CI_COMMIT_SHORT_SHA--results" expire_in: 1 week when: always paths: Loading Loading @@ -305,7 +329,6 @@ ivas-pytest-mld-enc-dec: - .test-job-linux before_script: - USE_LTV=0 - USE_REF_ENC=0 - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor Loading @@ -316,7 +339,7 @@ ivas-pytest-mld-dec: - .test-job-linux before_script: - USE_LTV=0 - USE_REF_ENC=1 - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor Loading @@ -327,7 +350,6 @@ ivas-pytest-mld-enc-dec-lev-10: - .test-job-linux before_script: - USE_LTV=0 - USE_REF_ENC=0 - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor Loading @@ -338,7 +360,7 @@ ivas-pytest-mld-dec-lev-10: - .test-job-linux before_script: - USE_LTV=0 - USE_REF_ENC=1 - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor Loading @@ -349,7 +371,6 @@ ivas-pytest-mld-enc-dec-lev+10: - .test-job-linux before_script: - USE_LTV=0 - USE_REF_ENC=0 - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor Loading @@ -360,7 +381,40 @@ ivas-pytest-mld-dec-lev+10: - .test-job-linux before_script: - USE_LTV=0 - USE_REF_ENC=1 - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor ivas-pytest-mld-long-enc-fx-dec-flt-interop: extends: - .rules-pytest-mld-interop - .test-job-linux before_script: - USE_LTV=0 - DUT_DECODER_PATH=./IVAS_dec_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor ivas-pytest-mld-long-enc-fx-dec-flt-lev-10-interop: extends: - .rules-pytest-mld-interop - .test-job-linux before_script: - USE_LTV=0 - DUT_DECODER_PATH=./IVAS_dec_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor ivas-pytest-mld-long-enc-fx-dec-flt-lev+10-interop: extends: - .rules-pytest-mld-interop - .test-job-linux before_script: - USE_LTV=0 - DUT_DECODER_PATH=./IVAS_dec_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor Loading Loading @@ -396,7 +450,6 @@ ivas-pytest-mld-long-enc-dec: - .test-job-linux before_script: - USE_LTV=1 - USE_REF_ENC=0 - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor Loading @@ -407,7 +460,7 @@ ivas-pytest-mld-long-dec: - .test-job-linux before_script: - USE_LTV=1 - USE_REF_ENC=1 - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor Loading @@ -418,7 +471,6 @@ ivas-pytest-mld-long-enc-dec-lev-10: - .test-job-linux before_script: - USE_LTV=1 - USE_REF_ENC=0 - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor Loading @@ -429,7 +481,7 @@ ivas-pytest-mld-long-dec-lev-10: - .test-job-linux before_script: - USE_LTV=1 - USE_REF_ENC=1 - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor Loading @@ -440,7 +492,6 @@ ivas-pytest-mld-long-enc-dec-lev+10: - .test-job-linux before_script: - USE_LTV=1 - USE_REF_ENC=0 - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor Loading @@ -451,11 +502,53 @@ ivas-pytest-mld-long-dec-lev+10: - .test-job-linux before_script: - USE_LTV=1 - USE_REF_ENC=1 - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor ivas-smoke-test-saturation: extends: - .rules-pytest-saturation-smoke-test - .test-job-linux-needs-testv-dir script: - USE_LTV=1 - LEVEL_SCALING=32768 - *print-common-info - *update-scripts-repo - if [ $USE_LTV -eq 1 ]; then - *update-ltv-repo - *copy-ltv-files-to-testv-dir - fi - if [ $LEVEL_SCALING != "1.0" ];then - *apply-testv-scaling - fi - cp -r scripts/testv/* $TESTV_DIR/ # skip prepare_mem_dryrun.py script in smoke_test.sh - sed -i 's/python3 .\/scripts\/prepare_mem_dryrun.py/#python3 .\/scripts\/prepare_mem_dryrun.py/g' ci/smoke_test.sh - bash ci/smoke_test.sh ### analyze for failures - if ! [ -s smoke_test_output.txt ] || ! [ -s smoke_test_output_plc.txt ] || ! [ -s smoke_test_output_jbm_noEXT.txt ] || ! [ -s smoke_test_output_hrtf.txt ]; then echo "Error in smoke test"; exit 1; fi - ret_val=0 - if cat smoke_test_output.txt | grep -c "failed" ; then echo "Smoke test without PLC failed"; ret_val=1; fi - if cat smoke_test_output_plc.txt | grep -c "failed"; then echo "Smoke test with PLC failed"; ret_val=1; fi - if cat smoke_test_output_jbm_noEXT.txt | grep -c "failed"; then echo "Smoke test JBM part failed"; ret_val=1; fi - 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: "ivas-smoke-test-saturation--sha-$CI_COMMIT_SHORT_SHA--results" expire_in: 1 week when: always paths: - smoke_test_output.txt - smoke_test_output_plc.txt - smoke_test_output_jbm_noEXT.txt - smoke_test_output_hrtf.txt expose_as: "saturation smoke test results" # --------------------------------------------------------------- # EVS 26.444 test job # --------------------------------------------------------------- Loading Loading @@ -485,7 +578,7 @@ be-2-evs-26444: - exit 0 artifacts: name: "evs-26444--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "evs-26444--sha-$CI_COMMIT_SHORT_SHA--results" expire_in: 1 week when: always paths: Loading Workspace_msvc/lib_dec.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -144,6 +144,7 @@ <ClCompile Include="..\lib_dec\acelp_core_dec_fx.c"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\lib_dec\acelp_core_dec_ivas_fx.c" /> <ClCompile Include="..\lib_dec\acelp_core_switch_dec.c" /> <ClCompile Include="..\lib_dec\acelp_core_switch_dec_fx.c" /> <ClCompile Include="..\lib_dec\amr_wb_dec.c" /> Loading Workspace_msvc/lib_dec.vcxproj.filters +297 −887 File changed.Preview size limit exceeded, changes collapsed. Show changes lib_com/bits_alloc_fx.c +67 −0 Original line number Diff line number Diff line Loading @@ -1575,6 +1575,72 @@ static Word16 allocate_unused( *--------------------------------------------------------------------*/ /*! r: ACELP16k flag */ #ifdef IVAS_FLOAT_FIXED Word16 set_ACELP_flag( const Word16 element_mode, /* i : element mode */ const Word32 element_brate, /* i : element bitrate */ const Word32 total_brate, /* i : total bitrate per channel */ const Word16 idchan, /* i : Channel id */ const Word16 tdm_LRTD_flag, /* i : LRTD stereo mode flag */ const Word16 bwidth, /* i : audio bandwidth */ const Word16 cng_type /* i : CNG type */ ) { // PMT("Not floating point computation, but fixed point operator are still missing ") test(); test(); test(); test(); IF( EQ_16( element_mode, IVAS_CPE_DFT ) && EQ_16( idchan, 0 ) && LE_32( total_brate, SID_2k40 ) && EQ_16( bwidth, WB ) && EQ_16( cng_type, LP_CNG ) ) { return 1; } ELSE IF( EQ_16( element_mode, IVAS_CPE_TD ) ) { test(); test(); test(); IF( GE_32( element_brate, IVAS_24k4 ) && EQ_16( idchan, 0 ) && ( EQ_16( tdm_LRTD_flag, 0 ) || GT_32( element_brate, IVAS_24k4 ) ) ) { return 1; } ELSE { return 0; } } ELSE IF( EQ_16( element_mode, IVAS_CPE_DFT ) ) { IF( GE_32( element_brate, IVAS_24k4 ) ) { return 1; } ELSE { return 0; } } ELSE IF( EQ_16( element_mode, IVAS_SCE ) ) { IF( GE_32( element_brate, SCE_CORE_16k_LOW_LIMIT ) ) { return 1; } ELSE { return 0; } } ELSE IF( GE_32( total_brate, ACELP_16k_LOW_LIMIT ) ) /* EVS_MONO */ { return 1; } ELSE { return 0; } } #else Word16 set_ACELP_flag( const Word16 element_mode, /* i : element mode */ const Word32 element_brate, /* i : element bitrate */ Loading Loading @@ -1633,4 +1699,5 @@ Word16 set_ACELP_flag( return 0; } } #endif /*#endif IVAS_CODE*/ No newline at end of file lib_com/cldfb.c +61 −2 Original line number Diff line number Diff line Loading @@ -1598,7 +1598,7 @@ void configureCldfb_ivas_fx( // h_cldfb->no_channels = (int16_t) ( sampling_rate * INV_CLDFB_BANDWIDTH + 0.5f ); Word32 n_sampling_rate = sampling_rate * 2; Word32 val = L_add( Mpy_32_16_1( n_sampling_rate, 41 ), 1 ); Word32 val = L_add( Mpy_32_16_1( n_sampling_rate, 41 /* INV_CLDFB_BANDWIDTH in Q15 */), 1 ); val = L_shr( val, 1 ); h_cldfb->no_channels = extract_l( val ); Loading Loading @@ -1687,7 +1687,8 @@ ivas_error openCldfb_ivas_fx( hs->prototype = prototype; move16(); configureCldfb_ivas( hs, sampling_rate ); //configureCldfb_ivas( hs, sampling_rate ); configureCldfb_ivas_fx( hs, sampling_rate ); hs->memory_flt = NULL; hs->memory_length = 0; move16(); Loading Loading @@ -1914,6 +1915,36 @@ void deleteCldfb_ivas( return; } #ifdef IVAS_FLOAT_FIXED void deleteCldfb_ivas_fx( HANDLE_CLDFB_FILTER_BANK *h_cldfb /* i/o: filter bank handle */ ) { HANDLE_CLDFB_FILTER_BANK hs = *h_cldfb; IF ( h_cldfb == NULL || *h_cldfb == NULL ) { return; } IF ( hs->cldfb_state_fx ) { free( hs->cldfb_state_fx ); } #ifdef IVAS_FLOAT_FIXED // TODO : Will be removed later IF ( hs->cldfb_state ) { free( hs->cldfb_state ); } #endif free( hs ); *h_cldfb = NULL; return; } #endif /*-------------------------------------------------------------------* * cldfb_init_proto_and_twiddles() Loading Loading @@ -1956,6 +1987,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17036; hs->p_filter = CLDFB80_10_fx; hs->q_scale = norm_s((Word16)CLDFB80_10_SCALE); hs->scale = (Word16)(CLDFB80_10_SCALE*(1<<hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -1975,6 +2008,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = LDQMF_10_fx; hs->q_scale = norm_s((Word16)LDQMF_10_SCALE); hs->scale = (Word16)(LDQMF_10_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading @@ -2007,6 +2042,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_16_fx; hs->q_scale = norm_s((Word16)CLDFB80_16_SCALE); hs->scale = (Word16)(CLDFB80_16_SCALE*(1 << hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2026,6 +2063,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = LDQMF_16_fx; hs->q_scale = norm_s((Word16)LDQMF_16_SCALE); hs->scale = (Word16)(LDQMF_16_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading @@ -2058,6 +2097,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17050; hs->p_filter = CLDFB80_20_fx; hs->q_scale = norm_s((Word16)CLDFB80_20_SCALE); hs->scale = (Word16)(CLDFB80_20_SCALE*(1 << hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2077,6 +2118,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15390; hs->p_filter = LDQMF_20_fx; hs->q_scale = norm_s((Word16)LDQMF_20_SCALE); hs->scale = (Word16)(LDQMF_20_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading @@ -2109,6 +2152,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_30_fx; hs->q_scale = norm_s((Word16)CLDFB80_30_SCALE); hs->scale = (Word16)(CLDFB80_30_SCALE*(1 << hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2128,6 +2173,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = LDQMF_30_fx; hs->q_scale = norm_s((Word16)LDQMF_30_SCALE); hs->scale = (Word16)(LDQMF_30_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading @@ -2160,6 +2207,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17050; hs->p_filter = CLDFB80_32_fx; hs->q_scale = norm_s((Word16)CLDFB80_32_SCALE); hs->scale = (Word16)(CLDFB80_32_SCALE*(1 << hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2179,6 +2228,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15392; hs->p_filter = LDQMF_32_fx; hs->q_scale = norm_s((Word16)LDQMF_32_SCALE); hs->scale = (Word16)(LDQMF_32_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading @@ -2211,6 +2262,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_40_fx; hs->q_scale = norm_s((Word16)CLDFB80_40_SCALE); hs->scale = (Word16)(CLDFB80_40_SCALE*(1 << hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2230,6 +2283,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15391; hs->p_filter = LDQMF_40_fx; hs->q_scale = norm_s((Word16)LDQMF_40_SCALE); hs->scale = (Word16)(LDQMF_40_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading @@ -2262,6 +2317,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_60_fx; hs->q_scale = norm_s((Word16)CLDFB80_60_SCALE); hs->scale = (Word16)(CLDFB80_60_SCALE*(1 << hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2281,6 +2338,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15391; hs->p_filter = LDQMF_60_fx; hs->q_scale = norm_s((Word16)LDQMF_60_SCALE); hs->scale = (Word16)(LDQMF_60_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading
.gitlab-ci.yml +114 −21 Original line number Diff line number Diff line variables: TESTV_DIR: "/usr/local/testv" LTV_DIR: "/usr/local/ltv" EVS_BE_TEST_DIR_BASOP: "/usr/local/be_2_evs_basop" REFERENCE_TAG: "20231128_Update_Ittiam" Loading @@ -8,8 +9,9 @@ variables: EXIT_CODE_FAIL: 1 LONG_TEST_SUITE: "tests/test_param_file_ltv.py tests/renderer" SHORT_TEST_SUITE: "tests/codec_be_on_mr_nonselection" USE_REF_ENC: "1" TEST_SUITE: "" DUT_ENCODER_PATH: "./IVAS_cod" DUT_DECODER_PATH: "./IVAS_dec" LEVEL_SCALING: "1.0" IVAS_PIPELINE_NAME: '' BASOP_CI_BRANCH_PC_REPO: "basop-ci-branch" Loading @@ -20,7 +22,9 @@ variables: options: - 'default' - 'pytest-mld' - 'pytest-mld-interop' - 'pytest-mld-long' - 'pytest-saturation-smoke-test' - 'evs-26444' - 'sanitizer-stv' Loading @@ -46,9 +50,15 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-mld' variables: IVAS_PIPELINE_NAME: 'Run MLD tool against float ref: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-mld-interop' variables: IVAS_PIPELINE_NAME: 'Run MLD tool agains float ref - interop: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-mld-long' variables: IVAS_PIPELINE_NAME: 'Run MLD tool against float ref (long test vectors): $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-saturation-smoke-test' variables: IVAS_PIPELINE_NAME: 'Run saturation smoke-test: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'evs-26444' variables: IVAS_PIPELINE_NAME: 'EVS 26.444 test: $CI_COMMIT_BRANCH' Loading Loading @@ -153,6 +163,24 @@ stages: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: never .rules-pytest-mld-interop: rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "pytest-mld-interop" - if: $CI_PIPELINE_SOURCE == 'push' when: never - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: never .rules-pytest-saturation-smoke-test: rules: - if: $PYTEST_SMOKE_TEST # Set by scheduled pipeline - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "pytest-saturation-smoke-test" - if: $CI_PIPELINE_SOURCE == 'push' when: never - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: never # --------------------------------------------------------------- # Job templates # --------------------------------------------------------------- Loading @@ -173,10 +201,10 @@ stages: .test-job-linux-needs-testv-dir: extends: .test-job-linux before_script: - *update-scripts-repo - if [ ! -d "$TESTV_DIR" ]; then mkdir -p $TESTV_DIR; fi - cp -r scripts/testv/* $TESTV_DIR/ .ivas-pytest-mld-anchor: &ivas-pytest-mld-anchor stage: test needs: ["build-codec-linux-make"] Loading @@ -198,11 +226,7 @@ stages: - exit_code=0 # timeout of 15 min per individual testcase - hopefully too much, but better be safe for now - testcase_timeout=900 - if [ $USE_REF_ENC -eq 1 ]; then - python3 -m pytest $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld --dut_encoder_path ./IVAS_cod_ref -n auto --testcase_timeout $testcase_timeout || exit_code=$? - else - python3 -m pytest $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld -n auto --testcase_timeout $testcase_timeout || exit_code=$? - fi - python3 -m pytest $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH -n auto --testcase_timeout $testcase_timeout || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - python3 scripts/parse_mld_xml.py report-junit.xml mld.csv Loading @@ -215,7 +239,7 @@ stages: exit_codes: - 123 artifacts: name: "mld--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "mld--sha-$CI_COMMIT_SHORT_SHA--results" expire_in: 1 week when: always paths: Loading Loading @@ -305,7 +329,6 @@ ivas-pytest-mld-enc-dec: - .test-job-linux before_script: - USE_LTV=0 - USE_REF_ENC=0 - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor Loading @@ -316,7 +339,7 @@ ivas-pytest-mld-dec: - .test-job-linux before_script: - USE_LTV=0 - USE_REF_ENC=1 - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor Loading @@ -327,7 +350,6 @@ ivas-pytest-mld-enc-dec-lev-10: - .test-job-linux before_script: - USE_LTV=0 - USE_REF_ENC=0 - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor Loading @@ -338,7 +360,7 @@ ivas-pytest-mld-dec-lev-10: - .test-job-linux before_script: - USE_LTV=0 - USE_REF_ENC=1 - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor Loading @@ -349,7 +371,6 @@ ivas-pytest-mld-enc-dec-lev+10: - .test-job-linux before_script: - USE_LTV=0 - USE_REF_ENC=0 - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor Loading @@ -360,7 +381,40 @@ ivas-pytest-mld-dec-lev+10: - .test-job-linux before_script: - USE_LTV=0 - USE_REF_ENC=1 - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor ivas-pytest-mld-long-enc-fx-dec-flt-interop: extends: - .rules-pytest-mld-interop - .test-job-linux before_script: - USE_LTV=0 - DUT_DECODER_PATH=./IVAS_dec_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor ivas-pytest-mld-long-enc-fx-dec-flt-lev-10-interop: extends: - .rules-pytest-mld-interop - .test-job-linux before_script: - USE_LTV=0 - DUT_DECODER_PATH=./IVAS_dec_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor ivas-pytest-mld-long-enc-fx-dec-flt-lev+10-interop: extends: - .rules-pytest-mld-interop - .test-job-linux before_script: - USE_LTV=0 - DUT_DECODER_PATH=./IVAS_dec_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor Loading Loading @@ -396,7 +450,6 @@ ivas-pytest-mld-long-enc-dec: - .test-job-linux before_script: - USE_LTV=1 - USE_REF_ENC=0 - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor Loading @@ -407,7 +460,7 @@ ivas-pytest-mld-long-dec: - .test-job-linux before_script: - USE_LTV=1 - USE_REF_ENC=1 - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor Loading @@ -418,7 +471,6 @@ ivas-pytest-mld-long-enc-dec-lev-10: - .test-job-linux before_script: - USE_LTV=1 - USE_REF_ENC=0 - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor Loading @@ -429,7 +481,7 @@ ivas-pytest-mld-long-dec-lev-10: - .test-job-linux before_script: - USE_LTV=1 - USE_REF_ENC=1 - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor Loading @@ -440,7 +492,6 @@ ivas-pytest-mld-long-enc-dec-lev+10: - .test-job-linux before_script: - USE_LTV=1 - USE_REF_ENC=0 - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor Loading @@ -451,11 +502,53 @@ ivas-pytest-mld-long-dec-lev+10: - .test-job-linux before_script: - USE_LTV=1 - USE_REF_ENC=1 - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor ivas-smoke-test-saturation: extends: - .rules-pytest-saturation-smoke-test - .test-job-linux-needs-testv-dir script: - USE_LTV=1 - LEVEL_SCALING=32768 - *print-common-info - *update-scripts-repo - if [ $USE_LTV -eq 1 ]; then - *update-ltv-repo - *copy-ltv-files-to-testv-dir - fi - if [ $LEVEL_SCALING != "1.0" ];then - *apply-testv-scaling - fi - cp -r scripts/testv/* $TESTV_DIR/ # skip prepare_mem_dryrun.py script in smoke_test.sh - sed -i 's/python3 .\/scripts\/prepare_mem_dryrun.py/#python3 .\/scripts\/prepare_mem_dryrun.py/g' ci/smoke_test.sh - bash ci/smoke_test.sh ### analyze for failures - if ! [ -s smoke_test_output.txt ] || ! [ -s smoke_test_output_plc.txt ] || ! [ -s smoke_test_output_jbm_noEXT.txt ] || ! [ -s smoke_test_output_hrtf.txt ]; then echo "Error in smoke test"; exit 1; fi - ret_val=0 - if cat smoke_test_output.txt | grep -c "failed" ; then echo "Smoke test without PLC failed"; ret_val=1; fi - if cat smoke_test_output_plc.txt | grep -c "failed"; then echo "Smoke test with PLC failed"; ret_val=1; fi - if cat smoke_test_output_jbm_noEXT.txt | grep -c "failed"; then echo "Smoke test JBM part failed"; ret_val=1; fi - 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: "ivas-smoke-test-saturation--sha-$CI_COMMIT_SHORT_SHA--results" expire_in: 1 week when: always paths: - smoke_test_output.txt - smoke_test_output_plc.txt - smoke_test_output_jbm_noEXT.txt - smoke_test_output_hrtf.txt expose_as: "saturation smoke test results" # --------------------------------------------------------------- # EVS 26.444 test job # --------------------------------------------------------------- Loading Loading @@ -485,7 +578,7 @@ be-2-evs-26444: - exit 0 artifacts: name: "evs-26444--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "evs-26444--sha-$CI_COMMIT_SHORT_SHA--results" expire_in: 1 week when: always paths: Loading
Workspace_msvc/lib_dec.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -144,6 +144,7 @@ <ClCompile Include="..\lib_dec\acelp_core_dec_fx.c"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\lib_dec\acelp_core_dec_ivas_fx.c" /> <ClCompile Include="..\lib_dec\acelp_core_switch_dec.c" /> <ClCompile Include="..\lib_dec\acelp_core_switch_dec_fx.c" /> <ClCompile Include="..\lib_dec\amr_wb_dec.c" /> Loading
Workspace_msvc/lib_dec.vcxproj.filters +297 −887 File changed.Preview size limit exceeded, changes collapsed. Show changes
lib_com/bits_alloc_fx.c +67 −0 Original line number Diff line number Diff line Loading @@ -1575,6 +1575,72 @@ static Word16 allocate_unused( *--------------------------------------------------------------------*/ /*! r: ACELP16k flag */ #ifdef IVAS_FLOAT_FIXED Word16 set_ACELP_flag( const Word16 element_mode, /* i : element mode */ const Word32 element_brate, /* i : element bitrate */ const Word32 total_brate, /* i : total bitrate per channel */ const Word16 idchan, /* i : Channel id */ const Word16 tdm_LRTD_flag, /* i : LRTD stereo mode flag */ const Word16 bwidth, /* i : audio bandwidth */ const Word16 cng_type /* i : CNG type */ ) { // PMT("Not floating point computation, but fixed point operator are still missing ") test(); test(); test(); test(); IF( EQ_16( element_mode, IVAS_CPE_DFT ) && EQ_16( idchan, 0 ) && LE_32( total_brate, SID_2k40 ) && EQ_16( bwidth, WB ) && EQ_16( cng_type, LP_CNG ) ) { return 1; } ELSE IF( EQ_16( element_mode, IVAS_CPE_TD ) ) { test(); test(); test(); IF( GE_32( element_brate, IVAS_24k4 ) && EQ_16( idchan, 0 ) && ( EQ_16( tdm_LRTD_flag, 0 ) || GT_32( element_brate, IVAS_24k4 ) ) ) { return 1; } ELSE { return 0; } } ELSE IF( EQ_16( element_mode, IVAS_CPE_DFT ) ) { IF( GE_32( element_brate, IVAS_24k4 ) ) { return 1; } ELSE { return 0; } } ELSE IF( EQ_16( element_mode, IVAS_SCE ) ) { IF( GE_32( element_brate, SCE_CORE_16k_LOW_LIMIT ) ) { return 1; } ELSE { return 0; } } ELSE IF( GE_32( total_brate, ACELP_16k_LOW_LIMIT ) ) /* EVS_MONO */ { return 1; } ELSE { return 0; } } #else Word16 set_ACELP_flag( const Word16 element_mode, /* i : element mode */ const Word32 element_brate, /* i : element bitrate */ Loading Loading @@ -1633,4 +1699,5 @@ Word16 set_ACELP_flag( return 0; } } #endif /*#endif IVAS_CODE*/ No newline at end of file
lib_com/cldfb.c +61 −2 Original line number Diff line number Diff line Loading @@ -1598,7 +1598,7 @@ void configureCldfb_ivas_fx( // h_cldfb->no_channels = (int16_t) ( sampling_rate * INV_CLDFB_BANDWIDTH + 0.5f ); Word32 n_sampling_rate = sampling_rate * 2; Word32 val = L_add( Mpy_32_16_1( n_sampling_rate, 41 ), 1 ); Word32 val = L_add( Mpy_32_16_1( n_sampling_rate, 41 /* INV_CLDFB_BANDWIDTH in Q15 */), 1 ); val = L_shr( val, 1 ); h_cldfb->no_channels = extract_l( val ); Loading Loading @@ -1687,7 +1687,8 @@ ivas_error openCldfb_ivas_fx( hs->prototype = prototype; move16(); configureCldfb_ivas( hs, sampling_rate ); //configureCldfb_ivas( hs, sampling_rate ); configureCldfb_ivas_fx( hs, sampling_rate ); hs->memory_flt = NULL; hs->memory_length = 0; move16(); Loading Loading @@ -1914,6 +1915,36 @@ void deleteCldfb_ivas( return; } #ifdef IVAS_FLOAT_FIXED void deleteCldfb_ivas_fx( HANDLE_CLDFB_FILTER_BANK *h_cldfb /* i/o: filter bank handle */ ) { HANDLE_CLDFB_FILTER_BANK hs = *h_cldfb; IF ( h_cldfb == NULL || *h_cldfb == NULL ) { return; } IF ( hs->cldfb_state_fx ) { free( hs->cldfb_state_fx ); } #ifdef IVAS_FLOAT_FIXED // TODO : Will be removed later IF ( hs->cldfb_state ) { free( hs->cldfb_state ); } #endif free( hs ); *h_cldfb = NULL; return; } #endif /*-------------------------------------------------------------------* * cldfb_init_proto_and_twiddles() Loading Loading @@ -1956,6 +1987,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17036; hs->p_filter = CLDFB80_10_fx; hs->q_scale = norm_s((Word16)CLDFB80_10_SCALE); hs->scale = (Word16)(CLDFB80_10_SCALE*(1<<hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -1975,6 +2008,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = LDQMF_10_fx; hs->q_scale = norm_s((Word16)LDQMF_10_SCALE); hs->scale = (Word16)(LDQMF_10_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading @@ -2007,6 +2042,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_16_fx; hs->q_scale = norm_s((Word16)CLDFB80_16_SCALE); hs->scale = (Word16)(CLDFB80_16_SCALE*(1 << hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2026,6 +2063,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = LDQMF_16_fx; hs->q_scale = norm_s((Word16)LDQMF_16_SCALE); hs->scale = (Word16)(LDQMF_16_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading @@ -2058,6 +2097,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17050; hs->p_filter = CLDFB80_20_fx; hs->q_scale = norm_s((Word16)CLDFB80_20_SCALE); hs->scale = (Word16)(CLDFB80_20_SCALE*(1 << hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2077,6 +2118,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15390; hs->p_filter = LDQMF_20_fx; hs->q_scale = norm_s((Word16)LDQMF_20_SCALE); hs->scale = (Word16)(LDQMF_20_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading @@ -2109,6 +2152,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_30_fx; hs->q_scale = norm_s((Word16)CLDFB80_30_SCALE); hs->scale = (Word16)(CLDFB80_30_SCALE*(1 << hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2128,6 +2173,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = LDQMF_30_fx; hs->q_scale = norm_s((Word16)LDQMF_30_SCALE); hs->scale = (Word16)(LDQMF_30_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading @@ -2160,6 +2207,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17050; hs->p_filter = CLDFB80_32_fx; hs->q_scale = norm_s((Word16)CLDFB80_32_SCALE); hs->scale = (Word16)(CLDFB80_32_SCALE*(1 << hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2179,6 +2228,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15392; hs->p_filter = LDQMF_32_fx; hs->q_scale = norm_s((Word16)LDQMF_32_SCALE); hs->scale = (Word16)(LDQMF_32_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading @@ -2211,6 +2262,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_40_fx; hs->q_scale = norm_s((Word16)CLDFB80_40_SCALE); hs->scale = (Word16)(CLDFB80_40_SCALE*(1 << hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2230,6 +2283,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15391; hs->p_filter = LDQMF_40_fx; hs->q_scale = norm_s((Word16)LDQMF_40_SCALE); hs->scale = (Word16)(LDQMF_40_SCALE*(1 << hs->q_scale)); #endif } break; Loading Loading @@ -2262,6 +2317,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_60_fx; hs->q_scale = norm_s((Word16)CLDFB80_60_SCALE); hs->scale = (Word16)(CLDFB80_60_SCALE*(1 << hs->q_scale)); #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2281,6 +2338,8 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15391; hs->p_filter = LDQMF_60_fx; hs->q_scale = norm_s((Word16)LDQMF_60_SCALE); hs->scale = (Word16)(LDQMF_60_SCALE*(1 << hs->q_scale)); #endif } break; Loading