Loading .gitlab-ci.yml +5 −3 Original line number Diff line number Diff line Loading @@ -217,6 +217,8 @@ stages: stage: test needs: ["build-codec-linux-make"] timeout: "240 minutes" variables: MLD_ARTIFACT_NAME: "mld--$CI_JOB_NAME-$CI_JOB_ID--sha-$CI_COMMIT_SHORT_SHA.csv" script: - *print-common-info - *update-scripts-repo Loading @@ -238,7 +240,7 @@ stages: - 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 - python3 scripts/parse_mld_xml.py report-junit.xml $MLD_ARTIFACT_NAME - if [ $UPDATE_PAGES != "" ]; then - id_previous=$(python3 get_id_of_last_job_occurence.py $CI_DEFAULT_BRANCH $CI_JOB_NAME $CI_PROJECT_ID) Loading @@ -247,7 +249,7 @@ stages: - unzip artifacts.zip -d previous_artifacts # This wildcard thingy relies on only one csv file being present per job - file_previous="previous_artifacts/mld--ivas-pytest-mld-long-dec-$id_previous--sha-*.csv" - python3 ci/basop-pages/create_report_pages.py $CI_JOB_NAME-index.html mld.csv $file_previous $CI_JOB_ID $id_previous $CI_JOB_NAME - python3 ci/basop-pages/create_report_pages.py $CI_JOB_NAME-index.html $MLD_ARTIFACT_NAME $file_previous $CI_JOB_ID $id_previous $CI_JOB_NAME - fi - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi Loading @@ -264,8 +266,8 @@ stages: paths: - report-junit.xml - report.html - mld.csv - $CI_JOB_NAME-index.html - $MLD_ARTIFACT_NAME expose_as: "pytest mld results" reports: junit: Loading apps/decoder.c +1 −1 Original line number Diff line number Diff line Loading @@ -452,7 +452,7 @@ int main( { renderConfig.directivity_fx[i * 3] = (Word16) ( renderConfig.directivity[i * 3] * ( 1u << 6 ) ); renderConfig.directivity_fx[i * 3 + 1] = (Word16) ( renderConfig.directivity[i * 3 + 1] * ( 1u << 6 ) ); renderConfig.directivity_fx[i * 3 + 2] = (Word16) ( renderConfig.directivity[i * 3 + 2] * ( 1u << 15 ) ); renderConfig.directivity_fx[i * 3 + 2] = (Word16) ( renderConfig.directivity[i * 3 + 2] * ( (1u << 15)-1 ) ); } #endif // IVAS_FLOAT_FIXED Loading apps/renderer.c +25 −1 Original line number Diff line number Diff line Loading @@ -48,6 +48,9 @@ #include "vector3_pair_file_reader.h" #include "wmc_auto.h" #ifdef IVAS_FLOAT_FIXED #include "prot_fx1.h" #endif #define WMC_TOOL_SKIP Loading Loading @@ -827,11 +830,20 @@ int main( } const int16_t frameSize_smpls = (int16_t) ( ( args.render_framesize ) * args.sampleRate * 5 / ( 1000 ) ); if ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, args.nonDiegeticPanGain, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK ) #ifdef IVAS_FLOAT_FIXED Word32 nonDiegeticPanGain_fx = (args.nonDiegeticPanGain ==1.0f)? ONE_IN_Q31: (args.nonDiegeticPanGain == -1.0f)? L_negate(ONE_IN_Q31):(Word32)(args.nonDiegeticPanGain*(1LL<< Q31 )); IF( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, nonDiegeticPanGain_fx, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening renderer handle: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #else IF ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, args.nonDiegeticPanGain, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening renderer handle: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #endif // IVAS_FLOAT_FIXED /* === Configure === */ if ( ( error = IVAS_REND_InitConfig( hIvasRend, args.outConfig.audioConfig ) ) != IVAS_ERR_OK ) Loading Loading @@ -2538,6 +2550,10 @@ void getMetadataFromFileReader( fprintf( stderr, "\nError (%s) while reading ISM metadata from: %s\n\n", ivas_error_to_string( error ), IsmFileReader_getFilePath( ismReader ) ); exit( -1 ); } #ifdef IVAS_FLOAT_FIXED objectMetadataBuffer->positions[objIdx].azimuth_fx = (Word32)(ismMetadata.azimuth * (1<<22)); objectMetadataBuffer->positions[objIdx].elevation_fx = (Word32)(ismMetadata.elevation * (1 << 22)); #endif // DEBUG objectMetadataBuffer->positions[objIdx].azimuth = ismMetadata.azimuth; objectMetadataBuffer->positions[objIdx].elevation = ismMetadata.elevation; Loading Loading @@ -2617,6 +2633,10 @@ static void IsmPositionProvider_getNextFrame( /* Clamp elevation to lie within [-90, 90] range (can't be wrapped easily) */ objectMetadataBuffer->positions[objIdx].elevation = min( max( objectMetadataBuffer->positions[objIdx].elevation, -90 ), 90 ); #ifdef IVAS_FLOAT_FIXED objectMetadataBuffer->positions[objIdx].azimuth_fx = (Word32)(objectMetadataBuffer->positions[objIdx].azimuth * (1 << 22)); objectMetadataBuffer->positions[objIdx].elevation_fx = (Word32)(objectMetadataBuffer->positions[objIdx].elevation * (1 << 22)); #endif // IVAS_FLOAT_FIXED /* Wrap yaw to lie within (-180, 180] range */ while ( objectMetadataBuffer->positions[objIdx].yaw < 0.0f ) { Loading Loading @@ -2935,6 +2955,10 @@ static void parseObjectPosition( position->azimuth = meta_prm[0]; position->elevation = meta_prm[1]; #ifdef IVAS_FLOAT_FIXED position->azimuth_fx = (Word32)(meta_prm[0] * (1 << 22)); position->elevation_fx = (Word32)(meta_prm[1] * (1 << 22)); #endif // IVAS_FLOAT_FIXED position->radius = meta_prm[2]; position->yaw = meta_prm[5]; position->pitch = meta_prm[6]; Loading lib_com/common_api_types.h +6 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,11 @@ typedef struct _IVAS_ISM_METADATA #ifdef IVAS_FLOAT_FIXED Word32 azimuth_fx; Word32 elevation_fx; Word16 radius_fx; Word32 spread_fx; Word32 gainFactor_fx; Word32 yaw_fx; Word32 pitch_fx; #endif float azimuth; float elevation; Loading Loading @@ -255,4 +260,5 @@ typedef struct _IVAS_RENDER_CONFIG #endif } IVAS_RENDER_CONFIG_DATA, *IVAS_RENDER_CONFIG_HANDLE; #endif /* COMMON_API_TYPES_H */ lib_com/float_to_fix_ops.c +4 −453 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
.gitlab-ci.yml +5 −3 Original line number Diff line number Diff line Loading @@ -217,6 +217,8 @@ stages: stage: test needs: ["build-codec-linux-make"] timeout: "240 minutes" variables: MLD_ARTIFACT_NAME: "mld--$CI_JOB_NAME-$CI_JOB_ID--sha-$CI_COMMIT_SHORT_SHA.csv" script: - *print-common-info - *update-scripts-repo Loading @@ -238,7 +240,7 @@ stages: - 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 - python3 scripts/parse_mld_xml.py report-junit.xml $MLD_ARTIFACT_NAME - if [ $UPDATE_PAGES != "" ]; then - id_previous=$(python3 get_id_of_last_job_occurence.py $CI_DEFAULT_BRANCH $CI_JOB_NAME $CI_PROJECT_ID) Loading @@ -247,7 +249,7 @@ stages: - unzip artifacts.zip -d previous_artifacts # This wildcard thingy relies on only one csv file being present per job - file_previous="previous_artifacts/mld--ivas-pytest-mld-long-dec-$id_previous--sha-*.csv" - python3 ci/basop-pages/create_report_pages.py $CI_JOB_NAME-index.html mld.csv $file_previous $CI_JOB_ID $id_previous $CI_JOB_NAME - python3 ci/basop-pages/create_report_pages.py $CI_JOB_NAME-index.html $MLD_ARTIFACT_NAME $file_previous $CI_JOB_ID $id_previous $CI_JOB_NAME - fi - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi Loading @@ -264,8 +266,8 @@ stages: paths: - report-junit.xml - report.html - mld.csv - $CI_JOB_NAME-index.html - $MLD_ARTIFACT_NAME expose_as: "pytest mld results" reports: junit: Loading
apps/decoder.c +1 −1 Original line number Diff line number Diff line Loading @@ -452,7 +452,7 @@ int main( { renderConfig.directivity_fx[i * 3] = (Word16) ( renderConfig.directivity[i * 3] * ( 1u << 6 ) ); renderConfig.directivity_fx[i * 3 + 1] = (Word16) ( renderConfig.directivity[i * 3 + 1] * ( 1u << 6 ) ); renderConfig.directivity_fx[i * 3 + 2] = (Word16) ( renderConfig.directivity[i * 3 + 2] * ( 1u << 15 ) ); renderConfig.directivity_fx[i * 3 + 2] = (Word16) ( renderConfig.directivity[i * 3 + 2] * ( (1u << 15)-1 ) ); } #endif // IVAS_FLOAT_FIXED Loading
apps/renderer.c +25 −1 Original line number Diff line number Diff line Loading @@ -48,6 +48,9 @@ #include "vector3_pair_file_reader.h" #include "wmc_auto.h" #ifdef IVAS_FLOAT_FIXED #include "prot_fx1.h" #endif #define WMC_TOOL_SKIP Loading Loading @@ -827,11 +830,20 @@ int main( } const int16_t frameSize_smpls = (int16_t) ( ( args.render_framesize ) * args.sampleRate * 5 / ( 1000 ) ); if ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, args.nonDiegeticPanGain, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK ) #ifdef IVAS_FLOAT_FIXED Word32 nonDiegeticPanGain_fx = (args.nonDiegeticPanGain ==1.0f)? ONE_IN_Q31: (args.nonDiegeticPanGain == -1.0f)? L_negate(ONE_IN_Q31):(Word32)(args.nonDiegeticPanGain*(1LL<< Q31 )); IF( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, nonDiegeticPanGain_fx, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening renderer handle: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #else IF ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, args.nonDiegeticPanGain, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening renderer handle: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #endif // IVAS_FLOAT_FIXED /* === Configure === */ if ( ( error = IVAS_REND_InitConfig( hIvasRend, args.outConfig.audioConfig ) ) != IVAS_ERR_OK ) Loading Loading @@ -2538,6 +2550,10 @@ void getMetadataFromFileReader( fprintf( stderr, "\nError (%s) while reading ISM metadata from: %s\n\n", ivas_error_to_string( error ), IsmFileReader_getFilePath( ismReader ) ); exit( -1 ); } #ifdef IVAS_FLOAT_FIXED objectMetadataBuffer->positions[objIdx].azimuth_fx = (Word32)(ismMetadata.azimuth * (1<<22)); objectMetadataBuffer->positions[objIdx].elevation_fx = (Word32)(ismMetadata.elevation * (1 << 22)); #endif // DEBUG objectMetadataBuffer->positions[objIdx].azimuth = ismMetadata.azimuth; objectMetadataBuffer->positions[objIdx].elevation = ismMetadata.elevation; Loading Loading @@ -2617,6 +2633,10 @@ static void IsmPositionProvider_getNextFrame( /* Clamp elevation to lie within [-90, 90] range (can't be wrapped easily) */ objectMetadataBuffer->positions[objIdx].elevation = min( max( objectMetadataBuffer->positions[objIdx].elevation, -90 ), 90 ); #ifdef IVAS_FLOAT_FIXED objectMetadataBuffer->positions[objIdx].azimuth_fx = (Word32)(objectMetadataBuffer->positions[objIdx].azimuth * (1 << 22)); objectMetadataBuffer->positions[objIdx].elevation_fx = (Word32)(objectMetadataBuffer->positions[objIdx].elevation * (1 << 22)); #endif // IVAS_FLOAT_FIXED /* Wrap yaw to lie within (-180, 180] range */ while ( objectMetadataBuffer->positions[objIdx].yaw < 0.0f ) { Loading Loading @@ -2935,6 +2955,10 @@ static void parseObjectPosition( position->azimuth = meta_prm[0]; position->elevation = meta_prm[1]; #ifdef IVAS_FLOAT_FIXED position->azimuth_fx = (Word32)(meta_prm[0] * (1 << 22)); position->elevation_fx = (Word32)(meta_prm[1] * (1 << 22)); #endif // IVAS_FLOAT_FIXED position->radius = meta_prm[2]; position->yaw = meta_prm[5]; position->pitch = meta_prm[6]; Loading
lib_com/common_api_types.h +6 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,11 @@ typedef struct _IVAS_ISM_METADATA #ifdef IVAS_FLOAT_FIXED Word32 azimuth_fx; Word32 elevation_fx; Word16 radius_fx; Word32 spread_fx; Word32 gainFactor_fx; Word32 yaw_fx; Word32 pitch_fx; #endif float azimuth; float elevation; Loading Loading @@ -255,4 +260,5 @@ typedef struct _IVAS_RENDER_CONFIG #endif } IVAS_RENDER_CONFIG_DATA, *IVAS_RENDER_CONFIG_HANDLE; #endif /* COMMON_API_TYPES_H */
lib_com/float_to_fix_ops.c +4 −453 File changed.Preview size limit exceeded, changes collapsed. Show changes