Hello community,

here is the log from the commit of package v4l-utils for openSUSE:Factory 
checked in at 2012-04-23 16:13:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/v4l-utils (Old)
 and      /work/SRC/openSUSE:Factory/.v4l-utils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "v4l-utils", Maintainer is ""

Changes:
--------
--- /work/SRC/openSUSE:Factory/v4l-utils/v4l-utils.changes      2012-04-17 
22:04:38.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.v4l-utils.new/v4l-utils.changes 2012-04-23 
16:13:59.000000000 +0200
@@ -1,0 +2,13 @@
+Sun Apr 22 17:15:15 UTC 2012 - asterios.dra...@gmail.com
+
+- Update to v0.8.8
+  Utils changes:
+  * dvb-format-convert: fix argument check and helper message
+  libv4l changes:
+  * tinyjpeg: Better luminance quantization table for Pixart JPEG
+  * tinyjpeg: Fix out of bounds array usage
+  * libv4lconvert: Use bytesperline instead of width
+  * libv4lconvert: Revert Lenovo X201 upside down table entry
+  * libv4lconver: Add 06f8:301b pac7302 based cam to the quirk table
+
+-------------------------------------------------------------------

Old:
----
  v4l-utils-0.8.7.tar.bz2

New:
----
  v4l-utils-0.8.8.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ v4l-utils.spec ++++++
--- /var/tmp/diff_new_pack.JvaS8e/_old  2012-04-23 16:14:00.000000000 +0200
+++ /var/tmp/diff_new_pack.JvaS8e/_new  2012-04-23 16:14:00.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           v4l-utils
-Version:        0.8.7
+Version:        0.8.8
 Release:        0
 Summary:        Utilities for video4linux and DVB devices
 License:        GPL-2.0+ and GPL-2.0

++++++ v4l-utils-0.8.7.tar.bz2 -> v4l-utils-0.8.8.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v4l-utils-0.8.7/ChangeLog 
new/v4l-utils-0.8.8/ChangeLog
--- old/v4l-utils-0.8.7/ChangeLog       2012-04-06 18:55:44.000000000 +0200
+++ new/v4l-utils-0.8.8/ChangeLog       2012-04-14 19:33:44.000000000 +0200
@@ -1,3 +1,14 @@
+v4l-utils-0.8.8
+---------------
+* Utils changes (0.9.x backports)
+  * dvb-format-convert: fix argument check and helper message
+* libv4l changes (0.9.x backports)
+  * tinyjpeg: Better luminance quantization table for Pixart JPEG 
(Jean-Francois Moine)
+  * tinyjpeg: Fix out of bounds array usage
+  * libv4lconvert: Use bytesperline instead of width (Robert Abel)
+  * libv4lconvert: Revert Lenovo X201 upside down table entry
+  * libv4lconver: Add 06f8:301b pac7302 based cam to the quirk table
+
 v4l-utils-0.8.7
 ---------------
 * Utils changes (0.9.x backports)
@@ -5,6 +16,7 @@
   * qv4l2: fix segfault when there are no inputs or outputs
   * dvb: Merged DVB tools from development branch
 * libv4l changes (0.9.x backports)
+  * Prevent GCC 4.7 inlining error
   * Add some more laptop models to the upside down devices table
 
 v4l-utils-0.8.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v4l-utils-0.8.7/Make.rules 
new/v4l-utils-0.8.8/Make.rules
--- old/v4l-utils-0.8.7/Make.rules      2012-04-06 18:55:44.000000000 +0200
+++ new/v4l-utils-0.8.8/Make.rules      2012-04-14 19:33:44.000000000 +0200
@@ -1,4 +1,4 @@
-V4L_UTILS_VERSION=0.8.7
+V4L_UTILS_VERSION=0.8.8
 
 # These ones can be overriden from the cmdline
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v4l-utils-0.8.7/README.lib 
new/v4l-utils-0.8.8/README.lib
--- old/v4l-utils-0.8.7/README.lib      2012-04-06 18:55:44.000000000 +0200
+++ new/v4l-utils-0.8.8/README.lib      2012-04-14 19:33:44.000000000 +0200
@@ -4,7 +4,7 @@
 libv4l is a collection of libraries which adds a thin abstraction layer on
 top of video4linux2 devices. The purpose of this (thin) layer is to make it
 easy for application writers to support a wide variety of devices without
-having to write seperate code for different devices in the same class.
+having to write separate code for different devices in the same class.
 
 All libv4l components are licensed under the GNU Lesser General Public
 License version 2 or (at your option) any later version.
@@ -121,7 +121,7 @@
 the bayer compression used by the spca561 and the (different) compression used
 by the pac207 and the (again different) compression used by the sn9c102. Adding
 support for all these formats should not be done at the application level, as
-then it needs to be written for each application seperately. Licensing issues
+then it needs to be written for each application separately. Licensing issues
 with the decompressors will then also become a problem as just cut and pasting
 from one application to another is bound to hit license incompatibilities.
 
