slomo gst-plugins-bad: gst-plugins-bad/ gst-plugins-bad/gst/bayer/

[email protected] Mon, 5 Jan 2009 04:34:32 -0800 (PST)
Newsgroups gmane.comp.video.gstreamer.cvs
Message-ID <[email protected]>
--===============3761226481386422027==

CVS Root:       /cvs/gstreamer
Module:         gst-plugins-bad
Changes by:     slomo
Date:           Mon Jan 05 2009  12:34:32 UTC

Log message:
Patch by: Sascha Hauer <s dot hauer at pengutronix dot de>
Luotao Fu <l dot fu at pengutronix dot de>
* gst/bayer/gstbayer2rgb.c: (get_pix_offset),
(gst_bayer2rgb_set_caps):
Fix color offset calculation for 24bpp. Fixes bug #566613.

Modified files:
    .               : ChangeLog
    gst/bayer       : gstbayer2rgb.c

Links:
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/ChangeLog.diff?r1=1.3855&r2=1.3856
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/gst/bayer/gstbayer2rgb.c.diff?r1=1.6&r2=1.7

====Begin Diffs====
Index: ChangeLog
===================================================================
RCS file: /cvs/gstreamer/gst-plugins-bad/ChangeLog,v
retrieving revision 1.3855
retrieving revision 1.3856
diff -u -d -r1.3855 -r1.3856
--- ChangeLog	5 Jan 2009 11:28:47 -0000	1.3855
+++ ChangeLog	5 Jan 2009 12:34:17 -0000	1.3856
@@ -1,5 +1,14 @@
 2009-01-05  Sebastian Dröge  <[email protected]>
 
+	Patch by: Sascha Hauer <s dot hauer at pengutronix dot de>
+	          Luotao Fu <l dot fu at pengutronix dot de>
+
+	* gst/bayer/gstbayer2rgb.c: (get_pix_offset),
+	(gst_bayer2rgb_set_caps):
+	Fix color offset calculation for 24bpp. Fixes bug #566613.
+2009-01-05  Sebastian Dröge  <[email protected]>
 	Patch by: vanista <vanista at gmail dot com>
 	* gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream):
Index: gstbayer2rgb.c
RCS file: /cvs/gstreamer/gst-plugins-bad/gst/bayer/gstbayer2rgb.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- gstbayer2rgb.c	12 Jun 2008 14:49:15 -0000	1.6
+++ gstbayer2rgb.c	5 Jan 2009 12:34:18 -0000	1.7
@@ -231,19 +231,21 @@
 /* Routine to convert colormask value into relative byte offset */
 static int
-get_pix_offset (int offset)
+get_pix_offset (int mask, int bpp)
 {
-  switch (offset) {
+  int bpp32 = (bpp / 8) - 3;
+  switch (mask) {
     case 255:
-      return 3;
+      return 2 + bpp32;
     case 65280:
-      return 2;
+      return 1 + bpp32;
     case 16711680:
-      return 1;
+      return 0 + bpp32;
     case -16777216:
       return 0;
     default:
-      GST_ERROR ("Invalid color mask 0x%08x", offset);
+      GST_ERROR ("Invalid color mask 0x%08x", mask);
       return -1;
   }
 }
@@ -254,7 +256,7 @@
   GstBayer2RGB *filter = GST_BAYER2RGB (base);
   GstStructure *structure;
-  int val;
+  int val, bpp;
   GST_DEBUG ("in caps %" GST_PTR_FORMAT " out caps %" GST_PTR_FORMAT, incaps,
       outcaps);
@@ -267,14 +269,14 @@
   /* To cater for different RGB formats, we need to set params for later */
   structure = gst_caps_get_structure (outcaps, 0);
-  gst_structure_get_int (structure, "bpp", &val);
-  filter->pixsize = val / 8;
+  gst_structure_get_int (structure, "bpp", &bpp);
+  filter->pixsize = bpp / 8;
   gst_structure_get_int (structure, "red_mask", &val);
-  filter->r_off = get_pix_offset (val);
+  filter->r_off = get_pix_offset (val, bpp);
   gst_structure_get_int (structure, "green_mask", &val);
-  filter->g_off = get_pix_offset (val);
+  filter->g_off = get_pix_offset (val, bpp);
   gst_structure_get_int (structure, "blue_mask", &val);
-  filter->b_off = get_pix_offset (val);
+  filter->b_off = get_pix_offset (val, bpp);
   return TRUE;
@@ -516,6 +518,7 @@
       break;
 static void
 do_corners (uint8_t * input, uint8_t * output, GstBayer2RGB * filter)


--===============3761226481386422027==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------

--===============3761226481386422027==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
gstreamer-cvs-verbose mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gstreamer-cvs-verbose

--===============3761226481386422027==--