Commit cc1d3272 authored by Sylwester Nawrocki's avatar Sylwester Nawrocki Committed by Mauro Carvalho Chehab
Browse files

[media] v4l: Add new alpha component control



The V4L2_CID_ALPHA_COMPONENT control is intended for the video capture
or memory-to-memory devices that are capable of setting up the per-pixel
alpha component to some arbitrary value. It allows to set the alpha
component for all pixels to an arbitrary value.

Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent b4d48c94
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -2379,6 +2379,17 @@ that used it. It was originally scheduled for removal in 2.6.35.
      </orderedlist>
    </section>

    <section>
      <title>V4L2 in Linux 3.3</title>
      <orderedlist>
        <listitem>
	  <para>Added <constant>V4L2_CID_ALPHA_COMPONENT</constant> control
	    to the <link linkend="control">User controls class</link>.
	  </para>
        </listitem>
      </orderedlist>
    </section>

    <section id="other">
      <title>Relation of V4L2 to other Linux multimedia APIs</title>

+19 −6
Original line number Diff line number Diff line
@@ -323,12 +323,6 @@ minimum value disables backlight compensation.</entry>
	    <entry>Switch on or off the illuminator 1 or 2 of the device
		(usually a microscope).</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CID_LASTP1</constant></entry>
	    <entry></entry>
	    <entry>End of the predefined control IDs (currently
<constant>V4L2_CID_ILLUMINATORS_2</constant> + 1).</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CID_MIN_BUFFERS_FOR_CAPTURE</constant></entry>
	    <entry>integer</entry>
@@ -345,6 +339,25 @@ and used as a hint to determine the number of OUTPUT buffers to pass to REQBUFS.
The value is the minimum number of OUTPUT buffers that is necessary for hardware
to work.</entry>
	  </row>
	  <row id="v4l2-alpha-component">
	    <entry><constant>V4L2_CID_ALPHA_COMPONENT</constant></entry>
	    <entry>integer</entry>
	    <entry> Sets the alpha color component on the capture device or on
	    the capture buffer queue of a mem-to-mem device. When a mem-to-mem
	    device produces frame format that includes an alpha component
	    (e.g. <link linkend="rgb-formats">packed RGB image formats</link>)
	    and the alpha value is not defined by the mem-to-mem input data
	    this control lets you select the alpha component value of all
	    pixels. It is applicable to any pixel format that contains an alpha
	    component.
	    </entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CID_LASTP1</constant></entry>
	    <entry></entry>
	    <entry>End of the predefined control IDs (currently
	      <constant>V4L2_CID_ALPHA_COMPONENT</constant> + 1).</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CID_PRIVATE_BASE</constant></entry>
	    <entry></entry>
+5 −2
Original line number Diff line number Diff line
@@ -428,8 +428,11 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para>
    <para>Bit 7 is the most significant bit. The value of a = alpha
bits is undefined when reading from the driver, ignored when writing
to the driver, except when alpha blending has been negotiated for a
<link linkend="overlay">Video Overlay</link> or <link
linkend="osd">Video Output Overlay</link>.</para>
<link linkend="overlay">Video Overlay</link> or <link linkend="osd">
Video Output Overlay</link> or when alpha component has been configured
for a <link linkend="capture">Video Capture</link> by means of <link
linkend="v4l2-alpha-component"> <constant>V4L2_CID_ALPHA_COMPONENT
</constant> </link> control.</para>

    <example>
      <title><constant>V4L2_PIX_FMT_BGR24</constant> 4 &times; 4 pixel
+1 −0
Original line number Diff line number Diff line
@@ -467,6 +467,7 @@ const char *v4l2_ctrl_get_name(u32 id)
	case V4L2_CID_ILLUMINATORS_2:		return "Illuminator 2";
	case V4L2_CID_MIN_BUFFERS_FOR_CAPTURE:	return "Minimum Number of Capture Buffers";
	case V4L2_CID_MIN_BUFFERS_FOR_OUTPUT:	return "Minimum Number of Output Buffers";
	case V4L2_CID_ALPHA_COMPONENT:		return "Alpha Component";

	/* MPEG controls */
	/* Keep the order of the 'case's the same as in videodev2.h! */
+3 −3
Original line number Diff line number Diff line
@@ -1204,10 +1204,10 @@ enum v4l2_colorfx {
#define V4L2_CID_MIN_BUFFERS_FOR_CAPTURE	(V4L2_CID_BASE+39)
#define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT		(V4L2_CID_BASE+40)

/* last CID + 1 */
#define V4L2_CID_LASTP1                         (V4L2_CID_BASE+41)
#define V4L2_CID_ALPHA_COMPONENT		(V4L2_CID_BASE+41)

/* Minimum number of buffer neede by the device */
/* last CID + 1 */
#define V4L2_CID_LASTP1                         (V4L2_CID_BASE+42)

/*  MPEG-class control IDs defined by V4L2 */
#define V4L2_CID_MPEG_BASE 			(V4L2_CTRL_CLASS_MPEG | 0x900)