@@ -156,14 +156,14 @@
    combined with libv4lconvert?
 A: libv4l2 is mainly meant for quickly and easily adding support for more
 pixelformats to existing v4l2 applications. So if you feel better directly
-accessing the device in combination with libv4lconvert thats fine too.
+accessing the device in combination with libv4lconvert that's fine too.
 
 Notice that libv4l2 also does emulation of the read() call on devices which
 do not support it in the driver. In the background this uses mmap buffers
 (even on devices which do support the read call). This mmap gives libv4lconvert
 zero-copy access to the captured frame, and then it can write the converted
 data directly to the buffer the application provided to v4l2_read(). Thus
-another reason to use liv4l2 is to get the no memcpy advantage of the mmap
+another reason to use libv4l2 is to get the no memcpy advantage of the mmap
 capture method combined with the simplicity of making a simple read() call.
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v4l-utils-0.8.7/README.lib-multi-threading 
new/v4l-utils-0.8.8/README.lib-multi-threading
--- old/v4l-utils-0.8.7/README.lib-multi-threading      2012-04-06 
18:55:44.000000000 +0200
+++ new/v4l-utils-0.8.8/README.lib-multi-threading      2012-04-14 
19:33:44.000000000 +0200
@@ -1,7 +1,7 @@
 libv4lconvert is not safe for using one convert instance as returned by
 v4lconvert_create from multiple threads, if you want to use one v4lconvert
 instance from multiple threads you must provide your own locking and make
