[v3,1/4] v4l: add V4L2_PIX_FMT_Y12 format

Message ID 1299830749-7269-2-git-send-email-michael.jones@matrix-vision.de (mailing list archive)
State Superseded, archived
Headers

Commit Message

Michael Jones March 11, 2011, 8:05 a.m. UTC
  Signed-off-by: Michael Jones <michael.jones@matrix-vision.de>
---
 Documentation/DocBook/v4l/pixfmt-y12.xml |   79 ++++++++++++++++++++++++++++++
 include/linux/videodev2.h                |    1 +
 2 files changed, 80 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/DocBook/v4l/pixfmt-y12.xml
  

Comments

Laurent Pinchart March 11, 2011, 8:56 a.m. UTC | #1
Hi Michael,

Thanks for the patch.

On Friday 11 March 2011 09:05:46 Michael Jones wrote:
> Signed-off-by: Michael Jones <michael.jones@matrix-vision.de>
> ---
>  Documentation/DocBook/v4l/pixfmt-y12.xml |   79 +++++++++++++++++++++++++++
>  include/linux/videodev2.h                |    1 +
>  2 files changed, 80 insertions(+), 0 deletions(-)
>  create mode 100644 Documentation/DocBook/v4l/pixfmt-y12.xml

You also need to modify Documentation/DocBook/v4l/pixfmt.xml (and 
Documentation/DocBook/media-entities.tmpl) to include pixfmt-y12.xml, 
otherwise the new documentation file won't be used. Search for 'sub-y16' for 
an example.
  
Antonio Ospite March 11, 2011, 9:21 a.m. UTC | #2
On Fri, 11 Mar 2011 09:05:46 +0100
Michael Jones <michael.jones@matrix-vision.de> wrote:

> Signed-off-by: Michael Jones <michael.jones@matrix-vision.de>
> ---
>  Documentation/DocBook/v4l/pixfmt-y12.xml |   79 ++++++++++++++++++++++++++++++
>  include/linux/videodev2.h                |    1 +
>  2 files changed, 80 insertions(+), 0 deletions(-)
>  create mode 100644 Documentation/DocBook/v4l/pixfmt-y12.xml
>

Hi Michael,

are you going to release also Y12 conversion routines for libv4lconvert?

Regards,
   Antonio
  
Michael Jones March 11, 2011, 9:38 a.m. UTC | #3
On 03/11/2011 10:21 AM, Antonio Ospite wrote:
> Hi Michael,
> 
> are you going to release also Y12 conversion routines for libv4lconvert?
> 
> Regards,
>    Antonio
> 

Hi Antonio,

As I am neither a user nor developer of libv4lconvert, I am not planning
on adding Y12 conversion routines there.  Hopefully somebody else will
step up.  Maybe you?

-Michael

MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Antonio Ospite March 11, 2011, 11:15 a.m. UTC | #4
On Fri, 11 Mar 2011 10:38:08 +0100
Michael Jones <michael.jones@matrix-vision.de> wrote:

> On 03/11/2011 10:21 AM, Antonio Ospite wrote:
> > Hi Michael,
> > 
> > are you going to release also Y12 conversion routines for libv4lconvert?
> > 
> > Regards,
> >    Antonio
> > 
> 
> Hi Antonio,
> 
> As I am neither a user nor developer of libv4lconvert, I am not planning
> on adding Y12 conversion routines there.  Hopefully somebody else will
> step up.  Maybe you?
> 

I asked just for curiosity as I don't have any device producing this
Y12 format, however I _might_ play with it if you can provide some Y12
(or Y10) raw frames. I am playing with some compressed variant of Y10
and I am exploring different ways to add support for those formats to
libv4l.

Regards,
   Antonio
  

Patch

