Change the rotate field to camera/ffmpeg

This commit is contained in:
Galindo, Alex 2023-03-07 15:10:31 +01:00
parent 50349b23ab
commit 5f51319b89
4 changed files with 18 additions and 18 deletions

View File

@ -66,7 +66,7 @@ cameras:
roles:
- detect
- record
rotate: 90
rotate: 90
detect:
width: 1280
height: 720

View File

@ -427,8 +427,8 @@ cameras:
# Optional: camera specific output args (default: inherit)
# output_args:
# Optional: rotation for this camera, allowed values are: 90, 180 or 270 (-90). (default: shown below)
rotate: 0
# Optional: rotation for this camera, allowed values are: 90, 180 or 270 (-90). (default: shown below)
rotate: 0
# Optional: timeout for highest scoring image before allowing it
# to be replaced by a newer image. (default: shown below)

View File

@ -462,6 +462,7 @@ class CameraInput(FrigateBaseModel):
class CameraFfmpegConfig(FfmpegConfig):
inputs: List[CameraInput] = Field(title="Camera inputs.")
rotate: int = Field(default=0, title="Rotate camera: 0º, 90º, 180º or 270º(-90º)")
@validator("inputs")
def validate_roles(cls, v):
@ -576,7 +577,6 @@ class CameraUiConfig(FrigateBaseModel):
class CameraConfig(FrigateBaseModel):
name: Optional[str] = Field(title="Camera name.", regex=REGEX_CAMERA_NAME)
enabled: bool = Field(default=True, title="Enable camera.")
rotate: int = Field(default=0, title="Rotate camera: 0º, 90º, 180º or 270º(-90º)")
ffmpeg: CameraFfmpegConfig = Field(title="FFmpeg configuration for the camera.")
best_image_timeout: int = Field(
default=60,
@ -675,7 +675,7 @@ class CameraConfig(FrigateBaseModel):
self.detect.fps,
self.detect.width,
self.detect.height,
self.rotate,
self.ffmpeg.rotate,
)
ffmpeg_output_args = scale_detect_args + ffmpeg_output_args + ["pipe:"]
@ -693,7 +693,7 @@ class CameraConfig(FrigateBaseModel):
parse_preset_output_record(
self.ffmpeg.output_args.record,
ffmpeg_input.hwaccel_args or self.ffmpeg.hwaccel_args,
self.rotate,
self.ffmpeg.rotate,
)
or self.ffmpeg.output_args.record
)

View File

@ -86,7 +86,7 @@ class TestFfmpegPresets(unittest.TestCase):
)
def test_ffmpeg_hwaccel_rotate_90_preset(self):
self.default_ffmpeg["cameras"]["back"]["rotate"] = 90
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["rotate"] = 90
self.default_ffmpeg["cameras"]["back"]["ffmpeg"][
"hwaccel_args"
] = "preset-nvidia-h264"
@ -106,7 +106,7 @@ class TestFfmpegPresets(unittest.TestCase):
)
def test_ffmpeg_hwaccel_rotate_180_preset(self):
self.default_ffmpeg["cameras"]["back"]["rotate"] = 180
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["rotate"] = 180
self.default_ffmpeg["cameras"]["back"]["ffmpeg"][
"hwaccel_args"
] = "preset-rpi-64-h264"
@ -125,7 +125,7 @@ class TestFfmpegPresets(unittest.TestCase):
)
def test_ffmpeg_hwaccel_rotate_180_vaapi_preset(self):
self.default_ffmpeg["cameras"]["back"]["rotate"] = 180
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["rotate"] = 180
self.default_ffmpeg["cameras"]["back"]["ffmpeg"][
"hwaccel_args"
] = "preset-vaapi"
@ -145,7 +145,7 @@ class TestFfmpegPresets(unittest.TestCase):
)
def test_ffmpeg_hwaccel_rotate_180_qsv_preset(self):
self.default_ffmpeg["cameras"]["back"]["rotate"] = 180
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["rotate"] = 180
self.default_ffmpeg["cameras"]["back"]["ffmpeg"][
"hwaccel_args"
] = "preset-intel-qsv-h264"
@ -165,7 +165,7 @@ class TestFfmpegPresets(unittest.TestCase):
)
def test_ffmpeg_hwaccel_rotate_270_preset(self):
self.default_ffmpeg["cameras"]["back"]["rotate"] = 270
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["rotate"] = 270
self.default_ffmpeg["cameras"]["back"]["ffmpeg"][
"hwaccel_args"
] = "preset-nvidia-h264"
@ -185,7 +185,7 @@ class TestFfmpegPresets(unittest.TestCase):
)
def test_ffmpeg_hwaccel_rotate_wrong_preset(self):
self.default_ffmpeg["cameras"]["back"]["rotate"] = 20
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["rotate"] = 20
self.default_ffmpeg["cameras"]["back"]["ffmpeg"][
"hwaccel_args"
] = "preset-nvidia-h264"
@ -276,7 +276,7 @@ class TestFfmpegPresets(unittest.TestCase):
)
def test_ffmpeg_output_record_rotate_90_preset(self):
self.default_ffmpeg["cameras"]["back"]["rotate"] = 90
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["rotate"] = 90
self.default_ffmpeg["cameras"]["back"]["ffmpeg"][
"hwaccel_args"
] = "preset-nvidia-h264"
@ -293,7 +293,7 @@ class TestFfmpegPresets(unittest.TestCase):
)
def test_ffmpeg_output_record_rotate_180_preset(self):
self.default_ffmpeg["cameras"]["back"]["rotate"] = 180
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["rotate"] = 180
self.default_ffmpeg["cameras"]["back"]["ffmpeg"][
"hwaccel_args"
] = "preset-rpi-64-h264"
@ -310,7 +310,7 @@ class TestFfmpegPresets(unittest.TestCase):
)
def test_ffmpeg_output_record_rotate_180_vaapi_preset(self):
self.default_ffmpeg["cameras"]["back"]["rotate"] = 180
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["rotate"] = 180
self.default_ffmpeg["cameras"]["back"]["ffmpeg"][
"hwaccel_args"
] = "preset-vaapi"
@ -327,7 +327,7 @@ class TestFfmpegPresets(unittest.TestCase):
)
def test_ffmpeg_output_record_rotate_180_qsv_preset(self):
self.default_ffmpeg["cameras"]["back"]["rotate"] = 180
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["rotate"] = 180
self.default_ffmpeg["cameras"]["back"]["ffmpeg"][
"hwaccel_args"
] = "preset-intel-qsv-h264"
@ -344,7 +344,7 @@ class TestFfmpegPresets(unittest.TestCase):
)
def test_ffmpeg_output_record_rotate_270_preset(self):
self.default_ffmpeg["cameras"]["back"]["rotate"] = 270
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["rotate"] = 270
self.default_ffmpeg["cameras"]["back"]["ffmpeg"][
"hwaccel_args"
] = "preset-nvidia-h264"
@ -361,7 +361,7 @@ class TestFfmpegPresets(unittest.TestCase):
)
def test_ffmpeg_output_record_rotate_wrong_preset(self):
self.default_ffmpeg["cameras"]["back"]["rotate"] = 20
self.default_ffmpeg["cameras"]["back"]["ffmpeg"]["rotate"] = 20
self.default_ffmpeg["cameras"]["back"]["ffmpeg"][
"hwaccel_args"
] = "preset-nvidia-h264"