from copy import deepcopy
-VIDEO_PIPELINE_BASE="""{gst_video_source} {gst_video_options} \
+VIDEO_PIPELINE_BASE="""{gst_video_source} {gst_video_device} {gst_video_options} \
! {format}, width={width}, height={height}, framerate={framerate}/1 \
! {decoder} \
! queue ! videoflip method={flip} \
"options": "-R -P{priority} -dalsa -r{samplerate} -p{buffer} -n3 -Chw:{card} -Phw:{card}",
"tools": ["qjackctl", "catia", "konsole"],
"gst_video_source": "v4l2src",
- "gst_video_options": "device=/dev/video{id}",
+ "gst_video_options": "",
+ "gst_video_device": "device={device}",
"gst_audio_source": "jackaudiosrc",
"gst_audio_options": "connect=2 low-latency=true",
"connect":
"engine": "pipewire",
"options": "",
"gst_video_source": "pipewiresrc",
- "gst_video_options": "target-object=v4l2:/dev/video{id}",
+ "gst_video_options": "",
+ "gst_video_device": "target-object=v4l2:{device}",
"gst_audio_source": "pipewiresrc",
"gst_audio_options": "target-object={target_object}",
"tools": ["qpwgraph", "konsole"],
if "v4l2-ctl" in video:
self.v4l2_ctl(video)
- local_params["gst_video_options"] = local_params["gst_video_options"].format(**video)
+ if "device" in video:
+ local_params["gst_video_device"] = local_params["gst_video_device"].format(**video)
+ else:
+ device = "/dev/video{id}".format(**video)
+ local_params["gst_video_device"] = local_params["gst_video_device"].format(device=device)
pipeline = VIDEO_PIPELINE_BASE.format(**video,
**self.conf["audio"]["gstreamer"],