diff --git a/Documentation/DocBook/v4l/pixfmt-y12.xml b/Documentation/DocBook/v4l/pixfmt-y12.xml
new file mode 100644
index 0000000..ff417b8
--- /dev/null
+++ b/Documentation/DocBook/v4l/pixfmt-y12.xml
@@ -0,0 +1,79 @@ 
+<refentry id="V4L2-PIX-FMT-Y12">
+  <refmeta>
+    <refentrytitle>V4L2_PIX_FMT_Y12 ('Y12 ')</refentrytitle>
+    &manvol;
+  </refmeta>
+  <refnamediv>
+    <refname><constant>V4L2_PIX_FMT_Y12</constant></refname>
+    <refpurpose>Grey-scale image</refpurpose>
+  </refnamediv>
+  <refsect1>
+    <title>Description</title>
+
+    <para>This is a grey-scale image with a depth of 12 bits per pixel. Pixels
+are stored in 16-bit words with unused high bits padded with 0. The least
+significant byte is stored at lower memory addresses (little-endian).</para>
+
+    <example>
+      <title><constant>V4L2_PIX_FMT_Y12</constant> 4 &times; 4
+pixel image</title>
+
+      <formalpara>
+	<title>Byte Order.</title>
+	<para>Each cell is one byte.
+	  <informaltable frame="none">
+	    <tgroup cols="9" align="center">
+	      <colspec align="left" colwidth="2*" />
+	      <tbody valign="top">
+		<row>
+		  <entry>start&nbsp;+&nbsp;0:</entry>
+		  <entry>Y'<subscript>00low</subscript></entry>
+		  <entry>Y'<subscript>00high</subscript></entry>
+		  <entry>Y'<subscript>01low</subscript></entry>
+		  <entry>Y'<subscript>01high</subscript></entry>
+		  <entry>Y'<subscript>02low</subscript></entry>
+		  <entry>Y'<subscript>02high</subscript></entry>
+		  <entry>Y'<subscript>03low</subscript></entry>
+		  <entry>Y'<subscript>03high</subscript></entry>
+		</row>
+		<row>
+		  <entry>start&nbsp;+&nbsp;8:</entry>
+		  <entry>Y'<subscript>10low</subscript></entry>
+		  <entry>Y'<subscript>10high</subscript></entry>
+		  <entry>Y'<subscript>11low</subscript></entry>
+		  <entry>Y'<subscript>11high</subscript></entry>
+		  <entry>Y'<subscript>12low</subscript></entry>
+		  <entry>Y'<subscript>12high</subscript></entry>
+		  <entry>Y'<subscript>13low</subscript></entry>
+		  <entry>Y'<subscript>13high</subscript></entry>
+		</row>
+		<row>
+		  <entry>start&nbsp;+&nbsp;16:</entry>
+		  <entry>Y'<subscript>20low</subscript></entry>
+		  <entry>Y'<subscript>20high</subscript></entry>
+		  <entry>Y'<subscript>21low</subscript></entry>
+		  <entry>Y'<subscript>21high</subscript></entry>
+		  <entry>Y'<subscript>22low</subscript></entry>
+		  <entry>Y'<subscript>22high</subscript></entry>
+		  <entry>Y'<subscript>23low</subscript></entry>
+		  <entry>Y'<subscript>23high</subscript></entry>
+		</row>
+		<row>
+		  <entry>start&nbsp;+&nbsp;24:</entry>
+		  <entry>Y'<subscript>30low</subscript></entry>
+		  <entry>Y'<subscript>30high</subscript></entry>
+		  <entry>Y'<subscript>31low</subscript></entry>
+		  <entry>Y'<subscript>31high</subscript></entry>
+		  <entry>Y'<subscript>32low</subscript></entry>
+		  <entry>Y'<subscript>32high</subscript></entry>
+		  <entry>Y'<subscript>33low</subscript></entry>
+		  <entry>Y'<subscript>33high</subscript></entry>
+		</row>
+	      </tbody>
+	    </tgroup>
+	  </informaltable>
+	</para>
+      </formalpara>
+    </example>
+  </refsect1>
+</refentry>
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index 02da9e7..6fac463 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -288,6 +288,7 @@  struct v4l2_pix_format {
 #define V4L2_PIX_FMT_Y4      v4l2_fourcc('Y', '0', '4', ' ') /*  4  Greyscale     */
 #define V4L2_PIX_FMT_Y6      v4l2_fourcc('Y', '0', '6', ' ') /*  6  Greyscale     */
 #define V4L2_PIX_FMT_Y10     v4l2_fourcc('Y', '1', '0', ' ') /* 10  Greyscale     */
+#define V4L2_PIX_FMT_Y12     v4l2_fourcc('Y', '1', '2', ' ') /* 12  Greyscale     */
 #define V4L2_PIX_FMT_Y16     v4l2_fourcc('Y', '1', '6', ' ') /* 16  Greyscale     */
 
 /* Palette formats */