-sure no simultanious calls are made.
+sure no simultaneous calls are made.
 
 libv4l1 and libv4l2 are safe for multithread use *under* *the* *following*
 *conditions* :
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v4l-utils-0.8.7/lib/libv4lconvert/bayer.c 
new/v4l-utils-0.8.8/lib/libv4lconvert/bayer.c
--- old/v4l-utils-0.8.7/lib/libv4lconvert/bayer.c       2012-04-06 
18:55:44.000000000 +0200
+++ new/v4l-utils-0.8.8/lib/libv4lconvert/bayer.c       2012-04-14 
19:33:44.000000000 +0200
@@ -44,7 +44,7 @@
 /* inspired by OpenCV's Bayer decoding */
 static void v4lconvert_border_bayer_line_to_bgr24(
                const unsigned char *bayer, const unsigned char *adjacent_bayer,
-               unsigned char *bgr, int width, int start_with_green, int 
blue_line)
+               unsigned char *bgr, int width, const int start_with_green, 
const int blue_line)
 {
        int t0, t1;
 
@@ -164,11 +164,11 @@
 
 /* From libdc1394, which on turn was based on OpenCV's Bayer decoding */
 static void bayer_to_rgbbgr24(const unsigned char *bayer,
-               unsigned char *bgr, int width, int height, unsigned int pixfmt,
+               unsigned char *bgr, int width, int height, const unsigned int 
stride, unsigned int pixfmt,
                int start_with_green, int blue_line)
 {
        /* render the first line */
-       v4lconvert_border_bayer_line_to_bgr24(bayer, bayer + width, bgr, width,
+       v4lconvert_border_bayer_line_to_bgr24(bayer, bayer + stride, bgr, width,
                        start_with_green, blue_line);
        bgr += width * 3;
 
@@ -179,139 +179,141 @@
                const unsigned char *bayer_end = bayer + (width - 2);
 
                if (start_with_green) {
-                       /* OpenCV has a bug in the next line, which was
-                          t0 = (bayer[0] + bayer[width * 2] + 1) >> 1; */
-                       t0 = (bayer[1] + bayer[width * 2 + 1] + 1) >> 1;
+
+                       t0 = (bayer[1] + bayer[stride * 2 + 1] + 1) >> 1;
                        /* Write first pixel */
-                       t1 = (bayer[0] + bayer[width * 2] + bayer[width + 1] + 
1) / 3;
+                       t1 = (bayer[0] + bayer[stride * 2] + bayer[stride + 1] 
+ 1) / 3;
                        if (blue_line) {
                                *bgr++ = t0;
                                *bgr++ = t1;
-                               *bgr++ = bayer[width];
+                               *bgr++ = bayer[stride];
                        } else {
-                               *bgr++ = bayer[width];
+                               *bgr++ = bayer[stride];
                                *bgr++ = t1;
                                *bgr++ = t0;
                        }
 
                        /* Write second pixel */
-                       t1 = (bayer[width] + bayer[width + 2] + 1) >> 1;
+                       t1 = (bayer[stride] + bayer[stride + 2] + 1) >> 1;
                        if (blue_line) {
                                *bgr++ = t0;
-                               *bgr++ = bayer[width + 1];
+                               *bgr++ = bayer[stride + 1];
                                *bgr++ = t1;
                        } else {
                                *bgr++ = t1;
-                               *bgr++ = bayer[width + 1];
+                               *bgr++ = bayer[stride + 1];
                                *bgr++ = t0;
                        }
                        bayer++;
                } else {
                        /* Write first pixel */
-                       t0 = (bayer[0] + bayer[width * 2] + 1) >> 1;
+                       t0 = (bayer[0] + bayer[stride * 2] + 1) >> 1;
                        if (blue_line) {
                                *bgr++ = t0;
-                               *bgr++ = bayer[width];
-                               *bgr++ = bayer[width + 1];
+                               *bgr++ = bayer[stride];
+                               *bgr++ = bayer[stride + 1];
                        } else {
-                               *bgr++ = bayer[width + 1];
-                               *bgr++ = bayer[width];
+                               *bgr++ = bayer[stride + 1];
+                               *bgr++ = bayer[stride];
                                *bgr++ = t0;
                        }
                }
 
                if (blue_line) {
                        for (; bayer <= bayer_end - 2; bayer += 2) {
-                               t0 = (bayer[0] + bayer[2] + bayer[width * 2] +
-                                       bayer[width * 2 + 2] + 2) >> 2;
-                               t1 = (bayer[1] + bayer[width] + bayer[width + 
2] +
-                                       bayer[width * 2 + 1] + 2) >> 2;
+                               t0 = (bayer[0] + bayer[2] + bayer[stride * 2] +
+                                       bayer[stride * 2 + 2] + 2) >> 2;
+                               t1 = (bayer[1] + bayer[stride] + bayer[stride + 
2] +
+                                       bayer[stride * 2 + 1] + 2) >> 2;
                                *bgr++ = t0;
                                *bgr++ = t1;
-                               *bgr++ = bayer[width + 1];
+                               *bgr++ = bayer[stride + 1];
 
-                               t0 = (bayer[2] + bayer[width * 2 + 2] + 1) >> 1;
-                               t1 = (bayer[width + 1] + bayer[width + 3] + 1) 
>> 1;
+                               t0 = (bayer[2] + bayer[stride * 2 + 2] + 1) >> 
1;
+                               t1 = (bayer[stride + 1] + bayer[stride + 3] + 
1) >> 1;
                                *bgr++ = t0;
-                               *bgr++ = bayer[width + 2];
+                               *bgr++ = bayer[stride + 2];
                                *bgr++ = t1;
                        }
                } else {
                        for (; bayer <= bayer_end - 2; bayer += 2) {
-                               t0 = (bayer[0] + bayer[2] + bayer[width * 2] +
-                                       bayer[width * 2 + 2] + 2) >> 2;
-                               t1 = (bayer[1] + bayer[width] + bayer[width + 
2] +
-                                       bayer[width * 2 + 1] + 2) >> 2;
-                               *bgr++ = bayer[width + 1];
+                               t0 = (bayer[0] + bayer[2] + bayer[stride * 2] +
+                                       bayer[stride * 2 + 2] + 2) >> 2;
+                               t1 = (bayer[1] + bayer[stride] + bayer[stride + 
2] +
+                                       bayer[stride * 2 + 1] + 2) >> 2;
+                               *bgr++ = bayer[stride + 1];
                                *bgr++ = t1;
                                *bgr++ = t0;
 
-                               t0 = (bayer[2] + bayer[width * 2 + 2] + 1) >> 1;
-                               t1 = (bayer[width + 1] + bayer[width + 3] + 1) 
>> 1;
+                               t0 = (bayer[2] + bayer[stride * 2 + 2] + 1) >> 
1;
+                               t1 = (bayer[stride + 1] + bayer[stride + 3] + 
1) >> 1;
                                *bgr++ = t1;
-                               *bgr++ = bayer[width + 2];
+                               *bgr++ = bayer[stride + 2];
                                *bgr++ = t0;
                        }
                }
 
                if (bayer < bayer_end) {
                        /* write second to last pixel */
-                       t0 = (bayer[0] + bayer[2] + bayer[width * 2] +
-                               bayer[width * 2 + 2] + 2) >> 2;
-                       t1 = (bayer[1] + bayer[width] + bayer[width + 2] +
-                               bayer[width * 2 + 1] + 2) >> 2;
+                       t0 = (bayer[0] + bayer[2] + bayer[stride * 2] +
+                               bayer[stride * 2 + 2] + 2) >> 2;
+                       t1 = (bayer[1] + bayer[stride] + bayer[stride + 2] +
+                               bayer[stride * 2 + 1] + 2) >> 2;
                        if (blue_line) {
                                *bgr++ = t0;
                                *bgr++ = t1;
-                               *bgr++ = bayer[width + 1];
+                               *bgr++ = bayer[stride + 1];
                        } else {
-                               *bgr++ = bayer[width + 1];
+                               *bgr++ = bayer[stride + 1];
                                *bgr++ = t1;
                                *bgr++ = t0;
                        }
                        /* write last pixel */
-                       t0 = (bayer[2] + bayer[width * 2 + 2] + 1) >> 1;
+                       t0 = (bayer[2] + bayer[stride * 2 + 2] + 1) >> 1;
                        if (blue_line) {
                                *bgr++ = t0;
-                               *bgr++ = bayer[width + 2];
-                               *bgr++ = bayer[width + 1];
+                               *bgr++ = bayer[stride + 2];
+                               *bgr++ = bayer[stride + 1];
                        } else {
-                               *bgr++ = bayer[width + 1];
-                               *bgr++ = bayer[width + 2];
+                               *bgr++ = bayer[stride + 1];
+                               *bgr++ = bayer[stride + 2];
                                *bgr++ = t0;
                        }
+
                        bayer++;
+
                } else {
                        /* write last pixel */
-                       t0 = (bayer[0] + bayer[width * 2] + 1) >> 1;
-                       t1 = (bayer[1] + bayer[width * 2 + 1] + bayer[width] + 
1) / 3;
+                       t0 = (bayer[0] + bayer[stride * 2] + 1) >> 1;
+                       t1 = (bayer[1] + bayer[stride * 2 + 1] + bayer[stride] 
+ 1) / 3;
                        if (blue_line) {
                                *bgr++ = t0;
                                *bgr++ = t1;
-                               *bgr++ = bayer[width + 1];
+                               *bgr++ = bayer[stride + 1];
                        } else {
-                               *bgr++ = bayer[width + 1];
+                               *bgr++ = bayer[stride + 1];
                                *bgr++ = t1;
                                *bgr++ = t0;
                        }
+
                }
 
-               /* skip 2 border pixels */
-               bayer += 2;
+               /* skip 2 border pixels and padding */
+               bayer += (stride - width) + 2;
 
                blue_line = !blue_line;
                start_with_green = !start_with_green;
        }
 
        /* render the last line */
-       v4lconvert_border_bayer_line_to_bgr24(bayer + width, bayer, bgr, width,
+       v4lconvert_border_bayer_line_to_bgr24(bayer + stride, bayer, bgr, width,
                        !start_with_green, !blue_line);
 }
 
 void v4lconvert_bayer_to_rgb24(const unsigned char *bayer,
-               unsigned char *bgr, int width, int height, unsigned int pixfmt)
+               unsigned char *bgr, int width, int height, const unsigned int 
stride, unsigned int pixfmt)
 {
-       bayer_to_rgbbgr24(bayer, bgr, width, height, pixfmt,
+       bayer_to_rgbbgr24(bayer, bgr, width, height, stride, pixfmt,
                        pixfmt == V4L2_PIX_FMT_SGBRG8           /* start with 
green */
                        || pixfmt == V4L2_PIX_FMT_SGRBG8,
                        pixfmt != V4L2_PIX_FMT_SBGGR8           /* blue line */
@@ -319,9 +321,9 @@
 }
 
 void v4lconvert_bayer_to_bgr24(const unsigned char *bayer,
-               unsigned char *bgr, int width, int height, unsigned int pixfmt)
+               unsigned char *bgr, int width, int height, const unsigned int 
stride, unsigned int pixfmt)
 {
-       bayer_to_rgbbgr24(bayer, bgr, width, height, pixfmt,
+       bayer_to_rgbbgr24(bayer, bgr, width, height, stride, pixfmt,
                        pixfmt == V4L2_PIX_FMT_SGBRG8           /* start with 
green */
                        || pixfmt == V4L2_PIX_FMT_SGRBG8,
                        pixfmt == V4L2_PIX_FMT_SBGGR8           /* blue line */
@@ -428,7 +430,7 @@
 }
 
 void v4lconvert_bayer_to_yuv420(const unsigned char *bayer, unsigned char *yuv,
-               int width, int height, unsigned int src_pixfmt, int yvu)
+               int width, int height, const unsigned int stride, unsigned int 
src_pixfmt, int yvu)
 {
        int blue_line = 0, start_with_green = 0, x, y;
        unsigned char *ydst = yuv;
@@ -451,12 +453,12 @@
 
                                b  = bayer[x];
                                g  = bayer[x + 1];
-                               g += bayer[x + width];
-                               r  = bayer[x + width + 1];
+                               g += bayer[x + stride];
+                               r  = bayer[x + stride + 1];
                                *udst++ = (-4878 * r - 4789 * g + 14456 * b + 
4210688) >> 15;
                                *vdst++ = (14456 * r - 6052 * g -  2351 * b + 
4210688) >> 15;
                        }
-                       bayer += 2 * width;
+                       bayer += 2 * stride;
                }
                blue_line = 1;
                break;
@@ -468,12 +470,12 @@
 
                                r  = bayer[x];
                                g  = bayer[x + 1];
-                               g += bayer[x + width];
-                               b  = bayer[x + width + 1];
+                               g += bayer[x + stride];
+                               b  = bayer[x + stride + 1];
                                *udst++ = (-4878 * r - 4789 * g + 14456 * b + 
4210688) >> 15;
                                *vdst++ = (14456 * r - 6052 * g -  2351 * b + 
4210688) >> 15;
                        }
-                       bayer += 2 * width;
+                       bayer += 2 * stride;
                }
                break;
 
