summaryrefslogtreecommitdiffstats
path: root/patches/gst-plugins-bad-1.0.7/0002-add-rgb666-support.patch
blob: c67a51d6d41098818ad1774e1b79e100dc8951d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
From: Luotao Fu <lfu@pengutronix.de>
Date: Thu, 11 Dec 2008 12:03:59 +0100
Subject: [PATCH] add rgb666 support

 This one adds support for rgb666 to fbdevsink. It's an exotic format, but still
 can be found on especially some embedded devices. The Modelines are taken
 directly from video.h of the video plugin, which is included by gstdevsink.
 It'd probably be cleaner to split this in a separate patch for plugins-base.
 I put the stuffs together for now for easier review. Patches for some sources
 with rgb666 capability are coming soon.

Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
---
 sys/fbdev/gstfbdevsink.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/sys/fbdev/gstfbdevsink.c b/sys/fbdev/gstfbdevsink.c
index 6d06801..c181d94 100644
--- a/sys/fbdev/gstfbdevsink.c
+++ b/sys/fbdev/gstfbdevsink.c
@@ -69,9 +69,28 @@ static GstCaps *gst_fbdevsink_getcaps (GstBaseSink * bsink);
 
 static GstVideoSinkClass *parent_class = NULL;
 
+#define GST_VIDEO_BYTE1_MASK_18  "0x0003F000"
+#define GST_VIDEO_BYTE2_MASK_18  "0x00000FC0"
+#define GST_VIDEO_BYTE3_MASK_18  "0x0000003F"
+#define __GST_VIDEO_CAPS_MAKE_18(R, G, B)                         \
+    "video/x-raw-rgb, "                                                 \
+    "bpp = (int) 32, "                                                  \
+    "depth = (int) 18, "                                                \
+    "endianness = (int) BIG_ENDIAN, "                                   \
+    "red_mask = (int) " GST_VIDEO_BYTE ## R ## _MASK_18 ", "      \
+    "green_mask = (int) " GST_VIDEO_BYTE ## G ## _MASK_18 ", "    \
+    "blue_mask = (int) " GST_VIDEO_BYTE ## B ## _MASK_18 ", "     \
+    "width = " GST_VIDEO_SIZE_RANGE ", "                                \
+    "height = " GST_VIDEO_SIZE_RANGE ", "                               \
+    "framerate = " GST_VIDEO_FPS_RANGE
+
+#define GST_VIDEO_CAPS_RGB666 \
+    __GST_VIDEO_CAPS_MAKE_18 (1, 2, 3)
+
 #define GST_FBDEV_TEMPLATE_CAPS \
      GST_VIDEO_CAPS_RGB_15 \
  ";" GST_VIDEO_CAPS_RGB_16 \
+ ";" GST_VIDEO_CAPS_RGB666 \
  ";" GST_VIDEO_CAPS_BGR \
  ";" GST_VIDEO_CAPS_BGRx \
  ";" GST_VIDEO_CAPS_xBGR \