public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michael Weber" <xmw@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/zbar/, media-gfx/zbar/files/
Date: Mon, 10 Aug 2015 23:06:04 +0000 (UTC)	[thread overview]
Message-ID: <1439247957.6bb3d1e8458fc0872b4d01349fcb8e74e02f3566.xmw@gentoo> (raw)

commit:     6bb3d1e8458fc0872b4d01349fcb8e74e02f3566
Author:     Michael Weber <xmw <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 10 23:05:44 2015 +0000
Commit:     Michael Weber <xmw <AT> gentoo <DOT> org>
CommitDate: Mon Aug 10 23:05:57 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6bb3d1e8

media-gfx/zbar: fix UVC webcam compatibility (bug 548034, thanks Scott Alfter).

Package-Manager: portage-2.2.20

 media-gfx/zbar/files/zbar-0.10-v4l2-uvcvideo.patch | 49 ++++++++++++++++++++++
 media-gfx/zbar/zbar-0.10-r5.ebuild                 |  7 ++--
 media-gfx/zbar/zbar-0.10_p20121015.ebuild          |  6 +--
 3 files changed, 56 insertions(+), 6 deletions(-)

diff --git a/media-gfx/zbar/files/zbar-0.10-v4l2-uvcvideo.patch b/media-gfx/zbar/files/zbar-0.10-v4l2-uvcvideo.patch
new file mode 100644
index 0000000..4fde95e
--- /dev/null
+++ b/media-gfx/zbar/files/zbar-0.10-v4l2-uvcvideo.patch
@@ -0,0 +1,49 @@
+--- zbar-0.10/zbar/video/v4l2.c	2009-10-23 18:16:44.000000000 +0000
++++ zbar-0.10/zbar/video/v4l2.c	2015-03-07 05:46:36.000000000 +0000
+@@ -241,6 +241,21 @@
+     return(0);
+ }
+ 
++static int v4l2_request_buffers (zbar_video_t *vdo)
++{
++    struct v4l2_requestbuffers rb;
++    memset(&rb, 0, sizeof(rb));
++    rb.count = vdo->num_images;
++    rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
++    rb.memory = V4L2_MEMORY_USERPTR;
++    if(ioctl(vdo->fd, VIDIOC_REQBUFS, &rb) < 0)
++        return(err_capture(vdo, SEV_ERROR, ZBAR_ERR_SYSTEM, __func__,
++                           "requesting video frame buffers (VIDIOC_REQBUFS)"));
++    if(rb.count) 
++        vdo->num_images = rb.count;
++    return(0);
++}
++
+ static int v4l2_set_format (zbar_video_t *vdo,
+                             uint32_t fmt)
+ {
+@@ -308,6 +323,8 @@
+         return(-1);
+     if(vdo->iomode == VIDEO_MMAP)
+         return(v4l2_mmap_buffers(vdo));
++    if(vdo->iomode == VIDEO_USERPTR)
++        return(v4l2_request_buffers(vdo));
+     return(0);
+ }
+ 
+@@ -337,8 +354,13 @@
+     else {
+         if(!vdo->iomode)
+             vdo->iomode = VIDEO_USERPTR;
+-        if(rb.count)
+-            vdo->num_images = rb.count;
++        /* releasing buffers 
++         * lest the driver may later refuse to change format
++         */
++        rb.count = 0;
++        if (ioctl(vdo->fd, VIDIOC_REQBUFS, &rb) < 0)
++            zprintf(0, "WARNING: releasing video buffers failed: error %d\n",
++                errno);
+     }
+     return(0);
+ }

diff --git a/media-gfx/zbar/zbar-0.10-r5.ebuild b/media-gfx/zbar/zbar-0.10-r5.ebuild
index 96d5787..c9873c2 100644
--- a/media-gfx/zbar/zbar-0.10-r5.ebuild
+++ b/media-gfx/zbar/zbar-0.10-r5.ebuild
@@ -38,9 +38,10 @@ pkg_setup() {
 }
 
 src_prepare() {
-	epatch "${FILESDIR}"/${P}-no-v4l1-check.patch
-	epatch "${FILESDIR}"/${P}-errors.patch
-	epatch "${FILESDIR}"/${P}-python-crash.patch
+	epatch "${FILESDIR}"/${P}-no-v4l1-check.patch \
+		"${FILESDIR}"/${P}-errors.patch \
+		"${FILESDIR}"/${P}-python-crash.patch \
+		"${FILESDIR}"/${P}-v4l2-uvcvideo.patch
 
 	use python && python_fix_shebang examples/upcrpc.py test/*.py
 

diff --git a/media-gfx/zbar/zbar-0.10_p20121015.ebuild b/media-gfx/zbar/zbar-0.10_p20121015.ebuild
index 7beedc9..c6f6de1 100644
--- a/media-gfx/zbar/zbar-0.10_p20121015.ebuild
+++ b/media-gfx/zbar/zbar-0.10_p20121015.ebuild
@@ -44,9 +44,9 @@ src_unpack() {
 }
 
 src_prepare() {
-	#epatch "${FILESDIR}"/${P}-no-v4l1-check.patch
-	epatch "${FILESDIR}"/${PN}-0.10-errors.patch
-	epatch "${FILESDIR}"/${PN}-0.10-python-crash.patch
+	epatch "${FILESDIR}"/${PN}-0.10-errors.patch \
+		"${FILESDIR}"/${PN}-0.10-python-crash.patch \
+		"${FILESDIR}"/${PN}-0.10-v4l2-uvcvideo.patch
 
 	use python && python_fix_shebang examples/upcrpc.py test/*.py
 


             reply	other threads:[~2015-08-10 23:06 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-10 23:06 Michael Weber [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-05-10 10:08 [gentoo-commits] repo/gentoo:master commit in: media-gfx/zbar/, media-gfx/zbar/files/ Andreas Sturmlechner
2018-11-25 17:36 Andreas Sturmlechner
2018-11-25 18:00 Andreas Sturmlechner
2021-02-27 16:35 Sam James
2021-02-27 16:35 Sam James
2021-03-16 15:06 Sam James
2022-04-05 16:35 Andreas Sturmlechner
2024-08-05  7:35 Joonas Niilola

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1439247957.6bb3d1e8458fc0872b4d01349fcb8e74e02f3566.xmw@gentoo \
    --to=xmw@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox