aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2012-04-02 05:40:19 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-05-14 13:02:23 -0400
commit6491d1adfbf0e2ffbdfcda8cef60edc01b6700b3 (patch)
tree3b9202569659aa28b49d6a90e83363c95bdefa84
parent6fd522a6d12d0ebac528f2d4553c4bf51c0c3275 (diff)
[media] V4L: Extend V4L2_CID_COLORFX with more image effects
This patch adds definition of additional color effects: - V4L2_COLORFX_AQUA, - V4L2_COLORFX_ART_FREEZE, - V4L2_COLORFX_SILHOUETTE, - V4L2_COLORFX_SOLARIZATION, - V4L2_COLORFX_ANTIQUE, - V4L2_COLORFX_SET_CBCR. The new V4L2_COLORFX_CBCR control is added to allow setting the fixed Cb, Cr values that replace chroma Cb/Cr coefficients in case of V4L2_COLORFX_SET_CBCR effect. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--Documentation/DocBook/media/v4l/compat.xml13
-rw-r--r--Documentation/DocBook/media/v4l/controls.xml98
-rw-r--r--Documentation/DocBook/media/v4l/v4l2.xml5
-rw-r--r--drivers/media/video/v4l2-ctrls.c7
-rw-r--r--include/linux/videodev2.h29
5 files changed, 127 insertions, 25 deletions
diff --git a/Documentation/DocBook/media/v4l/compat.xml b/Documentation/DocBook/media/v4l/compat.xml
index 87339b2aad78..149f65dfaa72 100644
--- a/Documentation/DocBook/media/v4l/compat.xml
+++ b/Documentation/DocBook/media/v4l/compat.xml
@@ -2422,6 +2422,19 @@ details.</para>
2422 &VIDIOC-SUBDEV-G-SELECTION; and 2422 &VIDIOC-SUBDEV-G-SELECTION; and
2423 &VIDIOC-SUBDEV-S-SELECTION;.</para> 2423 &VIDIOC-SUBDEV-S-SELECTION;.</para>
2424 </listitem> 2424 </listitem>
2425 <listitem>
2426 <para> Added <constant>V4L2_COLORFX_ANTIQUE</constant>,
2427 <constant>V4L2_COLORFX_ART_FREEZE</constant>,
2428 <constant>V4L2_COLORFX_AQUA</constant>,
2429 <constant>V4L2_COLORFX_SILHOUETTE</constant>,
2430 <constant>V4L2_COLORFX_SOLARIZATION</constant>,
2431 <constant>V4L2_COLORFX_VIVID</constant> and
2432 <constant>V4L2_COLORFX_ARBITRARY_CBCR</constant> menu items
2433 to the <constant>V4L2_CID_COLORFX</constant> control.</para>
2434 </listitem>
2435 <listitem>
2436 <para> Added <constant>V4L2_CID_COLORFX_CBCR</constant> control.</para>
2437 </listitem>
2425 </orderedlist> 2438 </orderedlist>
2426 </section> 2439 </section>
2427 2440
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
index 662127447aa6..e2ff0f98f08d 100644
--- a/Documentation/DocBook/media/v4l/controls.xml
+++ b/Documentation/DocBook/media/v4l/controls.xml
@@ -285,18 +285,92 @@ minimum value disables backlight compensation.</entry>
285 <row id="v4l2-colorfx"> 285 <row id="v4l2-colorfx">
286 <entry><constant>V4L2_CID_COLORFX</constant></entry> 286 <entry><constant>V4L2_CID_COLORFX</constant></entry>
287 <entry>enum</entry> 287 <entry>enum</entry>
288 <entry>Selects a color effect. Possible values for 288 <entry>Selects a color effect. The following values are defined:
289<constant>enum v4l2_colorfx</constant> are: 289 </entry>
290<constant>V4L2_COLORFX_NONE</constant> (0), 290 </row><row>
291<constant>V4L2_COLORFX_BW</constant> (1), 291 <entry></entry>
292<constant>V4L2_COLORFX_SEPIA</constant> (2), 292 <entry></entry>
293<constant>V4L2_COLORFX_NEGATIVE</constant> (3), 293 <entrytbl spanname="descr" cols="2">
294<constant>V4L2_COLORFX_EMBOSS</constant> (4), 294 <tbody valign="top">
295<constant>V4L2_COLORFX_SKETCH</constant> (5), 295 <row>
296<constant>V4L2_COLORFX_SKY_BLUE</constant> (6), 296 <entry><constant>V4L2_COLORFX_NONE</constant>&nbsp;</entry>
297<constant>V4L2_COLORFX_GRASS_GREEN</constant> (7), 297 <entry>Color effect is disabled.</entry>
298<constant>V4L2_COLORFX_SKIN_WHITEN</constant> (8) and 298 </row>
299<constant>V4L2_COLORFX_VIVID</constant> (9).</entry> 299 <row>
300 <entry><constant>V4L2_COLORFX_ANTIQUE</constant>&nbsp;</entry>
301 <entry>An aging (old photo) effect.</entry>
302 </row>
303 <row>
304 <entry><constant>V4L2_COLORFX_ART_FREEZE</constant>&nbsp;</entry>
305 <entry>Frost color effect.</entry>
306 </row>
307 <row>
308 <entry><constant>V4L2_COLORFX_AQUA</constant>&nbsp;</entry>
309 <entry>Water color, cool tone.</entry>
310 </row>
311 <row>
312 <entry><constant>V4L2_COLORFX_BW</constant>&nbsp;</entry>
313 <entry>Black and white.</entry>
314 </row>
315 <row>
316 <entry><constant>V4L2_COLORFX_EMBOSS</constant>&nbsp;</entry>
317 <entry>Emboss, the highlights and shadows replace light/dark boundaries
318 and low contrast areas are set to a gray background.</entry>
319 </row>
320 <row>
321 <entry><constant>V4L2_COLORFX_GRASS_GREEN</constant>&nbsp;</entry>
322 <entry>Grass green.</entry>
323 </row>
324 <row>
325 <entry><constant>V4L2_COLORFX_NEGATIVE</constant>&nbsp;</entry>
326 <entry>Negative.</entry>
327 </row>
328 <row>
329 <entry><constant>V4L2_COLORFX_SEPIA</constant>&nbsp;</entry>
330 <entry>Sepia tone.</entry>
331 </row>
332 <row>
333 <entry><constant>V4L2_COLORFX_SKETCH</constant>&nbsp;</entry>
334 <entry>Sketch.</entry>
335 </row>
336 <row>
337 <entry><constant>V4L2_COLORFX_SKIN_WHITEN</constant>&nbsp;</entry>
338 <entry>Skin whiten.</entry>
339 </row>
340 <row>
341 <entry><constant>V4L2_COLORFX_SKY_BLUE</constant>&nbsp;</entry>
342 <entry>Sky blue.</entry>
343 </row>
344 <row>
345 <entry><constant>V4L2_COLORFX_SOLARIZATION</constant>&nbsp;</entry>
346 <entry>Solarization, the image is partially reversed in tone,
347 only color values above or below a certain threshold are inverted.
348 </entry>
349 </row>
350 <row>
351 <entry><constant>V4L2_COLORFX_SILHOUETTE</constant>&nbsp;</entry>
352 <entry>Silhouette (outline).</entry>
353 </row>
354 <row>
355 <entry><constant>V4L2_COLORFX_VIVID</constant>&nbsp;</entry>
356 <entry>Vivid colors.</entry>
357 </row>
358 <row>
359 <entry><constant>V4L2_COLORFX_SET_CBCR</constant>&nbsp;</entry>
360 <entry>The Cb and Cr chroma components are replaced by fixed
361 coefficients determined by <constant>V4L2_CID_COLORFX_CBCR</constant>
362 control.</entry>
363 </row>
364 </tbody>
365 </entrytbl>
366 </row>
367 <row>
368 <entry><constant>V4L2_CID_COLORFX_CBCR</constant></entry>
369 <entry>integer</entry>
370 <entry>Determines the Cb and Cr coefficients for <constant>V4L2_COLORFX_SET_CBCR</constant>
371 color effect. Bits [7:0] of the supplied 32 bit value are interpreted as
372 Cr component, bits [15:8] as Cb component and bits [31:16] must be zero.
373 </entry>
300 </row> 374 </row>
301 <row> 375 <row>
302 <entry><constant>V4L2_CID_ROTATE</constant></entry> 376 <entry><constant>V4L2_CID_ROTATE</constant></entry>
diff --git a/Documentation/DocBook/media/v4l/v4l2.xml b/Documentation/DocBook/media/v4l/v4l2.xml
index fbf808d242f7..63242e2adc02 100644
--- a/Documentation/DocBook/media/v4l/v4l2.xml
+++ b/Documentation/DocBook/media/v4l/v4l2.xml
@@ -141,9 +141,10 @@ applications. -->
141 <revision> 141 <revision>
142 <revnumber>3.5</revnumber> 142 <revnumber>3.5</revnumber>
143 <date>2012-04-02</date> 143 <date>2012-04-02</date>
144 <authorinitials>sa</authorinitials> 144 <authorinitials>sa, sn</authorinitials>
145 <revremark>Added V4L2_CTRL_TYPE_INTEGER_MENU and V4L2 subdev 145 <revremark>Added V4L2_CTRL_TYPE_INTEGER_MENU and V4L2 subdev
146 selections API. 146 selections API. Improved the description of V4L2_CID_COLORFX
147 control, added V4L2_CID_COLORFX_CBCR control.
147 </revremark> 148 </revremark>
148 </revision> 149 </revision>
149 150
diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c
index e5531ace5ee7..9bd8a92419e1 100644
--- a/drivers/media/video/v4l2-ctrls.c
+++ b/drivers/media/video/v4l2-ctrls.c
@@ -241,6 +241,12 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
241 "Grass Green", 241 "Grass Green",
242 "Skin Whiten", 242 "Skin Whiten",
243 "Vivid", 243 "Vivid",
244 "Aqua",
245 "Art Freeze",
246 "Silhouette",
247 "Solarization",
248 "Antique",
249 "Set Cb/Cr",
244 NULL 250 NULL
245 }; 251 };
246 static const char * const tune_preemphasis[] = { 252 static const char * const tune_preemphasis[] = {
@@ -493,6 +499,7 @@ const char *v4l2_ctrl_get_name(u32 id)
493 case V4L2_CID_MIN_BUFFERS_FOR_CAPTURE: return "Min Number of Capture Buffers"; 499 case V4L2_CID_MIN_BUFFERS_FOR_CAPTURE: return "Min Number of Capture Buffers";
494 case V4L2_CID_MIN_BUFFERS_FOR_OUTPUT: return "Min Number of Output Buffers"; 500 case V4L2_CID_MIN_BUFFERS_FOR_OUTPUT: return "Min Number of Output Buffers";
495 case V4L2_CID_ALPHA_COMPONENT: return "Alpha Component"; 501 case V4L2_CID_ALPHA_COMPONENT: return "Alpha Component";
502 case V4L2_CID_COLORFX_CBCR: return "Color Effects, CbCr";
496 503
497 /* MPEG controls */ 504 /* MPEG controls */
498 /* Keep the order of the 'case's the same as in videodev2.h! */ 505 /* Keep the order of the 'case's the same as in videodev2.h! */
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index 7f75846a4a0c..07bce86f3548 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -1248,16 +1248,22 @@ enum v4l2_power_line_frequency {
1248#define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30) 1248#define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30)
1249#define V4L2_CID_COLORFX (V4L2_CID_BASE+31) 1249#define V4L2_CID_COLORFX (V4L2_CID_BASE+31)
1250enum v4l2_colorfx { 1250enum v4l2_colorfx {
1251 V4L2_COLORFX_NONE = 0, 1251 V4L2_COLORFX_NONE = 0,
1252 V4L2_COLORFX_BW = 1, 1252 V4L2_COLORFX_BW = 1,
1253 V4L2_COLORFX_SEPIA = 2, 1253 V4L2_COLORFX_SEPIA = 2,
1254 V4L2_COLORFX_NEGATIVE = 3, 1254 V4L2_COLORFX_NEGATIVE = 3,
1255 V4L2_COLORFX_EMBOSS = 4, 1255 V4L2_COLORFX_EMBOSS = 4,
1256 V4L2_COLORFX_SKETCH = 5, 1256 V4L2_COLORFX_SKETCH = 5,
1257 V4L2_COLORFX_SKY_BLUE = 6, 1257 V4L2_COLORFX_SKY_BLUE = 6,
1258 V4L2_COLORFX_GRASS_GREEN = 7, 1258 V4L2_COLORFX_GRASS_GREEN = 7,
1259 V4L2_COLORFX_SKIN_WHITEN = 8, 1259 V4L2_COLORFX_SKIN_WHITEN = 8,
1260 V4L2_COLORFX_VIVID = 9, 1260 V4L2_COLORFX_VIVID = 9,
1261 V4L2_COLORFX_AQUA = 10,
1262 V4L2_COLORFX_ART_FREEZE = 11,
1263 V4L2_COLORFX_SILHOUETTE = 12,
1264 V4L2_COLORFX_SOLARIZATION = 13,
1265 V4L2_COLORFX_ANTIQUE = 14,
1266 V4L2_COLORFX_SET_CBCR = 15,
1261}; 1267};
1262#define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32) 1268#define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32)
1263#define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33) 1269#define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33)
@@ -1274,9 +1280,10 @@ enum v4l2_colorfx {
1274#define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40) 1280#define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40)
1275 1281
1276#define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41) 1282#define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41)
1283#define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE+42)
1277 1284
1278/* last CID + 1 */ 1285/* last CID + 1 */
1279#define V4L2_CID_LASTP1 (V4L2_CID_BASE+42) 1286#define V4L2_CID_LASTP1 (V4L2_CID_BASE+43)
1280 1287
1281/* MPEG-class control IDs defined by V4L2 */ 1288/* MPEG-class control IDs defined by V4L2 */
1282#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) 1289#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)