umlaeute / v4l2loopback

v4l2-loopback device
GNU General Public License v2.0
3.67k stars 523 forks source link

Don't work on Linux kernel 3.7.1 #35

Closed yukkeorg closed 11 years ago

yukkeorg commented 11 years ago

I am installed Linux kernel 3.7.1 from tarball. v4l2loopback 0.6.1 is no error in compiling, installing and modprobing. but outputing video stream to v4l2loopback device with gst-launch-0.10 occurd error. It is no error in Linux Kernel 3.6.10.

$ LANG=C gst-launch-0.10 videotestsrc ! ffmpegcolorspace ! v4l2sink
Setting pipeline to PAUSED ...
libv4l2: error getting pixformat: Invalid argument
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Could not negotiate format
Additional debug info:
gstbasesrc.c(2830): gst_base_src_start (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
Check your filtered caps, if any
Setting pipeline to NULL ...
Freeing pipeline ...

I checked both, differnce in v4l2-ctl outout:

On 3.7.1

$ v4l2-ctl --all -d /dev/video1
Driver Info (not using libv4l2):
    Driver name   : v4l2 loopback
    Card type     : Dummy video device
    Bus info      : 
    Driver version: 0.6.1
    Capabilities  : 0x05000003
        Video Capture
        Video Output
        Read/Write
        Streaming
Video Standard = 0x00ffffff
    PAL-B/B1/G/H/I/D/D1/K/M/N/Nc/60
    NTSC-M/M-JP/443/M-KR
    SECAM-B/D/G/H/K/K1/L/Lc
Streaming Parameters Video Capture:
    Frames per second: 30.000 (30/1)
    Read buffers     : 8

On 3.6.10

$ v4l2-ctl --all -d /dev/video1
Driver Info (not using libv4l2):
    Driver name   : v4l2 loopback
    Card type     : Dummy video device
    Bus info      : 
    Driver version: 0.6.1
    Capabilities  : 0x05000003
        Video Capture
        Video Output
        Read/Write
        Streaming
Format Video Output:
    Width/Height  : 0/0
    Pixel Format  : 'BGR4'
    Field         : None
    Bytes per Line: 0
    Size Image    : 0
    Colorspace    : SRGB
Video output: 0 (loopback in)
Video Standard = 0x00ffffff
    PAL-B/B1/G/H/I/D/D1/K/M/N/Nc/60
    NTSC-M/M-JP/443/M-KR
    SECAM-B/D/G/H/K/K1/L/Lc
Streaming Parameters Video Capture:
    Frames per second: 30.000 (30/1)
    Read buffers     : 8
Streaming Parameters Video Output:
    Frames per second: 30.000 (30/1)
    Write buffers    : 8

Thanks.

LuisMitaHL commented 11 years ago

Apparently, I noticed on the issue #28 which has removed support v4l2 INPUT from kernel, which killed v4l2loopback ability to receive data. Supposedly no video driver need that option, but v4l2loopback and webcamstudio module (fork) depend on it.

umlaeute commented 11 years ago

after a short conversation on linux-media_AT_vger.kernel.org i added the vfl_dir field and set it to VFL_DIR_M2M (like in the mem2mem testdevice) in the 'experimental' branch. please check whether this fixes the problem (i don't have a kernel-3.7 running yet)

LuisMitaHL commented 11 years ago

Linux kernel 3.7.0: It works!!!

yukkeorg commented 11 years ago

Sorry for the late reply. It Works on Linux kernel 3.7.4. Thanks fixed it!

umlaeute commented 11 years ago

just for the record: the changes are in the post-0.6.2 "experimental" branch, and will be part of v4l2loopback>=0.6.3