@@ -484,12 +486,12 @@
 
                                g  = bayer[x];
                                b  = bayer[x + 1];
-                               r  = bayer[x + width];
-                               g += bayer[x + width + 1];
+                               r  = bayer[x + stride];
+                               g += bayer[x + stride + 1];
                                *udst++ = (-4878 * r - 4789 * g + 14456 * b + 
4210688) >> 15;
                                *vdst++ = (14456 * r - 6052 * g -  2351 * b + 
4210688) >> 15;
                        }
-                       bayer += 2 * width;
+                       bayer += 2 * stride;
                }
                blue_line = 1;
                start_with_green = 1;
@@ -502,21 +504,22 @@
 
                                g  = bayer[x];
                                r  = bayer[x + 1];
-                               b  = bayer[x + width];
-                               g += bayer[x + width + 1];
+                               b  = bayer[x + stride];
+                               g += bayer[x + stride + 1];
                                *udst++ = (-4878 * r - 4789 * g + 14456 * b + 
4210688) >> 15;
                                *vdst++ = (14456 * r - 6052 * g -  2351 * b + 
4210688) >> 15;
                        }
-                       bayer += 2 * width;
+                       bayer += 2 * stride;
                }
                start_with_green = 1;
                break;
        }
 
-       bayer -= width * height;
+       /* Point bayer back to start of frame */
+       bayer -= stride * height;
 
        /* render the first line */
