r53989 - /trunk/libvideo-capture-v4l-perl/debian/patches/v4l2.patch

dmn at users.alioth.debian.org dmn at users.alioth.debian.org
Tue Mar 9 19:13:58 UTC 2010


Author: dmn
Date: Tue Mar  9 19:08:31 2010
New Revision: 53989

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=53989
Log:
update v4l2.patch with gregoa's additons. now looks muuch better. thanks!

Modified:
    trunk/libvideo-capture-v4l-perl/debian/patches/v4l2.patch

Modified: trunk/libvideo-capture-v4l-perl/debian/patches/v4l2.patch
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libvideo-capture-v4l-perl/debian/patches/v4l2.patch?rev=53989&op=diff
==============================================================================
--- trunk/libvideo-capture-v4l-perl/debian/patches/v4l2.patch (original)
+++ trunk/libvideo-capture-v4l-perl/debian/patches/v4l2.patch Tue Mar  9 19:08:31 2010
@@ -1,6 +1,6 @@
 --- a/V4l/V4l.pm
 +++ b/V4l/V4l.pm
-@@ -92,9 +92,7 @@ sub new(;$) {
+@@ -92,9 +92,8 @@ sub new(;$) {
     my $device = shift || "/dev/video0";
     my $self = bless { device => $device }, $class;
  
@@ -8,10 +8,11 @@
 -   sysopen $self->{handle},$device,O_RDWR or return;
 -   $self->{fd} = fileno ($self->{handle});
 +   $self->{fd} = v4l_open($device,O_RDWR) or return;
++   $self->{handle} = IO::Handle->new_from_fd( $self->{fd}, 'rw' );
     $self->{capability} = _capabilities_new ($self->{fd});
     $self->{picture} = _picture_new ($self->{fd});
  
-@@ -176,9 +174,7 @@ sub new(;$) {
+@@ -176,9 +175,8 @@ sub new(;$) {
     my $device = shift || "/dev/vbi0";
     my $self = bless { device => $device }, $class;
  
@@ -19,21 +20,108 @@
 -   sysopen $self->{handle},$device,O_RDWR or return;
 -   $self->{fd} = fileno ($self->{handle});
 +   $self->{fd} = v4l_open($device,O_RDWR) or return;
++   $self->{handle} = IO::Handle->new_from_fd( $self->{fd}, 'rw' );
  
     $self
  }
 --- a/V4l/V4l.xs
 +++ b/V4l/V4l.xs
-@@ -14,6 +14,8 @@
+@@ -10,6 +10,7 @@
+ #include <string.h>
+ #include <pthread.h>
+ #include <linux/videodev.h>
++#include <libv4l1.h>
+ 
  #define NEED_newCONSTSUB
  #include "../gppport.h"
- 
-+#include <libv4l1.h>
+@@ -89,7 +90,7 @@ static int
+ private_free (pTHX_ SV *obj, MAGIC *mg)
+ {
+   struct private *p = (struct private *)mg->mg_ptr;
+-  munmap (p->mmap_base, p->vm.size);
++  v4l1_munmap (p->mmap_base, p->vm.size);
+   return 0;
+ }
+ 
+@@ -105,9 +106,9 @@ find_private (SV *sv)
+     {
+       struct private p;
+       p.fd = SvIV (*hv_fetch (hv, "fd", 2, 0));
+-      if (ioctl (p.fd, VIDIOCGMBUF, &p.vm) == 0)
++      if (v4l1_ioctl (p.fd, VIDIOCGMBUF, &p.vm) == 0)
+         {
+-          p.mmap_base = (unsigned char *)mmap (0, p.vm.size, PROT_READ|PROT_WRITE, MAP_SHARED, p.fd, 0);
++          p.mmap_base = (unsigned char *)v4l1_mmap (0, p.vm.size, PROT_READ|PROT_WRITE, MAP_SHARED, p.fd, 0);
+           if (p.mmap_base)
+             {
+               sv_magic ((SV*)hv, 0, '~', (char*)&p, sizeof p);
+@@ -164,7 +165,7 @@ vbi_snatcher_thread (void *arg)
+           pthread_mutex_unlock (&vbi_lock);
+ 
+           next->next = 0;
+-          next->size = read (vbi_fd, next->data, VBI_BPF);
++          next->size = v4l1_read (vbi_fd, next->data, VBI_BPF);
+ 
+           pthread_mutex_lock (&vbi_lock);
+ 
+@@ -229,7 +230,7 @@ field(self)
+ 
+             RETVAL = newSVpvn ("", 0);
+             SvGROW (RETVAL, VBI_BPF);
+-            len = read (fd, SvPV_nolen (RETVAL), VBI_BPF);
++            len = v4l1_read (fd, SvPV_nolen (RETVAL), VBI_BPF);
+             SvCUR_set (RETVAL, len);
+           }
+ 
+@@ -314,6 +315,15 @@ queued(self)
+ 	OUTPUT:
+         RETVAL
+ 
++int
++v4l_open (file,oflag)
++        char    *file
++        int     oflag
++        CODE:
++            RETVAL = v4l1_open (file, oflag);
++        OUTPUT:
++        RETVAL
 +
- #ifndef pTHX_
- #define pTHX_
- #endif
-@@ -430,6 +432,15 @@ _picture_new(fd)
+ MODULE = Video::Capture::V4l		PACKAGE = Video::Capture::V4l		
+ 
+ SV *
+@@ -333,7 +343,7 @@ capture(sv,frame,width,height,format = V
+             vm.height = height;
+             vm.width  = width;
+             vm.format = format;
+-            if (ioctl (p->fd, VIDIOCMCAPTURE, &vm) == 0)
++            if (v4l1_ioctl (p->fd, VIDIOCMCAPTURE, &vm) == 0)
+               {
+                 SV *fr = newSV (0);
+                 SvUPGRADE (fr, SVt_PV);
+@@ -361,7 +371,7 @@ sync(sv,frame)
+ {
+         struct private *p;
+         if ((p = find_private (sv))
+-            && ioctl (p->fd, VIDIOCSYNC, &frame) == 0)
++            && v4l1_ioctl (p->fd, VIDIOCSYNC, &frame) == 0)
+           XSRETURN_YES;
+         else
+           XSRETURN_EMPTY;
+@@ -375,11 +385,11 @@ _freq (fd,fr)
+         if (items > 1)
+           {
+             fr = ((fr<<4)+499)/1000;
+-            ioctl (fd, VIDIOCSFREQ, &fr);
++            v4l1_ioctl (fd, VIDIOCSFREQ, &fr);
+           }
+         if (GIMME_V != G_VOID)
+           {
+-            if (ioctl (fd, VIDIOCGFREQ, &fr) == 0)
++            if (v4l1_ioctl (fd, VIDIOCGFREQ, &fr) == 0)
+               RETVAL = (fr*1000+7)>>4;
+             else
+               XSRETURN_EMPTY;
+@@ -430,13 +440,22 @@ _picture_new(fd)
          OUTPUT:
          RETVAL
  
@@ -49,6 +137,78 @@
  MODULE = Video::Capture::V4l		PACKAGE = Video::Capture::V4l::Capability
  
  void
+ get(sv)
+ 	SV *	sv
+         CODE:
+-        XSRETURN_bool (ioctl (SvIV (SvRV (sv)), VIDIOCGCAP, old_struct (sv, "Video::Capture::V4l::Capability")) == 0);
++        XSRETURN_bool (v4l1_ioctl (SvIV (SvRV (sv)), VIDIOCGCAP, old_struct (sv, "Video::Capture::V4l::Capability")) == 0);
+ 
+ MODULE = Video::Capture::V4l		PACKAGE = Video::Capture::V4l::Channel
+ 
+@@ -444,13 +463,13 @@ void
+ get(sv)
+ 	SV *	sv
+         CODE:
+-        XSRETURN_bool (ioctl (SvIV (SvRV (sv)), VIDIOCGCHAN, old_struct (sv, "Video::Capture::V4l::Channel")) == 0);
++        XSRETURN_bool (v4l1_ioctl (SvIV (SvRV (sv)), VIDIOCGCHAN, old_struct (sv, "Video::Capture::V4l::Channel")) == 0);
+ 
+ void
+ set(sv)
+ 	SV *	sv
+         CODE:
+-        XSRETURN_bool (ioctl (SvIV (SvRV (sv)), VIDIOCSCHAN, old_struct (sv, "Video::Capture::V4l::Channel")) == 0);
++        XSRETURN_bool (v4l1_ioctl (SvIV (SvRV (sv)), VIDIOCSCHAN, old_struct (sv, "Video::Capture::V4l::Channel")) == 0);
+ 
+ MODULE = Video::Capture::V4l		PACKAGE = Video::Capture::V4l::Tuner
+ 
+@@ -458,13 +477,13 @@ void
+ get(sv)
+ 	SV *	sv
+         CODE:
+-        XSRETURN_bool (ioctl (SvIV (SvRV (sv)), VIDIOCGTUNER, old_struct (sv, "Video::Capture::V4l::Tuner")) == 0);
++        XSRETURN_bool (v4l1_ioctl (SvIV (SvRV (sv)), VIDIOCGTUNER, old_struct (sv, "Video::Capture::V4l::Tuner")) == 0);
+ 
+ void
+ set(sv)
+ 	SV *	sv
+         CODE:
+-        XSRETURN_bool (ioctl (SvIV (SvRV (sv)), VIDIOCSTUNER, old_struct (sv, "Video::Capture::V4l::Tuner")) == 0);
++        XSRETURN_bool (v4l1_ioctl (SvIV (SvRV (sv)), VIDIOCSTUNER, old_struct (sv, "Video::Capture::V4l::Tuner")) == 0);
+ 
+ MODULE = Video::Capture::V4l		PACKAGE = Video::Capture::V4l::Audio
+ 
+@@ -472,13 +491,13 @@ void
+ get(sv)
+ 	SV *	sv
+         CODE:
+-        XSRETURN_bool (ioctl (SvIV (SvRV (sv)), VIDIOCGAUDIO, old_struct (sv, "Video::Capture::V4l::Audio")) == 0);
++        XSRETURN_bool (v4l1_ioctl (SvIV (SvRV (sv)), VIDIOCGAUDIO, old_struct (sv, "Video::Capture::V4l::Audio")) == 0);
+ 
+ void
+ set(sv)
+ 	SV *	sv
+         CODE:
+-        XSRETURN_bool (ioctl (SvIV (SvRV (sv)), VIDIOCSAUDIO, old_struct (sv, "Video::Capture::V4l::Audio")) == 0);
++        XSRETURN_bool (v4l1_ioctl (SvIV (SvRV (sv)), VIDIOCSAUDIO, old_struct (sv, "Video::Capture::V4l::Audio")) == 0);
+ 
+ MODULE = Video::Capture::V4l		PACKAGE = Video::Capture::V4l::Picture
+ 
+@@ -486,13 +505,13 @@ void
+ get(sv)
+ 	SV *	sv
+         CODE:
+-        XSRETURN_bool (ioctl (SvIV (SvRV (sv)), VIDIOCGPICT, old_struct (sv, "Video::Capture::V4l::Picture")) == 0);
++        XSRETURN_bool (v4l1_ioctl (SvIV (SvRV (sv)), VIDIOCGPICT, old_struct (sv, "Video::Capture::V4l::Picture")) == 0);
+ 
+ void
+ set(sv)
+ 	SV *	sv
+         CODE:
+-        XSRETURN_bool (ioctl (SvIV (SvRV (sv)), VIDIOCSPICT, old_struct (sv, "Video::Capture::V4l::Picture")) == 0);
++        XSRETURN_bool (v4l1_ioctl (SvIV (SvRV (sv)), VIDIOCSPICT, old_struct (sv, "Video::Capture::V4l::Picture")) == 0);
+ 
+ # accessors/mutators
+ INCLUDE: ./genacc |
 --- a/V4l/Makefile.PL
 +++ b/V4l/Makefile.PL
 @@ -8,5 +8,5 @@ if ($^O ne "linux") {




More information about the Pkg-perl-cvs-commits mailing list