Bug#800605: v4l2loopback-dkms: Can't pipe modified video stream to a loopback device
Control: tags -1 confirmed thanks On 10/01/2015 05:25 PM, Roland Mas wrote: > > I'm trying to intercept a video stream from a webcam and crop it a bit > before passing it on for further processing. I found v4l2loopback, > which sounds like it's exactly what I'm looking for. However, I get > crashes as soon as I try to insert processing in the pipeline. > > The following works: > > , > | $ gst-launch-1.0 v4l2src device=/dev/video0 ! v4l2sink device=/dev/video1 > ` > > (Works as in I'm able to see the video with "gst-launch-1.0 v4l2src > device=/dev/video1 ! xvimagesink") interesting. to the best of my knowledge, v4l2loopback and GStreamer-1.0 don't work together at all. good to hear that they finally do work together. > The following, however, doesn't (I added some debugging): [...] > | 0:00:00.247794498 8590 0x13bd050 WARNv4l2 > gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: > Unknown frame interval type at YVYU@48x32: 0 > | 0:00:00.618841172 8590 0x13bd050 ERROR v4l2allocator > gstv4l2allocator.c:1299:gst_v4l2_allocator_dqbuf: > buffer 1 was not queued, this indicate a driver bug. > | 0:00:00.618972830 8590 0x13bd050 WARN basesrc > gstbasesrc.c:2943:gst_base_src_loop: error: Internal data flow > error. > | 0:00:00.619019484 8590 0x13bd050 WARN basesrc > gstbasesrc.c:2943:gst_base_src_loop: error: streaming task paused, > reason error (-5) > | ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal > data flow error. which is *not* a crash. GStreamer just tells you that it can't play this pipeline, and gst-launch does a controlled quit after that. > > I'm pretty sure the problem lies with v4l2loopback, since replacing > the v4l2sink with a simple xvimagesink in both pipelines gives me the > unaltered stream in the first case and a cropped one in the second case. > > This takes out much of the value of v4l2loopback, if I can only resend > video as-is :-) as v4l2loopback doesn't do any deep inspection of the video processing (how is it supposed to know what's the original and what's the altered stream?) the problem must lie somewhere else. probably even with GStreamer (check the negotiated caps in both cases). gmadsr IOhannes signature.asc Description: OpenPGP digital signature
Bug#800605: v4l2loopback-dkms: Can't pipe modified video stream to a loopback device
Package: v4l2loopback-dkms Version: 0.9.1-2 Severity: normal I'm trying to intercept a video stream from a webcam and crop it a bit before passing it on for further processing. I found v4l2loopback, which sounds like it's exactly what I'm looking for. However, I get crashes as soon as I try to insert processing in the pipeline. The following works: , | $ gst-launch-1.0 v4l2src device=/dev/video0 ! v4l2sink device=/dev/video1 ` (Works as in I'm able to see the video with "gst-launch-1.0 v4l2src device=/dev/video1 ! xvimagesink") The following, however, doesn't (I added some debugging): , | $ gst-launch-1.0 v4l2src device=/dev/video0 ! videocrop left=160 ! v4l2sink device=/dev/video1 | Setting pipeline to PAUSED ... | Pipeline is live and does not need PREROLL ... | Setting pipeline to PLAYING ... | New clock: GstSystemClock | 0:00:00.246143117 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at YUYV@48x32: 0 | 0:00:00.246290508 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at UYVY@48x32: 0 | 0:00:00.246359603 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at 422P@48x32: 0 | 0:00:00.246427807 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at YU12@48x32: 0 | 0:00:00.246493806 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at YV12@48x32: 0 | 0:00:00.246559342 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at 411P@48x32: 0 | 0:00:00.246627256 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at YVU9@48x32: 0 | 0:00:00.246695596 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at YUV9@48x32: 0 | 0:00:00.246762468 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at JPEG@48x32: 0 | 0:00:00.246820456 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at MJPG@48x32: 0 | 0:00:00.246877908 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at dvsd@48x32: 0 | 0:00:00.246936149 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at RGB4@48x32: 0 | 0:00:00.247000757 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at BGR4@48x32: 0 | 0:00:00.247063194 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at RGB3@48x32: 0 | 0:00:00.247125751 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at BGR3@48x32: 0 | 0:00:00.247189433 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at RGBP@48x32: 0 | 0:00:00.247297051 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at RGBO@48x32: 0 | 0:00:00.247360952 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at GREY@48x32: 0 | 0:00:00.247424629 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at VP80@48x32: 0 | 0:00:00.247495616 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at MPG4@48x32: 0 | 0:00:00.247555950 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at MPG2@48x32: 0 | 0:00:00.247618681 8590 0x13bd050 WARNv4l2 gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size: Unknown frame interval type at MPG1@48x32: 0 | 0:00:00.247676672 8590 0x13bd050 WARN