-       v4lconvert_border_bayer_line_to_y(bayer, bayer + width, ydst, width,
+       v4lconvert_border_bayer_line_to_y(bayer, bayer + stride, ydst, width,
                        start_with_green, blue_line);
        ydst += width;
 
@@ -527,104 +530,104 @@
                const unsigned char *bayer_end = bayer + (width - 2);
 
                if (start_with_green) {
-                       t0 = bayer[1] + bayer[width * 2 + 1];
+                       t0 = bayer[1] + bayer[stride * 2 + 1];
                        /* Write first pixel */
-                       t1 = bayer[0] + bayer[width * 2] + bayer[width + 1];
+                       t1 = bayer[0] + bayer[stride * 2] + bayer[stride + 1];
                        if (blue_line)
-                               *ydst++ = (8453 * bayer[width] + 5516 * t1 +
+                               *ydst++ = (8453 * bayer[stride] + 5516 * t1 +
                                                1661 * t0 + 524288) >> 15;
                        else
                                *ydst++ = (4226 * t0 + 5516 * t1 +
-                                               3223 * bayer[width] + 524288) 
>> 15;
+                                               3223 * bayer[stride] + 524288) 
>> 15;
 
                        /* Write second pixel */
-                       t1 = bayer[width] + bayer[width + 2];
+                       t1 = bayer[stride] + bayer[stride + 2];
                        if (blue_line)
-                               *ydst++ = (4226 * t1 + 16594 * bayer[width + 1] 
+
+                               *ydst++ = (4226 * t1 + 16594 * bayer[stride + 
1] +
                                                1611 * t0 + 524288) >> 15;
                        else
-                               *ydst++ = (4226 * t0 + 16594 * bayer[width + 1] 
+
+                               *ydst++ = (4226 * t0 + 16594 * bayer[stride + 
1] +
                                                1611 * t1 + 524288) >> 15;
                        bayer++;
                } else {
                        /* Write first pixel */
-                       t0 = bayer[0] + bayer[width * 2];
+                       t0 = bayer[0] + bayer[stride * 2];
                        if (blue_line) {
-                               *ydst++ = (8453 * bayer[width + 1] + 16594 * 
bayer[width] +
+                               *ydst++ = (8453 * bayer[stride + 1] + 16594 * 
bayer[stride] +
                                                1661 * t0 + 524288) >> 15;
                        } else {
-                               *ydst++ = (4226 * t0 + 16594 * bayer[width] +
-                                               3223 * bayer[width + 1] + 
524288) >> 15;
+                               *ydst++ = (4226 * t0 + 16594 * bayer[stride] +
+                                               3223 * bayer[stride + 1] + 
524288) >> 15;
                        }
                }
 
                if (blue_line) {
                        for (; bayer <= bayer_end - 2; bayer += 2) {
-                               t0 = bayer[0] + bayer[2] + bayer[width * 2] + 
bayer[width * 2 + 2];
-                               t1 = bayer[1] + bayer[width] + bayer[width + 2] 
+ bayer[width * 2 + 1];
-                               *ydst++ = (8453 * bayer[width + 1] + 4148 * t1 +
+                               t0 = bayer[0] + bayer[2] + bayer[stride * 2] + 
bayer[stride * 2 + 2];
+                               t1 = bayer[1] + bayer[stride] + bayer[stride + 
2] + bayer[stride * 2 + 1];
+                               *ydst++ = (8453 * bayer[stride + 1] + 4148 * t1 
+
                                                806 * t0 + 524288) >> 15;
 
-                               t0 = bayer[2] + bayer[width * 2 + 2];
-                               t1 = bayer[width + 1] + bayer[width + 3];
-                               *ydst++ = (4226 * t1 + 16594 * bayer[width + 2] 
+
+                               t0 = bayer[2] + bayer[stride * 2 + 2];
+                               t1 = bayer[stride + 1] + bayer[stride + 3];
+                               *ydst++ = (4226 * t1 + 16594 * bayer[stride + 
2] +
                                                1611 * t0 + 524288) >> 15;
                        }
                } else {
                        for (; bayer <= bayer_end - 2; bayer += 2) {
-                               t0 = bayer[0] + bayer[2] + bayer[width * 2] + 
bayer[width * 2 + 2];
-                               t1 = bayer[1] + bayer[width] + bayer[width + 2] 
+ bayer[width * 2 + 1];
+                               t0 = bayer[0] + bayer[2] + bayer[stride * 2] + 
bayer[stride * 2 + 2];
+                               t1 = bayer[1] + bayer[stride] + bayer[stride + 
2] + bayer[stride * 2 + 1];
                                *ydst++ = (2113 * t0 + 4148 * t1 +
-                                               3223 * bayer[width + 1] + 
524288) >> 15;
+                                               3223 * bayer[stride + 1] + 
524288) >> 15;
 
-                               t0 = bayer[2] + bayer[width * 2 + 2];
-                               t1 = bayer[width + 1] + bayer[width + 3];
-                               *ydst++ = (4226 * t0 + 16594 * bayer[width + 2] 
+
+                               t0 = bayer[2] + bayer[stride * 2 + 2];
+                               t1 = bayer[stride + 1] + bayer[stride + 3];
+                               *ydst++ = (4226 * t0 + 16594 * bayer[stride + 
2] +
                                                1611 * t1 + 524288) >> 15;
                        }
                }
 
                if (bayer < bayer_end) {
                        /* Write second to last pixel */
-                       t0 = bayer[0] + bayer[2] + bayer[width * 2] + 
bayer[width * 2 + 2];
-                       t1 = bayer[1] + bayer[width] + bayer[width + 2] + 
bayer[width * 2 + 1];
+                       t0 = bayer[0] + bayer[2] + bayer[stride * 2] + 
bayer[stride * 2 + 2];
+                       t1 = bayer[1] + bayer[stride] + bayer[stride + 2] + 
bayer[stride * 2 + 1];
                        if (blue_line)
-                               *ydst++ = (8453 * bayer[width + 1] + 4148 * t1 +
+                               *ydst++ = (8453 * bayer[stride + 1] + 4148 * t1 
+
                                                806 * t0 + 524288) >> 15;
                        else
                                *ydst++ = (2113 * t0 + 4148 * t1 +
-                                               3223 * bayer[width + 1] + 
524288) >> 15;
+                                               3223 * bayer[stride + 1] + 
524288) >> 15;
 
                        /* write last pixel */
-                       t0 = bayer[2] + bayer[width * 2 + 2];
+                       t0 = bayer[2] + bayer[stride * 2 + 2];
                        if (blue_line) {
-                               *ydst++ = (8453 * bayer[width + 1] + 16594 * 
bayer[width + 2] +
+                               *ydst++ = (8453 * bayer[stride + 1] + 16594 * 
bayer[stride + 2] +
                                                1661 * t0 + 524288) >> 15;
                        } else {
-                               *ydst++ = (4226 * t0 + 16594 * bayer[width + 2] 
+
-                                               3223 * bayer[width + 1] + 
524288) >> 15;
+                               *ydst++ = (4226 * t0 + 16594 * bayer[stride + 
2] +
+                                               3223 * bayer[stride + 1] + 
524288) >> 15;
                        }
                        bayer++;
                } else {
                        /* write last pixel */
-                       t0 = bayer[0] + bayer[width * 2];
-                       t1 = bayer[1] + bayer[width * 2 + 1] + bayer[width];
+                       t0 = bayer[0] + bayer[stride * 2];
+                       t1 = bayer[1] + bayer[stride * 2 + 1] + bayer[stride];
                        if (blue_line)
-                               *ydst++ = (8453 * bayer[width + 1] + 5516 * t1 +
+                               *ydst++ = (8453 * bayer[stride + 1] + 5516 * t1 
+
                                                1661 * t0 + 524288) >> 15;
                        else
                                *ydst++ = (4226 * t0 + 5516 * t1 +
-                                               3223 * bayer[width + 1] + 
524288) >> 15;
+                                               3223 * bayer[stride + 1] + 
524288) >> 15;
                }
 
-               /* skip 2 border pixels */
-               bayer += 2;
+               /* skip 2 border pixels and padding */
+               bayer += (stride - width) + 2;
 
                blue_line = !blue_line;
                start_with_green = !start_with_green;
        }
 
        /* render the last line */
-       v4lconvert_border_bayer_line_to_y(bayer + width, bayer, ydst, width,
+       v4lconvert_border_bayer_line_to_y(bayer + stride, bayer, ydst, width,
                        !start_with_green, !blue_line);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/v4l-utils-0.8.7/lib/libv4lconvert/control/libv4lcontrol.c 
new/v4l-utils-0.8.8/lib/libv4lconvert/control/libv4lcontrol.c
--- old/v4l-utils-0.8.7/lib/libv4lconvert/control/libv4lcontrol.c       
2012-04-06 18:55:44.000000000 +0200
+++ new/v4l-utils-0.8.8/lib/libv4lconvert/control/libv4lcontrol.c       
2012-04-14 19:33:44.000000000 +0200
@@ -161,9 +161,10 @@
        { 0x17ef, 0x480c, 0, "LENOVO", "7449C8G",
                V4LCONTROL_HFLIPPED | V4LCONTROL_VFLIPPED, 0, NULL, NULL, NULL,
                "ThinkPad X200 Tablet" },
+       /* Disabled due to http://bugs.debian.org/667958
        { 0x17ef, 0x4816, 0, "LENOVO", "0831CTO",
                V4LCONTROL_HFLIPPED | V4LCONTROL_VFLIPPED, 0, NULL, NULL, NULL,
-               "ThinkPad X201 Tablet" },
+               "ThinkPad X201 Tablet" }, */
        { 0x5986, 0x0200, 0, "LENOVO", "SPEEDY    ",
                V4LCONTROL_HFLIPPED | V4LCONTROL_VFLIPPED, 0, NULL, NULL, NULL,
                "Lenovo IdeaPad Y510" },
@@ -203,6 +204,8 @@
                V4LCONTROL_ROTATED_90_JPEG | V4LCONTROL_WANTS_WB, 1500 },
        { 0x06f8, 0x3009, 0,    NULL, NULL,
                V4LCONTROL_ROTATED_90_JPEG | V4LCONTROL_WANTS_WB, 1500 },
+       { 0x06f8, 0x301b, 0,    NULL, NULL,
+               V4LCONTROL_ROTATED_90_JPEG | V4LCONTROL_WANTS_WB, 1500 },
        { 0x145f, 0x013c, 0,    NULL, NULL,
                V4LCONTROL_ROTATED_90_JPEG | V4LCONTROL_WANTS_WB, 1500 },
        /* Pac7311 based devices */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/v4l-utils-0.8.7/lib/libv4lconvert/libv4lconvert-priv.h 
new/v4l-utils-0.8.8/lib/libv4lconvert/libv4lconvert-priv.h
--- old/v4l-utils-0.8.7/lib/libv4lconvert/libv4lconvert-priv.h  2012-04-06 
18:55:44.000000000 +0200
+++ new/v4l-utils-0.8.8/lib/libv4lconvert/libv4lconvert-priv.h  2012-04-14 
19:33:44.000000000 +0200
@@ -230,13 +230,13 @@
                int width, int height);
 
 void v4lconvert_bayer_to_rgb24(const unsigned char *bayer,
-               unsigned char *rgb, int width, int height, unsigned int pixfmt);
+               unsigned char *rgb, int width, int height, const unsigned int 
stride, unsigned int pixfmt);
 
 void v4lconvert_bayer_to_bgr24(const unsigned char *bayer,
-               unsigned char *rgb, int width, int height, unsigned int pixfmt);
+               unsigned char *rgb, int width, int height, const unsigned int 
stride, unsigned int pixfmt);
 
 void v4lconvert_bayer_to_yuv420(const unsigned char *bayer, unsigned char *yuv,
-               int width, int height, unsigned int src_pixfmt, int yvu);
+               int width, int height, const unsigned int stride, unsigned int 
src_pixfmt, int yvu);
 
 void v4lconvert_hm12_to_rgb24(const unsigned char *src,
                unsigned char *dst, int width, int height);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v4l-utils-0.8.7/lib/libv4lconvert/libv4lconvert.c 
new/v4l-utils-0.8.8/lib/libv4lconvert/libv4lconvert.c
--- old/v4l-utils-0.8.7/lib/libv4lconvert/libv4lconvert.c       2012-04-06 
18:55:44.000000000 +0200
+++ new/v4l-utils-0.8.8/lib/libv4lconvert/libv4lconvert.c       2012-04-14 
19:33:44.000000000 +0200
@@ -629,6 +629,7 @@
        unsigned int src_pix_fmt = fmt->fmt.pix.pixelformat;
        unsigned int width  = fmt->fmt.pix.width;
        unsigned int height = fmt->fmt.pix.height;
+       unsigned int bytesperline = fmt->fmt.pix.bytesperline;
 
        switch (src_pix_fmt) {
        /* JPG and variants */
@@ -858,16 +859,16 @@
        case V4L2_PIX_FMT_SRGGB8:
                switch (dest_pix_fmt) {
                case V4L2_PIX_FMT_RGB24:
-                       v4lconvert_bayer_to_rgb24(src, dest, width, height, 
src_pix_fmt);
+                       v4lconvert_bayer_to_rgb24(src, dest, width, height, 
bytesperline, src_pix_fmt);
                        break;
                case V4L2_PIX_FMT_BGR24:
-                       v4lconvert_bayer_to_bgr24(src, dest, width, height, 
src_pix_fmt);
+                       v4lconvert_bayer_to_bgr24(src, dest, width, height, 
bytesperline, src_pix_fmt);
                        break;
                case V4L2_PIX_FMT_YUV420:
-                       v4lconvert_bayer_to_yuv420(src, dest, width, height, 
src_pix_fmt, 0);
+                       v4lconvert_bayer_to_yuv420(src, dest, width, height, 
bytesperline, src_pix_fmt, 0);
                        break;
                case V4L2_PIX_FMT_YVU420:
-                       v4lconvert_bayer_to_yuv420(src, dest, width, height, 
src_pix_fmt, 1);
+                       v4lconvert_bayer_to_yuv420(src, dest, width, height, 
bytesperline, src_pix_fmt, 1);
                        break;
                }
                if (src_size < (width * height)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v4l-utils-0.8.7/lib/libv4lconvert/tinyjpeg.c 
new/v4l-utils-0.8.8/lib/libv4lconvert/tinyjpeg.c
--- old/v4l-utils-0.8.7/lib/libv4lconvert/tinyjpeg.c    2012-04-06 
18:55:44.000000000 +0200
+++ new/v4l-utils-0.8.8/lib/libv4lconvert/tinyjpeg.c    2012-04-14 
19:33:44.000000000 +0200
@@ -206,14 +206,14 @@
 };
 
 const unsigned char pixart_quantization[][64] = { {
-               0x07, 0x07, 0x08, 0x0a, 0x09, 0x07, 0x0d, 0x0b,
-               0x0c, 0x0d, 0x11, 0x10, 0x0f, 0x12, 0x17, 0x27,
-               0x1a, 0x18, 0x16, 0x16, 0x18, 0x31, 0x23, 0x25,
-               0x1d, 0x28, 0x3a, 0x33, 0x3d, 0x3c, 0x39, 0x33,
-               0x38, 0x37, 0x40, 0x48, 0x5c, 0x4e, 0x40, 0x44,
-               0x57, 0x45, 0x37, 0x38, 0x50, 0x6d, 0x51, 0x57,
-               0x5f, 0x62, 0x67, 0x68, 0x67, 0x3e, 0x4d, 0x71,
-               0x79, 0x70, 0x64, 0x78, 0x5c, 0x65, 0x67, 0x63,
+               0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10,
+               0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
+               0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
+               0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20,
+               0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+               0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40,
+               0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+               0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
        },
        {
                0x11, 0x12, 0x12, 0x18, 0x15, 0x18, 0x2f, 0x1a,
@@ -2556,7 +2556,7 @@
 {
        int i;
 
-       for (i = 0; priv->components[i] && i < COMPONENTS; i++)
+       for (i = 0; i < COMPONENTS && priv->components[i]; i++)
                components[i] = priv->components[i];
        return 0;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v4l-utils-0.8.7/utils/dvb/dvb-format-convert.c 
new/v4l-utils-0.8.8/utils/dvb/dvb-format-convert.c
--- old/v4l-utils-0.8.7/utils/dvb/dvb-format-convert.c  2012-04-06 
18:55:44.000000000 +0200
+++ new/v4l-utils-0.8.8/utils/dvb/dvb-format-convert.c  2012-04-14 
19:33:44.000000000 +0200
@@ -99,7 +99,7 @@
                .options = options,
                .parser = parse_opt,
                .doc = "scan DVB services using the channel file",
-               .args_doc = "<initial file>",
+               .args_doc = "<input file> <output file>",
        };
 
        memset(&args, 0, sizeof(args));
@@ -113,7 +113,7 @@
        if (args.input_format == FILE_UNKNOWN) {
                fprintf(stderr, "ERROR: Please specify a valid input format\n");
                missing = 1;
-       } else if (!args.output_file) {
+       } else if (!args.input_file) {
                fprintf(stderr, "ERROR: Please specify a valid input file\n");
                missing = 1;
        } else if (args.output_format == FILE_UNKNOWN) {

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to