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 WARN v4l2 > gstv4l2object.c:2167:gst_v4l2_object_probe_caps_for_format_and_size:<v4l2sink0> > Unknown frame interval type at YVYU@48x32: 0 > | 0:00:00.618841172 8590 0x13bd050 ERROR v4l2allocator > gstv4l2allocator.c:1299:gst_v4l2_allocator_dqbuf:<v4l2sink0:pool:sink:allocator> > 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:<v4l2src0> error: Internal data flow > error. > | 0:00:00.619019484 8590 0x13bd050 WARN basesrc > gstbasesrc.c:2943:gst_base_src_loop:<v4l2src0> 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