From 37f4875c054572425e8ae5c4a196afdde2d0875e Mon Sep 17 00:00:00 2001 From: Nick Mowen Date: Wed, 14 Sep 2022 18:12:29 -0600 Subject: [PATCH] Rewrite tests to test record correctly --- frigate/ffmpeg_presets.py | 2 +- frigate/test/test_ffmpeg_presets.py | 66 ++++++++++++++++++++--------- 2 files changed, 47 insertions(+), 21 deletions(-) diff --git a/frigate/ffmpeg_presets.py b/frigate/ffmpeg_presets.py index 06214c868..12edfdb74 100644 --- a/frigate/ffmpeg_presets.py +++ b/frigate/ffmpeg_presets.py @@ -39,7 +39,7 @@ def parse_preset_input(arg: Any, detect_fps: int) -> str: if not isinstance(arg, str): return None - if arg is "preset-jpeg-generic": + if arg == "preset-jpeg-generic": return PRESETS_INPUT[arg].format(f"{detect_fps}") return PRESETS_INPUT.get(arg, None) diff --git a/frigate/test/test_ffmpeg_presets.py b/frigate/test/test_ffmpeg_presets.py index 7af232bf5..d3b47b052 100644 --- a/frigate/test/test_ffmpeg_presets.py +++ b/frigate/test/test_ffmpeg_presets.py @@ -18,13 +18,22 @@ class TestFfmpegPresets(unittest.TestCase): "ffmpeg": { "inputs": [ {"path": "rtsp://10.0.0.1:554/video", "roles": ["detect"]} - ] + ], + "output_args": { + "detect": "-f rawvideo -pix_fmt yuv420p", + "record": "-f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy -an", + "rtmp": "-c copy -f flv", + }, }, "detect": { "height": 1080, "width": 1920, "fps": 5, }, + "record": { + "enabled": True, + }, + "name": "back", } }, } @@ -40,8 +49,12 @@ class TestFfmpegPresets(unittest.TestCase): ] = "preset-rpi-64-h264" frigate_config = FrigateConfig(**self.default_ffmpeg) frigate_config.cameras["back"].create_ffmpeg_cmds() - assert "preset-rpi-64-h264" not in frigate_config.cameras["back"].ffmpeg_cmds[0] - assert "-c:v h264_v4l2m2m" in frigate_config.cameras["back"].ffmpeg_cmds[0] + assert "preset-rpi-64-h264" not in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) + ) + assert "-c:v h264_v4l2m2m" in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) + ) def test_ffmpeg_hwaccel_not_preset(self): self.default_ffmpeg["cameras"]["back"]["ffmpeg"][ @@ -49,7 +62,9 @@ class TestFfmpegPresets(unittest.TestCase): ] = "-other-hwaccel args" frigate_config = FrigateConfig(**self.default_ffmpeg) frigate_config.cameras["back"].create_ffmpeg_cmds() - assert "-other-hwaccel args" in frigate_config.cameras["back"].ffmpeg_cmds[0] + assert "-other-hwaccel args" in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) + ) def test_default_ffmpeg_input_arg_preset(self): frigate_config = FrigateConfig(**self.default_ffmpeg) @@ -59,9 +74,10 @@ class TestFfmpegPresets(unittest.TestCase): ] = "preset-rtsp-generic" frigate_preset_config = FrigateConfig(**self.default_ffmpeg) frigate_config.cameras["back"].create_ffmpeg_cmds() + frigate_preset_config.cameras["back"].create_ffmpeg_cmds() assert ( - frigate_preset_config.cameras["back"].ffmpeg_cmds[0] - == frigate_config.cameras["back"].ffmpeg_cmds[0] + frigate_preset_config.cameras["back"].ffmpeg_cmds[0]["cmd"] + == frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"] ) def test_ffmpeg_input_preset(self): @@ -70,19 +86,20 @@ class TestFfmpegPresets(unittest.TestCase): ] = "preset-rtmp-generic" frigate_config = FrigateConfig(**self.default_ffmpeg) frigate_config.cameras["back"].create_ffmpeg_cmds() - assert ( - "preset-rtmp-generic" not in frigate_config.cameras["back"].ffmpeg_cmds[0] + assert "preset-rtmp-generic" not in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) ) - assert ( - parse_preset_input("preset-rtmp-generic", 5) - in frigate_config.cameras["back"].ffmpeg_cmds[0] + assert parse_preset_input("preset-rtmp-generic", 5) in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) ) def test_ffmpeg_input_not_preset(self): self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["input_args"] = "-some inputs" frigate_config = FrigateConfig(**self.default_ffmpeg) frigate_config.cameras["back"].create_ffmpeg_cmds() - assert "-some inputs" in frigate_config.cameras["back"].ffmpeg_cmds[0] + assert "-some inputs" in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) + ) def test_ffmpeg_output_record_preset(self): self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["output_args"][ @@ -90,11 +107,12 @@ class TestFfmpegPresets(unittest.TestCase): ] = "preset-record-generic-audio" frigate_config = FrigateConfig(**self.default_ffmpeg) frigate_config.cameras["back"].create_ffmpeg_cmds() - assert ( - "preset-record-generic-audio" - not in frigate_config.cameras["back"].ffmpeg_cmds[0] + assert "preset-record-generic-audio" not in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) + ) + assert "-c:v copy -c:a aac" in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) ) - assert "-c:v copy -c:a aac" in frigate_config.cameras["back"].ffmpeg_cmds[0] def test_ffmpeg_output_record_not_preset(self): self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["output_args"][ @@ -102,7 +120,9 @@ class TestFfmpegPresets(unittest.TestCase): ] = "-some output" frigate_config = FrigateConfig(**self.default_ffmpeg) frigate_config.cameras["back"].create_ffmpeg_cmds() - assert "-some output" in frigate_config.cameras["back"].ffmpeg_cmds[0] + assert "-some output" in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) + ) def test_ffmpeg_output_rtmp_preset(self): self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["output_args"][ @@ -110,8 +130,12 @@ class TestFfmpegPresets(unittest.TestCase): ] = "preset-rtmp-jpeg" frigate_config = FrigateConfig(**self.default_ffmpeg) frigate_config.cameras["back"].create_ffmpeg_cmds() - assert "preset-rtmp-jpeg" not in frigate_config.cameras["back"].ffmpeg_cmds[0] - assert "-c:v libx264" in frigate_config.cameras["back"].ffmpeg_cmds[0] + assert "preset-rtmp-jpeg" not in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) + ) + assert "-c:v libx264" in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) + ) def test_ffmpeg_output_rtmp_not_preset(self): self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["output_args"][ @@ -119,7 +143,9 @@ class TestFfmpegPresets(unittest.TestCase): ] = "-some output" frigate_config = FrigateConfig(**self.default_ffmpeg) frigate_config.cameras["back"].create_ffmpeg_cmds() - assert "-some output" in frigate_config.cameras["back"].ffmpeg_cmds[0] + assert "-some output" in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) + ) if __name__ == "__main__":