The patch number 14258 was added via h...@rhel5-devel.localdomain
to http://linuxtv.org/hg/v4l-dvb master development tree.

Kernel patches in this development tree may be modified to be backward
compatible with older kernels. Compatibility modifications will be
removed before inclusion into the mainstream Kernel

If anyone has any objections, please let us know by sending a message to:
        Linux Media Mailing List <linux-me...@vger.kernel.org>

------

From: Theodore Kilgore  <kilg...@banach.math.auburn.edu>
libv4l: improve mr97310a decompression


Bring mr97310a decompression in line with the latest gphoto code, resulting
in a much better picure

Priority: normal

Signed-off-by: Theodore Kilgore <kilg...@banach.math.auburn.edu>
Signed-off-by: Hans de Goede <hdego...@redhat.com>


---

 v4l2-apps/libv4l/ChangeLog                |    5 +++++
 v4l2-apps/libv4l/libv4lconvert/mr97310a.c |   20 +++++++++++---------
 2 files changed, 16 insertions(+), 9 deletions(-)

diff -r 99b3a1697095 -r c07ce4df6d6c v4l2-apps/libv4l/ChangeLog
--- a/v4l2-apps/libv4l/ChangeLog        Thu Oct 15 14:47:03 2009 +0200
+++ b/v4l2-apps/libv4l/ChangeLog        Fri Oct 16 08:34:43 2009 +0200
@@ -1,3 +1,8 @@
+libv4l-0.6.3
+------------
+* Add more laptop models to the upside down devices table
+* Improved mr97310a decompression
+
 libv4l-0.6.2
 ------------
 * Add more laptop models to the upside down devices table
diff -r 99b3a1697095 -r c07ce4df6d6c v4l2-apps/libv4l/libv4lconvert/mr97310a.c
--- a/v4l2-apps/libv4l/libv4lconvert/mr97310a.c Thu Oct 15 14:47:03 2009 +0200
+++ b/v4l2-apps/libv4l/libv4lconvert/mr97310a.c Fri Oct 16 08:34:43 2009 +0200
@@ -55,19 +55,19 @@
                        len = 3;
                } else if ((i & 0xf0) == 0x80) {
                        /* code 1000 */
-                       val = +7;
+                       val = +8;
                        len = 4;
                } else if ((i & 0xf0) == 0x90) {
                        /* code 1001 */
-                       val = -7;
+                       val = -8;
                        len = 4;
                } else if ((i & 0xf0) == 0xf0) {
                        /* code 1111 */
-                       val = -15;
+                       val = -20;
                        len = 4;
                } else if ((i & 0xf8) == 0xe0) {
                        /* code 11100 */
-                       val = +15;
+                       val = +20;
                        len = 5;
                } else if ((i & 0xf8) == 0xe8) {
                        /* code 11101xxxxx */
@@ -152,14 +152,17 @@
                                } else if (col < 2) {
                                        /* left column: relative to top pixel */
                                        /* initial estimate */
-                                       val += (2*tp + 2*trp + 1)/4;
+                                       val += (tp + trp)/2;
                                } else if (col > width - 3) {
                                        /* left column: relative to top pixel */
-                                       val += (2*tp + 2*tlp + 1)/4;
-                               /* main area: average of left and top pixel */
+                                       val += (tp + lp + tlp + 1)/3;
+                               /* main area: weighted average of tlp, trp,
+                                * lp, and tp */
                                } else {
+                                       tlp>>=1;
+                                       trp>>=1;
                                        /* initial estimate for predictor */
-                                       val += (2*lp + tp + trp + 1)/4;
+                                       val += (lp + tp + tlp + trp + 1)/3;
                                }
                        }
                        /* store pixel */
@@ -167,6 +170,5 @@
                        ++col;
                }
        }
-
        return;
 }


---

Patch is available at: 
http://linuxtv.org/hg/v4l-dvb/rev/c07ce4df6d6c00b0f5248bfb912f5dbb6c8ef94a

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to