Loading tests/split_rendering/utils.py +16 −12 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ def lc3plus_used(test_info, in_fmt, render_config): FRAME_SIZE_RE = re.compile(r"(\d+)ms") def isar_frame_size_ms(test_info, in_fmt, render_config, pre_rend_fr): def transport_codec_frame_size_ms(test_info, in_fmt, render_config, pre_rend_fr): explicit_frame_size_ms = FRAME_SIZE_RE.search(render_config) # If explicit frame size set in config file, return that Loading @@ -81,6 +81,9 @@ def isar_frame_size_ms(test_info, in_fmt, render_config, pre_rend_fr): def check_xfail( test_info, in_fmt, render_config, pre_rend_fr, post_rend_fr, ivas_bitrate=None ): pre_rend_fr = int(pre_rend_fr) post_rend_fr = int(post_rend_fr) lc3plus_in_use = lc3plus_used(test_info, in_fmt, render_config) if ( Loading @@ -102,7 +105,7 @@ def check_xfail( ): pytest.skip(f"Unsupported configuration with {in_fmt} at IVAS bitrate {ivas_bitrate}bps") if not "0dof" in render_config and pre_rend_fr != "20": if not "0dof" in render_config and pre_rend_fr != 20: pytest.xfail("pose correction (== !0dof) is expected to use 20ms") if ( Loading @@ -111,34 +114,35 @@ def check_xfail( # ...and LC3plus codec used and lc3plus_in_use # ...and split prerendering at frame size 20ms and pre_rend_fr == "20" and pre_rend_fr == 20 ): pytest.xfail("lc3plus at 0dof must use a native lc3plus frame size (5 or 10ms)") if "1dof" in render_config and pre_rend_fr != "20": if ( "1dof" in render_config or "2dof" in render_config or "3dof" in render_config ) and pre_rend_fr != 20: pytest.xfail( "unsupported framing: for 1+dof pre_rend_fr framing shall always be 20ms" ) isar_frame_size = isar_frame_size_ms(test_info, in_fmt, render_config, pre_rend_fr) if int(pre_rend_fr) < isar_frame_size: if pre_rend_fr < post_rend_fr: pytest.xfail( "unsupported framing: ISAR codec frame must fit in one output frame" # This would require decoding multiple ISAR frames for one post renderer output frame, which is not supported. "unsupported framing: Post-renderer frame size must be equal or smaller than ISAR codec frame size" ) if isar_frame_size < int(post_rend_fr): transport_codec_frame_size = transport_codec_frame_size_ms(test_info, in_fmt, render_config, pre_rend_fr) if pre_rend_fr < transport_codec_frame_size: pytest.xfail( "unsupported framing: Post-renderer frame size must be equal or smaller than ISAR codec frame size" "unsupported framing: ISAR codec frame must fit in one output frame" ) if not lc3plus_in_use and isar_frame_size != int(pre_rend_fr): if not lc3plus_in_use and transport_codec_frame_size != pre_rend_fr: pytest.xfail( "unsupported framing: LCLD codec doesn't support aggregation. ISAR frame size must match split pre-renderer frame size." ) def truncate_signal( in_file: Path, out_file: Path, Loading Loading
tests/split_rendering/utils.py +16 −12 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ def lc3plus_used(test_info, in_fmt, render_config): FRAME_SIZE_RE = re.compile(r"(\d+)ms") def isar_frame_size_ms(test_info, in_fmt, render_config, pre_rend_fr): def transport_codec_frame_size_ms(test_info, in_fmt, render_config, pre_rend_fr): explicit_frame_size_ms = FRAME_SIZE_RE.search(render_config) # If explicit frame size set in config file, return that Loading @@ -81,6 +81,9 @@ def isar_frame_size_ms(test_info, in_fmt, render_config, pre_rend_fr): def check_xfail( test_info, in_fmt, render_config, pre_rend_fr, post_rend_fr, ivas_bitrate=None ): pre_rend_fr = int(pre_rend_fr) post_rend_fr = int(post_rend_fr) lc3plus_in_use = lc3plus_used(test_info, in_fmt, render_config) if ( Loading @@ -102,7 +105,7 @@ def check_xfail( ): pytest.skip(f"Unsupported configuration with {in_fmt} at IVAS bitrate {ivas_bitrate}bps") if not "0dof" in render_config and pre_rend_fr != "20": if not "0dof" in render_config and pre_rend_fr != 20: pytest.xfail("pose correction (== !0dof) is expected to use 20ms") if ( Loading @@ -111,34 +114,35 @@ def check_xfail( # ...and LC3plus codec used and lc3plus_in_use # ...and split prerendering at frame size 20ms and pre_rend_fr == "20" and pre_rend_fr == 20 ): pytest.xfail("lc3plus at 0dof must use a native lc3plus frame size (5 or 10ms)") if "1dof" in render_config and pre_rend_fr != "20": if ( "1dof" in render_config or "2dof" in render_config or "3dof" in render_config ) and pre_rend_fr != 20: pytest.xfail( "unsupported framing: for 1+dof pre_rend_fr framing shall always be 20ms" ) isar_frame_size = isar_frame_size_ms(test_info, in_fmt, render_config, pre_rend_fr) if int(pre_rend_fr) < isar_frame_size: if pre_rend_fr < post_rend_fr: pytest.xfail( "unsupported framing: ISAR codec frame must fit in one output frame" # This would require decoding multiple ISAR frames for one post renderer output frame, which is not supported. "unsupported framing: Post-renderer frame size must be equal or smaller than ISAR codec frame size" ) if isar_frame_size < int(post_rend_fr): transport_codec_frame_size = transport_codec_frame_size_ms(test_info, in_fmt, render_config, pre_rend_fr) if pre_rend_fr < transport_codec_frame_size: pytest.xfail( "unsupported framing: Post-renderer frame size must be equal or smaller than ISAR codec frame size" "unsupported framing: ISAR codec frame must fit in one output frame" ) if not lc3plus_in_use and isar_frame_size != int(pre_rend_fr): if not lc3plus_in_use and transport_codec_frame_size != pre_rend_fr: pytest.xfail( "unsupported framing: LCLD codec doesn't support aggregation. ISAR frame size must match split pre-renderer frame size." ) def truncate_signal( in_file: Path, out_file: Path, Loading