Skip to content

Resolve "Double precision arithmetic in Renderer MD"

Reason why this change is needed

  • There are used double precision mathematical functions in the renderer MD module.

  • \lib_rend\lib_rend.c(5839): ism_md_subframe_update_ext = (int16_t) round( ismInput->ism_metadata_delay_ms / ( 1000 / FRAMES_PER_SEC / MAX_PARAM_SPATIAL_SUBFRAMES ) ); -> roundf() of integer operation

  • \lib_rend\lib_rend.c(6108): ism_md_subframe_update_ext = (int16_t) round( ismInput->ism_metadata_delay_ms / ( 1000 / FRAMES_PER_SEC / MAX_PARAM_SPATIAL_SUBFRAMES ) ); -> roundf() of integer operation

  • \lib_rend\lib_rend.c(6360): ism_md_subframe_update_ext = (int16_t) round( ismInput->ism_metadata_delay_ms / ( 1000 / FRAMES_PER_SEC / MAX_PARAM_SPATIAL_SUBFRAMES ) ); -> roundf() of integer operation

Consider to use single precision counterparts.

Description of the change

  • Replace double precision round() by single precision equivalent roundf() for 3 occurences.

Affected operating points

  • Describe here as well as possible what operating points are affected and how
    • Theoretically could affect external renderer ISM2BINAURAL, but they are all BE.
    • Produced bitstream is BE compared to previous state.
    • Produced output is BE

Related to #817 (closed)

Merge request reports

Loading