Hello community, here is the log from the commit of package v4l2loopback for openSUSE:Factory checked in at 2019-01-24 14:15:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/v4l2loopback (Old) and /work/SRC/openSUSE:Factory/.v4l2loopback.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "v4l2loopback" Thu Jan 24 14:15:36 2019 rev:5 rq:668189 version:0.12.1 Changes: -------- --- /work/SRC/openSUSE:Factory/v4l2loopback/v4l2loopback.changes 2018-07-03 23:33:40.632466783 +0200 +++ /work/SRC/openSUSE:Factory/.v4l2loopback.new.28833/v4l2loopback.changes 2019-01-24 14:15:37.711208975 +0100 @@ -1,0 +2,19 @@ +Wed Jan 23 21:41:22 UTC 2019 - Luigi Baldoni <[email protected]> + +- Update to version 0.12.1 + [ IOhannes m zmölnig ] + * Fix permission of source code files + * Initialize variables + * Use %u to print size_t + * Improve coding style by removing unused variables + * More coding style fixes + * Use GStreamer-1.0 caps in the documentation + * Gst1.0 compat for example-script + * Protect VP9 and HEVC by #ifdef guards + [ Andrii Danyleiko ] + * Fix typo + [ Kai Kang ] + * Replace do_gettimeofday with v4l2_get_timestamp for linux-5 + compat + +------------------------------------------------------------------- Old: ---- v4l2loopback-0.12.0.tar.gz New: ---- v4l2loopback-0.12.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ v4l2loopback.spec ++++++ --- /var/tmp/diff_new_pack.zAwzex/_old 2019-01-24 14:15:38.379208202 +0100 +++ /var/tmp/diff_new_pack.zAwzex/_new 2019-01-24 14:15:38.395208184 +0100 @@ -1,7 +1,7 @@ # # spec file for package v4l2loopback # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,17 +12,17 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: v4l2loopback -Version: 0.12.0 +Version: 0.12.1 Release: 0 Summary: A kernel module to create V4L2 loopback devices License: GPL-2.0-or-later Group: System/Kernel -Url: https://github.com/umlaeute/v4l2loopback +URL: https://github.com/umlaeute/v4l2loopback Source: https://github.com/umlaeute/v4l2loopback/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: preamble BuildRequires: %{kernel_module_package_buildreqs} ++++++ v4l2loopback-0.12.0.tar.gz -> v4l2loopback-0.12.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/v4l2loopback-0.12.0/AUTHORS new/v4l2loopback-0.12.1/AUTHORS --- old/v4l2loopback-0.12.0/AUTHORS 2018-07-02 12:31:46.000000000 +0200 +++ new/v4l2loopback-0.12.1/AUTHORS 2019-01-23 22:03:43.000000000 +0100 @@ -1,5 +1,6 @@ Aidan Thornton <makosoft AT gmail DOT com> Anatolij Gutschin <agust AT denx DOT de> +Andrii Danyleiko <DefteZ @ github> Angus McInnes <angus AT amcinnes DOT info> Anton Novikov <random.plant AT gmail DOT com> Attila Tőkés <tokes_atti AT yahoo DOT com> @@ -10,6 +11,7 @@ IOhannes m zmoelnig <zmoelnig AT iem DOT at> Javier Infante <jabiinfante AT gmail DOT com> Jon Morley <jmorley AT pixsystem DOT com> +Kai Kang <kai.kang AT windriver DOT com> Kurt Kiefer <kekiefer AT gmail DOT com> Michel Promonet <michel.promonet AT free DOT fr> Nick Sarnie <commendsarnex AT gmail DOT com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/v4l2loopback-0.12.0/ChangeLog new/v4l2loopback-0.12.1/ChangeLog --- old/v4l2loopback-0.12.0/ChangeLog 2018-07-02 12:31:46.000000000 +0200 +++ new/v4l2loopback-0.12.1/ChangeLog 2019-01-23 22:03:43.000000000 +0100 @@ -1,3 +1,23 @@ +v4l2loopback (0.12.1) unstable; urgency=medium + + [ IOhannes m zmölnig ] + * Fix permission of source code files + * Initialize variables + * Use %u to print size_t + * Improve coding style by removing unused variables + * More coding style fixes + * Use GStreamer-1.0 caps in the documentation + * Gst1.0 compat for example-script + * Protect VP9 and HEVC by #ifdef guards + + [ Andrii Danyleiko ] + * Fix typo + + [ Kai Kang ] + * Replace do_gettimeofday with v4l2_get_timestamp for linux-5 compat + + -- IOhannes m zmölnig (Debian/GNU) <[email protected]> Wed, 23 Jan 2019 21:59:29 +0100 + v4l2loopback (0.12.0) unstable; urgency=medium [ WaleedTageldeen ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/v4l2loopback-0.12.0/NEWS new/v4l2loopback-0.12.1/NEWS --- old/v4l2loopback-0.12.0/NEWS 2018-07-02 12:31:46.000000000 +0200 +++ new/v4l2loopback-0.12.1/NEWS 2019-01-23 22:03:43.000000000 +0100 @@ -1,3 +1,9 @@ +v4l2loopback-0.12.1 + + * Fixed compat with kernel 5.0 + + -- IOhannes m zmölnig <[email protected]> Mon, 02 Jul 2018 12:27:29 +0200 + v4l2loopback-0.12.0 * Fixed compat with kernel 4.16 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/v4l2loopback-0.12.0/README.md new/v4l2loopback-0.12.1/README.md --- old/v4l2loopback-0.12.0/README.md 2018-07-02 12:31:46.000000000 +0200 +++ new/v4l2loopback-0.12.1/README.md 2019-01-23 22:03:43.000000000 +0100 @@ -5,7 +5,7 @@ normal (v4l2) applications will read these devices as if they were ordinary video devices, but the video will not be read from e.g. a capture card but instead it is generated by another application. -this allows you for instance to apply apply some nifty video effects on your +this allows you for instance to apply some nifty video effects on your Skype video... it also allows some more serious things (e.g. I've been using it to add streaming capabilities to an application by the means of hooking GStreamer into @@ -129,9 +129,9 @@ $ echo '@100' | sudo tee /sys/devices/virtual/video4linux/video0/format -# FORCING A GSTREAMER (0.10) CAPS +# FORCING A GSTREAMER (1.0) CAPS - $ v4l2loopback-ctl set-caps "video/x-raw-yuv, width=640, height=480" /dev/video0 + $ v4l2loopback-ctl set-caps "video/x-raw,forum=UYVY,width=640,height=480" /dev/video0 # SETTING STREAM TIMEOUT ~~~ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/v4l2loopback-0.12.0/dkms.conf new/v4l2loopback-0.12.1/dkms.conf --- old/v4l2loopback-0.12.0/dkms.conf 2018-07-02 12:31:46.000000000 +0200 +++ new/v4l2loopback-0.12.1/dkms.conf 2019-01-23 22:03:43.000000000 +0100 @@ -1,5 +1,5 @@ PACKAGE_NAME="v4l2loopback" -PACKAGE_VERSION="0.12.0" +PACKAGE_VERSION="0.12.1" # Items below here should not have to change with each driver version MAKE[0]="make KERNEL_DIR=${kernel_source_dir} all" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/v4l2loopback-0.12.0/examples/restarting-writer.sh new/v4l2loopback-0.12.1/examples/restarting-writer.sh --- old/v4l2loopback-0.12.0/examples/restarting-writer.sh 2018-07-02 12:31:46.000000000 +0200 +++ new/v4l2loopback-0.12.1/examples/restarting-writer.sh 2019-01-23 22:03:43.000000000 +0100 @@ -7,17 +7,18 @@ declare -a nbufs nbufs=(10 9 4 5 6) #nbufs=(12 12 12 12 12) - for i in `seq 0 4`; do + #for i in $(seq 0 4); do + for i in 1; do sleep 1 - gst-launch-0.10 videotestsrc horizontal-speed=1 num-buffers=90 ! v4l2sink queue-size=${nbufs[$i]} device=$device + gst-launch-1.0 videotestsrc horizontal-speed=1 num-buffers=90 ! v4l2sink device=$device done } #v4l2-ctl -d $device -c keep_format=1 || exit 1 -./utils/v4l2loopback-ctl set-caps "video/x-raw-yuv, width=640, height=480, framerate=(fraction)25/1" $device || exit 1 +./utils/v4l2loopback-ctl set-caps "video/x-raw, format=UYVY, width=640, height=480, framerate=(fraction)25/1" $device || exit 1 v4l2-ctl -d $device -c sustain_framerate=0 || exit 1 v4l2-ctl -d $device -c timeout=2000 || exit 1 -gst-launch-0.10 videotestsrc num-buffers=1 ! v4l2sink device=$device || exit 1 +gst-launch-1.0 videotestsrc num-buffers=1 ! v4l2sink device=$device || exit 1 { run_writers sleep 10 @@ -27,6 +28,6 @@ sleep 10 run_writers } >/dev/null & -gst-launch-0.10 v4l2src queue-size=3 device=$device ! timeoverlay ! ffmpegcolorspace ! autovideosink +gst-launch-1.0 v4l2src device=$device ! timeoverlay ! videoconvert ! autovideosink kill $! 2>/dev/null wait diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/v4l2loopback-0.12.0/examples/test.c new/v4l2loopback-0.12.1/examples/test.c --- old/v4l2loopback-0.12.0/examples/test.c 2018-07-02 12:31:46.000000000 +0200 +++ new/v4l2loopback-0.12.1/examples/test.c 2019-01-23 22:03:43.000000000 +0100 @@ -97,8 +97,8 @@ struct v4l2_capability vid_caps; struct v4l2_format vid_format; - size_t framesize; - size_t linewidth; + size_t framesize = 0; + size_t linewidth = 0; __u8*buffer; __u8*check_buffer; @@ -139,7 +139,7 @@ assert(ret_code != -1); - if(debug)printf("frame: format=%d\tsize=%d\n", FRAME_FORMAT, framesize); + if(debug)printf("frame: format=%d\tsize=%lu\n", FRAME_FORMAT, framesize); print_format(&vid_format); if(!format_properties(vid_format.fmt.pix.pixelformat, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/v4l2loopback-0.12.0/utils/v4l2loopback-ctl new/v4l2loopback-0.12.1/utils/v4l2loopback-ctl --- old/v4l2loopback-0.12.0/utils/v4l2loopback-ctl 2018-07-02 12:31:46.000000000 +0200 +++ new/v4l2loopback-0.12.1/utils/v4l2loopback-ctl 2019-01-23 22:03:43.000000000 +0100 @@ -21,7 +21,7 @@ Options: FPS frames per second, either as integer ('30') or fraction ('50/2') IMAGE image file ("no-input.png"), or 'videotestsrc' - CAPS GStreamer caps ("video/x-raw-yuv, width=640, height=480"), + CAPS GStreamer caps ("video/x-raw, format=UYVY, width=640, height=480"), or 'any' /dev/videoX the v4l2-loopback device file you want to act on ! diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/v4l2loopback-0.12.0/v4l2loopback.c new/v4l2loopback-0.12.1/v4l2loopback.c --- old/v4l2loopback-0.12.0/v4l2loopback.c 2018-07-02 12:31:46.000000000 +0200 +++ new/v4l2loopback-0.12.1/v4l2loopback.c 2019-01-23 22:03:43.000000000 +0100 @@ -3,7 +3,7 @@ * v4l2loopback.c -- video4linux2 loopback driver * * Copyright (C) 2005-2009 Vasily Levin ([email protected]) - * Copyright (C) 2010-2018 IOhannes m zmoelnig ([email protected]) + * Copyright (C) 2010-2019 IOhannes m zmoelnig ([email protected]) * Copyright (C) 2011 Stefan Diewald ([email protected]) * Copyright (C) 2012 Anton Novikov ([email protected]) * @@ -40,7 +40,7 @@ #define HAVE_TIMER_SETUP #endif -#define V4L2LOOPBACK_VERSION_CODE KERNEL_VERSION(0, 12, 0) +#define V4L2LOOPBACK_VERSION_CODE KERNEL_VERSION(0, 12, 1) MODULE_DESCRIPTION("V4L2 loopback video device"); MODULE_AUTHOR("Vasily Levin, " \ @@ -879,7 +879,6 @@ f->pixelformat = dev->pix_format.pixelformat; } else { - __u32 format; /* fill in a dummy format */ /* coverity[unsigned_compare] */ if (f->index < 0 || f->index >= FORMATS) @@ -888,9 +887,6 @@ fmt = &formats[f->index]; f->pixelformat = fmt->fourcc; - format = f->pixelformat; - - /* strlcpy(f->description, "dummy OUT format", sizeof(f->description)); */ snprintf(f->description, sizeof(f->description), "%s", fmt->name); } @@ -908,12 +904,9 @@ static int vidioc_g_fmt_out(struct file *file, void *priv, struct v4l2_format *fmt) { struct v4l2_loopback_device *dev; - struct v4l2_loopback_opener *opener; - MARK(); dev = v4l2loopback_getdevice(file); - opener = file->private_data; /* * LATER: this should return the currently valid format @@ -1513,7 +1506,7 @@ case V4L2_BUF_TYPE_VIDEO_OUTPUT: dprintkrw("output QBUF pos: %d index: %d\n", dev->write_position, index); if (buf->timestamp.tv_sec == 0 && buf->timestamp.tv_usec == 0) - do_gettimeofday(&b->buffer.timestamp); + v4l2_get_timestamp(&b->buffer.timestamp); else b->buffer.timestamp = buf->timestamp; b->buffer.bytesused = buf->bytesused; @@ -1638,7 +1631,6 @@ { struct v4l2_loopback_device *dev; struct v4l2_loopback_opener *opener; - int ret; MARK(); dev = v4l2loopback_getdevice(file); @@ -1649,7 +1641,7 @@ opener->type = WRITER; dev->ready_for_output = 0; if (!dev->ready_for_capture) { - ret = allocate_buffers(dev); + int ret = allocate_buffers(dev); if (ret < 0) return ret; dev->ready_for_capture = 1; @@ -1663,6 +1655,7 @@ default: return -EINVAL; } + return -EINVAL; } /* stop streaming @@ -1716,7 +1709,6 @@ static int v4l2_loopback_mmap(struct file *file, struct vm_area_struct *vma) { - int i; unsigned long addr; unsigned long start; unsigned long size; @@ -1756,6 +1748,7 @@ buffer = &dev->timeout_image_buffer; addr = (unsigned long)dev->timeout_image; } else { + int i; for (i = 0; i < dev->buffers_number; ++i) { buffer = &dev->buffers[i]; if ((buffer->buffer.m.offset >> PAGE_SHIFT) == vma->vm_pgoff) @@ -1885,12 +1878,10 @@ char __user *buf, size_t count, loff_t *ppos) { int read_index; - struct v4l2_loopback_opener *opener; struct v4l2_loopback_device *dev; struct v4l2_buffer *b; MARK(); - opener = file->private_data; dev = v4l2loopback_getdevice(file); read_index = get_capture_buffer(file); @@ -1916,7 +1907,6 @@ struct v4l2_loopback_device *dev; int write_index; struct v4l2_buffer *b; - int ret; MARK(); dev = v4l2loopback_getdevice(file); @@ -1925,7 +1915,7 @@ dev->ready_for_output = 0; if (!dev->ready_for_capture) { - ret = allocate_buffers(dev); + int ret = allocate_buffers(dev); if (ret < 0) return ret; dev->ready_for_capture = 1; @@ -1943,7 +1933,7 @@ count); return -EFAULT; } - do_gettimeofday(&b->timestamp); + v4l2_get_timestamp(&b->timestamp); b->bytesused = count; b->sequence = dev->write_position; buffer_written(dev, &dev->buffers[write_index]); @@ -2048,7 +2038,7 @@ b->timestamp.tv_usec = 0; b->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - do_gettimeofday(&b->timestamp); + v4l2_get_timestamp(&b->timestamp); } dev->timeout_image_buffer = dev->buffers[0]; dev->timeout_image_buffer.buffer.m.offset = MAX_BUFFERS * buffer_size; @@ -2364,7 +2354,6 @@ static int __init v4l2loopback_init_module(void) { - int ret; int i; MARK(); @@ -2407,6 +2396,7 @@ /* kfree on module release */ for (i = 0; i < devices; i++) { + int ret; dprintk("creating v4l2loopback-device #%d\n", i); devs[i] = kzalloc(sizeof(*devs[i]), GFP_KERNEL); if (devs[i] == NULL) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/v4l2loopback-0.12.0/v4l2loopback_formats.h new/v4l2loopback-0.12.1/v4l2loopback_formats.h --- old/v4l2loopback-0.12.0/v4l2loopback_formats.h 2018-07-02 12:31:46.000000000 +0200 +++ new/v4l2loopback-0.12.1/v4l2loopback_formats.h 2019-01-23 22:03:43.000000000 +0100 @@ -404,15 +404,19 @@ .flags = FORMAT_FLAGS_COMPRESSED, }, #endif /* V4L2_PIX_FMT_VP8 */ +#ifdef V4L2_PIX_FMT_VP9 { .name = "VP9", .fourcc = V4L2_PIX_FMT_VP9, .depth = 32, .flags = FORMAT_FLAGS_COMPRESSED, }, +#endif /* V4L2_PIX_FMT_VP9 */ +#ifdef V4L2_PIX_FMT_HEVC { .name = "HEVC", .fourcc = V4L2_PIX_FMT_HEVC, .depth = 32, .flags = FORMAT_FLAGS_COMPRESSED, }, +#endif /* V4L2_PIX_FMT_HEVC */
