diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-23 17:39:09 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-23 17:39:09 -0400 |
commit | e317234975cb7463b8ca21a93bb6862d9dcf113f (patch) | |
tree | 4446fa3a21364f3cba23a22aa2a94027f169d8df /Documentation | |
parent | f37ab0fba271e43edab0e3ae9fe644fcda455402 (diff) | |
parent | 7483d45f0aee3afc0646d185cabd4af9f6cab58c (diff) |
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab:
- V4L2 API additions to better support JPEG compression control
- media API additions to properly support MPEG decoders
- V4L2 API additions for image crop/scaling
- a few other V4L2 API DocBook fixes/improvements
- two new DVB frontend drivers: m88rs2000 and rtl2830
- two new DVB drivers: az6007 and rtl28xxu
- a framework for ISA drivers, that removed lots of common code found
at the ISA radio drivers
- a new FM transmitter driver (radio-keene)
- a GPIO-based IR receiver driver
- a new sensor driver: mt9m032
- some new video drivers: adv7183, blackfin, mx2_emmaprp, sii9234_drv,
vs6624
- several new board additions, driver fixes, improvements and cleanups.
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (295 commits)
[media] update CARDLIST.em28xx
[media] partially reverts changeset fa5527c
[media] stb0899: fix the limits for signal strength values
[media] em28xx: support for 2304:0242 PCTV QuatroStick (510e)
[media] em28xx: support for 2013:0251 PCTV QuatroStick nano (520e)
[media] -EINVAL -> -ENOTTY
[media] gspca - sn9c20x: Cleanup source
[media] gspca - sn9c20x: Simplify register write for capture start/stop
[media] gspca - sn9c20x: Add automatic JPEG compression mechanism
[media] gspca - sn9c20x: Greater delay in case of sensor no response
[media] gspca - sn9c20x: Optimize the code of write sequences
[media] gspca - sn9c20x: Add the JPEG compression quality control
[media] gspca - sn9c20x: Add a delay after Omnivision sensor reset
[media] gspca - sn9c20x: Propagate USB errors to higher level
[media] gspca - sn9c20x: Use the new video control mechanism
[media] gspca - sn9c20x: Fix loss of frame start
[media] gspca - zc3xx: Lack of register 08 value for sensor cs2102k
[media] gspca - ov534_9: Add brightness to OmniVision 5621 sensor
[media] gspca - zc3xx: Add V4L2_CID_JPEG_COMPRESSION_QUALITY control support
[media] pvrusb2: fix 7MHz & 8MHz DVB-T tuner support for HVR1900 rev D1F5
...
Diffstat (limited to 'Documentation')
20 files changed, 849 insertions, 71 deletions
diff --git a/Documentation/DocBook/media/v4l/biblio.xml b/Documentation/DocBook/media/v4l/biblio.xml index cea6fd3ed428..7dc65c592a87 100644 --- a/Documentation/DocBook/media/v4l/biblio.xml +++ b/Documentation/DocBook/media/v4l/biblio.xml | |||
@@ -128,6 +128,26 @@ url="http://www.ijg.org">http://www.ijg.org</ulink>)</corpauthor> | |||
128 | <subtitle>Version 1.02</subtitle> | 128 | <subtitle>Version 1.02</subtitle> |
129 | </biblioentry> | 129 | </biblioentry> |
130 | 130 | ||
131 | <biblioentry id="itu-t81"> | ||
132 | <abbrev>ITU-T.81</abbrev> | ||
133 | <authorgroup> | ||
134 | <corpauthor>International Telecommunication Union | ||
135 | (<ulink url="http://www.itu.int">http://www.itu.int</ulink>)</corpauthor> | ||
136 | </authorgroup> | ||
137 | <title>ITU-T Recommendation T.81 | ||
138 | "Information Technology — Digital Compression and Coding of Continous-Tone | ||
139 | Still Images — Requirements and Guidelines"</title> | ||
140 | </biblioentry> | ||
141 | |||
142 | <biblioentry id="w3c-jpeg-jfif"> | ||
143 | <abbrev>W3C JPEG JFIF</abbrev> | ||
144 | <authorgroup> | ||
145 | <corpauthor>The World Wide Web Consortium (<ulink | ||
146 | url="http://www.w3.org/Graphics/JPEG">http://www.w3.org</ulink>)</corpauthor> | ||
147 | </authorgroup> | ||
148 | <title>JPEG JFIF</title> | ||
149 | </biblioentry> | ||
150 | |||
131 | <biblioentry id="smpte12m"> | 151 | <biblioentry id="smpte12m"> |
132 | <abbrev>SMPTE 12M</abbrev> | 152 | <abbrev>SMPTE 12M</abbrev> |
133 | <authorgroup> | 153 | <authorgroup> |
diff --git a/Documentation/DocBook/media/v4l/compat.xml b/Documentation/DocBook/media/v4l/compat.xml index a2485b3ff3d2..bce97c50391b 100644 --- a/Documentation/DocBook/media/v4l/compat.xml +++ b/Documentation/DocBook/media/v4l/compat.xml | |||
@@ -2393,6 +2393,20 @@ details.</para> | |||
2393 | to the <link linkend="control">User controls class</link>. | 2393 | to the <link linkend="control">User controls class</link>. |
2394 | </para> | 2394 | </para> |
2395 | </listitem> | 2395 | </listitem> |
2396 | <listitem> | ||
2397 | <para>Added the device_caps field to struct v4l2_capabilities and added the new | ||
2398 | V4L2_CAP_DEVICE_CAPS capability.</para> | ||
2399 | </listitem> | ||
2400 | </orderedlist> | ||
2401 | </section> | ||
2402 | |||
2403 | <section> | ||
2404 | <title>V4L2 in Linux 3.4</title> | ||
2405 | <orderedlist> | ||
2406 | <listitem> | ||
2407 | <para>Added <link linkend="jpeg-controls">JPEG compression control | ||
2408 | class</link>.</para> | ||
2409 | </listitem> | ||
2396 | </orderedlist> | 2410 | </orderedlist> |
2397 | </section> | 2411 | </section> |
2398 | 2412 | ||
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml index a1be37897ad7..b84f25e9cc87 100644 --- a/Documentation/DocBook/media/v4l/controls.xml +++ b/Documentation/DocBook/media/v4l/controls.xml | |||
@@ -1286,6 +1286,49 @@ produce a slight hiss, but in the encoder itself, guaranteeing a fixed | |||
1286 | and reproducible audio bitstream. 0 = unmuted, 1 = muted.</entry> | 1286 | and reproducible audio bitstream. 0 = unmuted, 1 = muted.</entry> |
1287 | </row> | 1287 | </row> |
1288 | <row><entry></entry></row> | 1288 | <row><entry></entry></row> |
1289 | <row id="v4l2-mpeg-audio-dec-playback"> | ||
1290 | <entry spanname="id"><constant>V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK</constant> </entry> | ||
1291 | <entry>enum v4l2_mpeg_audio_dec_playback</entry> | ||
1292 | </row><row><entry spanname="descr">Determines how monolingual audio should be played back. | ||
1293 | Possible values are:</entry> | ||
1294 | </row> | ||
1295 | <row> | ||
1296 | <entrytbl spanname="descr" cols="2"> | ||
1297 | <tbody valign="top"> | ||
1298 | <row> | ||
1299 | <entry><constant>V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO</constant> </entry> | ||
1300 | <entry>Automatically determines the best playback mode.</entry> | ||
1301 | </row> | ||
1302 | <row> | ||
1303 | <entry><constant>V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO</constant> </entry> | ||
1304 | <entry>Stereo playback.</entry> | ||
1305 | </row> | ||
1306 | <row> | ||
1307 | <entry><constant>V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT</constant> </entry> | ||
1308 | <entry>Left channel playback.</entry> | ||
1309 | </row> | ||
1310 | <row> | ||
1311 | <entry><constant>V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT</constant> </entry> | ||
1312 | <entry>Right channel playback.</entry> | ||
1313 | </row> | ||
1314 | <row> | ||
1315 | <entry><constant>V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO</constant> </entry> | ||
1316 | <entry>Mono playback.</entry> | ||
1317 | </row> | ||
1318 | <row> | ||
1319 | <entry><constant>V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO</constant> </entry> | ||
1320 | <entry>Stereo playback with swapped left and right channels.</entry> | ||
1321 | </row> | ||
1322 | </tbody> | ||
1323 | </entrytbl> | ||
1324 | </row> | ||
1325 | <row><entry></entry></row> | ||
1326 | <row id="v4l2-mpeg-audio-dec-multilingual-playback"> | ||
1327 | <entry spanname="id"><constant>V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK</constant> </entry> | ||
1328 | <entry>enum v4l2_mpeg_audio_dec_playback</entry> | ||
1329 | </row><row><entry spanname="descr">Determines how multilingual audio should be played back.</entry> | ||
1330 | </row> | ||
1331 | <row><entry></entry></row> | ||
1289 | <row id="v4l2-mpeg-video-encoding"> | 1332 | <row id="v4l2-mpeg-video-encoding"> |
1290 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_ENCODING</constant> </entry> | 1333 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_ENCODING</constant> </entry> |
1291 | <entry>enum v4l2_mpeg_video_encoding</entry> | 1334 | <entry>enum v4l2_mpeg_video_encoding</entry> |
@@ -1447,6 +1490,22 @@ of the video. The supplied 32-bit integer is interpreted as follows (bit | |||
1447 | </tbody> | 1490 | </tbody> |
1448 | </entrytbl> | 1491 | </entrytbl> |
1449 | </row> | 1492 | </row> |
1493 | <row><entry></entry></row> | ||
1494 | <row id="v4l2-mpeg-video-dec-pts"> | ||
1495 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_DEC_PTS</constant> </entry> | ||
1496 | <entry>integer64</entry> | ||
1497 | </row><row><entry spanname="descr">This read-only control returns the | ||
1498 | 33-bit video Presentation Time Stamp as defined in ITU T-REC-H.222.0 and ISO/IEC 13818-1 of | ||
1499 | the currently displayed frame. This is the same PTS as is used in &VIDIOC-DECODER-CMD;.</entry> | ||
1500 | </row> | ||
1501 | <row><entry></entry></row> | ||
1502 | <row id="v4l2-mpeg-video-dec-frame"> | ||
1503 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_DEC_FRAME</constant> </entry> | ||
1504 | <entry>integer64</entry> | ||
1505 | </row><row><entry spanname="descr">This read-only control returns the | ||
1506 | frame counter of the frame that is currently displayed (decoded). This value is reset to 0 whenever | ||
1507 | the decoder is started.</entry> | ||
1508 | </row> | ||
1450 | 1509 | ||
1451 | 1510 | ||
1452 | <row><entry></entry></row> | 1511 | <row><entry></entry></row> |
@@ -3377,6 +3436,167 @@ interface and may change in the future.</para> | |||
3377 | </tbody> | 3436 | </tbody> |
3378 | </tgroup> | 3437 | </tgroup> |
3379 | </table> | 3438 | </table> |
3439 | </section> | ||
3440 | |||
3441 | <section id="jpeg-controls"> | ||
3442 | <title>JPEG Control Reference</title> | ||
3443 | <para>The JPEG class includes controls for common features of JPEG | ||
3444 | encoders and decoders. Currently it includes features for codecs | ||
3445 | implementing progressive baseline DCT compression process with | ||
3446 | Huffman entrophy coding.</para> | ||
3447 | <table pgwide="1" frame="none" id="jpeg-control-id"> | ||
3448 | <title>JPEG Control IDs</title> | ||
3380 | 3449 | ||
3450 | <tgroup cols="4"> | ||
3451 | <colspec colname="c1" colwidth="1*" /> | ||
3452 | <colspec colname="c2" colwidth="6*" /> | ||
3453 | <colspec colname="c3" colwidth="2*" /> | ||
3454 | <colspec colname="c4" colwidth="6*" /> | ||
3455 | <spanspec namest="c1" nameend="c2" spanname="id" /> | ||
3456 | <spanspec namest="c2" nameend="c4" spanname="descr" /> | ||
3457 | <thead> | ||
3458 | <row> | ||
3459 | <entry spanname="id" align="left">ID</entry> | ||
3460 | <entry align="left">Type</entry> | ||
3461 | </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry> | ||
3462 | </row> | ||
3463 | </thead> | ||
3464 | <tbody valign="top"> | ||
3465 | <row><entry></entry></row> | ||
3466 | <row> | ||
3467 | <entry spanname="id"><constant>V4L2_CID_JPEG_CLASS</constant> </entry> | ||
3468 | <entry>class</entry> | ||
3469 | </row><row><entry spanname="descr">The JPEG class descriptor. Calling | ||
3470 | &VIDIOC-QUERYCTRL; for this control will return a description of this | ||
3471 | control class. | ||
3472 | |||
3473 | </entry> | ||
3474 | </row> | ||
3475 | <row> | ||
3476 | <entry spanname="id"><constant>V4L2_CID_JPEG_CHROMA_SUBSAMPLING</constant></entry> | ||
3477 | <entry>menu</entry> | ||
3478 | </row> | ||
3479 | <row id="jpeg-chroma-subsampling-control"> | ||
3480 | <entry spanname="descr">The chroma subsampling factors describe how | ||
3481 | each component of an input image is sampled, in respect to maximum | ||
3482 | sample rate in each spatial dimension. See <xref linkend="itu-t81"/>, | ||
3483 | clause A.1.1. for more details. The <constant> | ||
3484 | V4L2_CID_JPEG_CHROMA_SUBSAMPLING</constant> control determines how | ||
3485 | Cb and Cr components are downsampled after coverting an input image | ||
3486 | from RGB to Y'CbCr color space. | ||
3487 | </entry> | ||
3488 | </row> | ||
3489 | <row> | ||
3490 | <entrytbl spanname="descr" cols="2"> | ||
3491 | <tbody valign="top"> | ||
3492 | <row> | ||
3493 | <entry><constant>V4L2_JPEG_CHROMA_SUBSAMPLING_444</constant> | ||
3494 | </entry><entry>No chroma subsampling, each pixel has | ||
3495 | Y, Cr and Cb values.</entry> | ||
3496 | </row> | ||
3497 | <row> | ||
3498 | <entry><constant>V4L2_JPEG_CHROMA_SUBSAMPLING_422</constant> | ||
3499 | </entry><entry>Horizontally subsample Cr, Cb components | ||
3500 | by a factor of 2.</entry> | ||
3501 | </row> | ||
3502 | <row> | ||
3503 | <entry><constant>V4L2_JPEG_CHROMA_SUBSAMPLING_420</constant> | ||
3504 | </entry><entry>Subsample Cr, Cb components horizontally | ||
3505 | and vertically by 2.</entry> | ||
3506 | </row> | ||
3507 | <row> | ||
3508 | <entry><constant>V4L2_JPEG_CHROMA_SUBSAMPLING_411</constant> | ||
3509 | </entry><entry>Horizontally subsample Cr, Cb components | ||
3510 | by a factor of 4.</entry> | ||
3511 | </row> | ||
3512 | <row> | ||
3513 | <entry><constant>V4L2_JPEG_CHROMA_SUBSAMPLING_410</constant> | ||
3514 | </entry><entry>Subsample Cr, Cb components horizontally | ||
3515 | by 4 and vertically by 2.</entry> | ||
3516 | </row> | ||
3517 | <row> | ||
3518 | <entry><constant>V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY</constant> | ||
3519 | </entry><entry>Use only luminance component.</entry> | ||
3520 | </row> | ||
3521 | </tbody> | ||
3522 | </entrytbl> | ||
3523 | </row> | ||
3524 | <row> | ||
3525 | <entry spanname="id"><constant>V4L2_CID_JPEG_RESTART_INTERVAL</constant> | ||
3526 | </entry><entry>integer</entry> | ||
3527 | </row> | ||
3528 | <row><entry spanname="descr"> | ||
3529 | The restart interval determines an interval of inserting RSTm | ||
3530 | markers (m = 0..7). The purpose of these markers is to additionally | ||
3531 | reinitialize the encoder process, in order to process blocks of | ||
3532 | an image independently. | ||
3533 | For the lossy compression processes the restart interval unit is | ||
3534 | MCU (Minimum Coded Unit) and its value is contained in DRI | ||
3535 | (Define Restart Interval) marker. If <constant> | ||
3536 | V4L2_CID_JPEG_RESTART_INTERVAL</constant> control is set to 0, | ||
3537 | DRI and RSTm markers will not be inserted. | ||
3538 | </entry> | ||
3539 | </row> | ||
3540 | <row id="jpeg-quality-control"> | ||
3541 | <entry spanname="id"><constant>V4L2_CID_JPEG_COMPRESION_QUALITY</constant></entry> | ||
3542 | <entry>integer</entry> | ||
3543 | </row> | ||
3544 | <row> | ||
3545 | <entry spanname="descr"> | ||
3546 | <constant>V4L2_CID_JPEG_COMPRESION_QUALITY</constant> control | ||
3547 | determines trade-off between image quality and size. | ||
3548 | It provides simpler method for applications to control image quality, | ||
3549 | without a need for direct reconfiguration of luminance and chrominance | ||
3550 | quantization tables. | ||
3551 | |||
3552 | In cases where a driver uses quantization tables configured directly | ||
3553 | by an application, using interfaces defined elsewhere, <constant> | ||
3554 | V4L2_CID_JPEG_COMPRESION_QUALITY</constant> control should be set | ||
3555 | by driver to 0. | ||
3556 | |||
3557 | <para>The value range of this control is driver-specific. Only | ||
3558 | positive, non-zero values are meaningful. The recommended range | ||
3559 | is 1 - 100, where larger values correspond to better image quality. | ||
3560 | </para> | ||
3561 | </entry> | ||
3562 | </row> | ||
3563 | <row id="jpeg-active-marker-control"> | ||
3564 | <entry spanname="id"><constant>V4L2_CID_JPEG_ACTIVE_MARKER</constant></entry> | ||
3565 | <entry>bitmask</entry> | ||
3566 | </row> | ||
3567 | <row> | ||
3568 | <entry spanname="descr">Specify which JPEG markers are included | ||
3569 | in compressed stream. This control is valid only for encoders. | ||
3570 | </entry> | ||
3571 | </row> | ||
3572 | <row> | ||
3573 | <entrytbl spanname="descr" cols="2"> | ||
3574 | <tbody valign="top"> | ||
3575 | <row> | ||
3576 | <entry><constant>V4L2_JPEG_ACTIVE_MARKER_APP0</constant></entry> | ||
3577 | <entry>Application data segment APP<subscript>0</subscript>.</entry> | ||
3578 | </row><row> | ||
3579 | <entry><constant>V4L2_JPEG_ACTIVE_MARKER_APP1</constant></entry> | ||
3580 | <entry>Application data segment APP<subscript>1</subscript>.</entry> | ||
3581 | </row><row> | ||
3582 | <entry><constant>V4L2_JPEG_ACTIVE_MARKER_COM</constant></entry> | ||
3583 | <entry>Comment segment.</entry> | ||
3584 | </row><row> | ||
3585 | <entry><constant>V4L2_JPEG_ACTIVE_MARKER_DQT</constant></entry> | ||
3586 | <entry>Quantization tables segment.</entry> | ||
3587 | </row><row> | ||
3588 | <entry><constant>V4L2_JPEG_ACTIVE_MARKER_DHT</constant></entry> | ||
3589 | <entry>Huffman tables segment.</entry> | ||
3590 | </row> | ||
3591 | </tbody> | ||
3592 | </entrytbl> | ||
3593 | </row> | ||
3594 | <row><entry></entry></row> | ||
3595 | </tbody> | ||
3596 | </tgroup> | ||
3597 | </table> | ||
3598 | <para>For more details about JPEG specification, refer | ||
3599 | to <xref linkend="itu-t81"/>, <xref linkend="jfif"/>, | ||
3600 | <xref linkend="w3c-jpeg-jfif"/>.</para> | ||
3381 | </section> | 3601 | </section> |
3382 | </section> | 3602 | </section> |
diff --git a/Documentation/DocBook/media/v4l/selection-api.xml b/Documentation/DocBook/media/v4l/selection-api.xml index 2f0bdb4d5551..b299e4779354 100644 --- a/Documentation/DocBook/media/v4l/selection-api.xml +++ b/Documentation/DocBook/media/v4l/selection-api.xml | |||
@@ -52,6 +52,10 @@ cropping and composing rectangles have the same size.</para> | |||
52 | </textobject> | 52 | </textobject> |
53 | </mediaobject> | 53 | </mediaobject> |
54 | </figure> | 54 | </figure> |
55 | |||
56 | For complete list of the available selection targets see table <xref | ||
57 | linkend="v4l2-sel-target"/> | ||
58 | |||
55 | </section> | 59 | </section> |
56 | 60 | ||
57 | <section> | 61 | <section> |
@@ -186,7 +190,7 @@ V4L2_SEL_TGT_COMPOSE_ACTIVE </constant> target.</para> | |||
186 | 190 | ||
187 | <section> | 191 | <section> |
188 | 192 | ||
189 | <title>Scaling control.</title> | 193 | <title>Scaling control</title> |
190 | 194 | ||
191 | <para>An application can detect if scaling is performed by comparing the width | 195 | <para>An application can detect if scaling is performed by comparing the width |
192 | and the height of rectangles obtained using <constant> V4L2_SEL_TGT_CROP_ACTIVE | 196 | and the height of rectangles obtained using <constant> V4L2_SEL_TGT_CROP_ACTIVE |
@@ -200,7 +204,7 @@ the scaling ratios using these values.</para> | |||
200 | 204 | ||
201 | <section> | 205 | <section> |
202 | 206 | ||
203 | <title>Comparison with old cropping API.</title> | 207 | <title>Comparison with old cropping API</title> |
204 | 208 | ||
205 | <para>The selection API was introduced to cope with deficiencies of previous | 209 | <para>The selection API was introduced to cope with deficiencies of previous |
206 | <link linkend="crop"> API </link>, that was designed to control simple capture | 210 | <link linkend="crop"> API </link>, that was designed to control simple capture |
diff --git a/Documentation/DocBook/media/v4l/v4l2.xml b/Documentation/DocBook/media/v4l/v4l2.xml index e97c512861bb..8ae38876172e 100644 --- a/Documentation/DocBook/media/v4l/v4l2.xml +++ b/Documentation/DocBook/media/v4l/v4l2.xml | |||
@@ -128,6 +128,22 @@ structs, ioctls) must be noted in more detail in the history chapter | |||
128 | applications. --> | 128 | applications. --> |
129 | 129 | ||
130 | <revision> | 130 | <revision> |
131 | <revnumber>3.4</revnumber> | ||
132 | <date>2012-01-25</date> | ||
133 | <authorinitials>sn</authorinitials> | ||
134 | <revremark>Added <link linkend="jpeg-controls">JPEG compression | ||
135 | control class.</link> | ||
136 | </revremark> | ||
137 | </revision> | ||
138 | |||
139 | <revision> | ||
140 | <revnumber>3.3</revnumber> | ||
141 | <date>2012-01-11</date> | ||
142 | <authorinitials>hv</authorinitials> | ||
143 | <revremark>Added device_caps field to struct v4l2_capabilities.</revremark> | ||
144 | </revision> | ||
145 | |||
146 | <revision> | ||
131 | <revnumber>3.2</revnumber> | 147 | <revnumber>3.2</revnumber> |
132 | <date>2011-08-26</date> | 148 | <date>2011-08-26</date> |
133 | <authorinitials>hv</authorinitials> | 149 | <authorinitials>hv</authorinitials> |
@@ -417,7 +433,7 @@ and discussions on the V4L mailing list.</revremark> | |||
417 | </partinfo> | 433 | </partinfo> |
418 | 434 | ||
419 | <title>Video for Linux Two API Specification</title> | 435 | <title>Video for Linux Two API Specification</title> |
420 | <subtitle>Revision 3.2</subtitle> | 436 | <subtitle>Revision 3.3</subtitle> |
421 | 437 | ||
422 | <chapter id="common"> | 438 | <chapter id="common"> |
423 | &sub-common; | 439 | &sub-common; |
@@ -473,6 +489,7 @@ and discussions on the V4L mailing list.</revremark> | |||
473 | &sub-cropcap; | 489 | &sub-cropcap; |
474 | &sub-dbg-g-chip-ident; | 490 | &sub-dbg-g-chip-ident; |
475 | &sub-dbg-g-register; | 491 | &sub-dbg-g-register; |
492 | &sub-decoder-cmd; | ||
476 | &sub-dqevent; | 493 | &sub-dqevent; |
477 | &sub-encoder-cmd; | 494 | &sub-encoder-cmd; |
478 | &sub-enumaudio; | 495 | &sub-enumaudio; |
diff --git a/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml b/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml new file mode 100644 index 000000000000..74b87f6e480a --- /dev/null +++ b/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml | |||
@@ -0,0 +1,256 @@ | |||
1 | <refentry id="vidioc-decoder-cmd"> | ||
2 | <refmeta> | ||
3 | <refentrytitle>ioctl VIDIOC_DECODER_CMD, VIDIOC_TRY_DECODER_CMD</refentrytitle> | ||
4 | &manvol; | ||
5 | </refmeta> | ||
6 | |||
7 | <refnamediv> | ||
8 | <refname>VIDIOC_DECODER_CMD</refname> | ||
9 | <refname>VIDIOC_TRY_DECODER_CMD</refname> | ||
10 | <refpurpose>Execute an decoder command</refpurpose> | ||
11 | </refnamediv> | ||
12 | |||
13 | <refsynopsisdiv> | ||
14 | <funcsynopsis> | ||
15 | <funcprototype> | ||
16 | <funcdef>int <function>ioctl</function></funcdef> | ||
17 | <paramdef>int <parameter>fd</parameter></paramdef> | ||
18 | <paramdef>int <parameter>request</parameter></paramdef> | ||
19 | <paramdef>struct v4l2_decoder_cmd *<parameter>argp</parameter></paramdef> | ||
20 | </funcprototype> | ||
21 | </funcsynopsis> | ||
22 | </refsynopsisdiv> | ||
23 | |||
24 | <refsect1> | ||
25 | <title>Arguments</title> | ||
26 | |||
27 | <variablelist> | ||
28 | <varlistentry> | ||
29 | <term><parameter>fd</parameter></term> | ||
30 | <listitem> | ||
31 | <para>&fd;</para> | ||
32 | </listitem> | ||
33 | </varlistentry> | ||
34 | <varlistentry> | ||
35 | <term><parameter>request</parameter></term> | ||
36 | <listitem> | ||
37 | <para>VIDIOC_DECODER_CMD, VIDIOC_TRY_DECODER_CMD</para> | ||
38 | </listitem> | ||
39 | </varlistentry> | ||
40 | <varlistentry> | ||
41 | <term><parameter>argp</parameter></term> | ||
42 | <listitem> | ||
43 | <para></para> | ||
44 | </listitem> | ||
45 | </varlistentry> | ||
46 | </variablelist> | ||
47 | </refsect1> | ||
48 | |||
49 | <refsect1> | ||
50 | <title>Description</title> | ||
51 | |||
52 | <note> | ||
53 | <title>Experimental</title> | ||
54 | |||
55 | <para>This is an <link linkend="experimental">experimental</link> | ||
56 | interface and may change in the future.</para> | ||
57 | </note> | ||
58 | |||
59 | <para>These ioctls control an audio/video (usually MPEG-) decoder. | ||
60 | <constant>VIDIOC_DECODER_CMD</constant> sends a command to the | ||
61 | decoder, <constant>VIDIOC_TRY_DECODER_CMD</constant> can be used to | ||
62 | try a command without actually executing it. To send a command applications | ||
63 | must initialize all fields of a &v4l2-decoder-cmd; and call | ||
64 | <constant>VIDIOC_DECODER_CMD</constant> or <constant>VIDIOC_TRY_DECODER_CMD</constant> | ||
65 | with a pointer to this structure.</para> | ||
66 | |||
67 | <para>The <structfield>cmd</structfield> field must contain the | ||
68 | command code. Some commands use the <structfield>flags</structfield> field for | ||
69 | additional information. | ||
70 | </para> | ||
71 | |||
72 | <para>A <function>write</function>() or &VIDIOC-STREAMON; call sends an implicit | ||
73 | START command to the decoder if it has not been started yet. | ||
74 | </para> | ||
75 | |||
76 | <para>A <function>close</function>() or &VIDIOC-STREAMOFF; call of a streaming | ||
77 | file descriptor sends an implicit immediate STOP command to the decoder, and all | ||
78 | buffered data is discarded.</para> | ||
79 | |||
80 | <para>These ioctls are optional, not all drivers may support | ||
81 | them. They were introduced in Linux 3.3.</para> | ||
82 | |||
83 | <table pgwide="1" frame="none" id="v4l2-decoder-cmd"> | ||
84 | <title>struct <structname>v4l2_decoder_cmd</structname></title> | ||
85 | <tgroup cols="5"> | ||
86 | &cs-str; | ||
87 | <tbody valign="top"> | ||
88 | <row> | ||
89 | <entry>__u32</entry> | ||
90 | <entry><structfield>cmd</structfield></entry> | ||
91 | <entry></entry> | ||
92 | <entry></entry> | ||
93 | <entry>The decoder command, see <xref linkend="decoder-cmds" />.</entry> | ||
94 | </row> | ||
95 | <row> | ||
96 | <entry>__u32</entry> | ||
97 | <entry><structfield>flags</structfield></entry> | ||
98 | <entry></entry> | ||
99 | <entry></entry> | ||
100 | <entry>Flags to go with the command. If no flags are defined for | ||
101 | this command, drivers and applications must set this field to zero.</entry> | ||
102 | </row> | ||
103 | <row> | ||
104 | <entry>union</entry> | ||
105 | <entry>(anonymous)</entry> | ||
106 | <entry></entry> | ||
107 | <entry></entry> | ||
108 | <entry></entry> | ||
109 | </row> | ||
110 | <row> | ||
111 | <entry></entry> | ||
112 | <entry>struct</entry> | ||
113 | <entry><structfield>start</structfield></entry> | ||
114 | <entry></entry> | ||
115 | <entry>Structure containing additional data for the | ||
116 | <constant>V4L2_DEC_CMD_START</constant> command.</entry> | ||
117 | </row> | ||
118 | <row> | ||
119 | <entry></entry> | ||
120 | <entry></entry> | ||
121 | <entry>__s32</entry> | ||
122 | <entry><structfield>speed</structfield></entry> | ||
123 | <entry>Playback speed and direction. The playback speed is defined as | ||
124 | <structfield>speed</structfield>/1000 of the normal speed. So 1000 is normal playback. | ||
125 | Negative numbers denote reverse playback, so -1000 does reverse playback at normal | ||
126 | speed. Speeds -1, 0 and 1 have special meanings: speed 0 is shorthand for 1000 | ||
127 | (normal playback). A speed of 1 steps just one frame forward, a speed of -1 steps | ||
128 | just one frame back. | ||
129 | </entry> | ||
130 | </row> | ||
131 | <row> | ||
132 | <entry></entry> | ||
133 | <entry></entry> | ||
134 | <entry>__u32</entry> | ||
135 | <entry><structfield>format</structfield></entry> | ||
136 | <entry>Format restrictions. This field is set by the driver, not the | ||
137 | application. Possible values are <constant>V4L2_DEC_START_FMT_NONE</constant> if | ||
138 | there are no format restrictions or <constant>V4L2_DEC_START_FMT_GOP</constant> | ||
139 | if the decoder operates on full GOPs (<wordasword>Group Of Pictures</wordasword>). | ||
140 | This is usually the case for reverse playback: the decoder needs full GOPs, which | ||
141 | it can then play in reverse order. So to implement reverse playback the application | ||
142 | must feed the decoder the last GOP in the video file, then the GOP before that, etc. etc. | ||
143 | </entry> | ||
144 | </row> | ||
145 | <row> | ||
146 | <entry></entry> | ||
147 | <entry>struct</entry> | ||
148 | <entry><structfield>stop</structfield></entry> | ||
149 | <entry></entry> | ||
150 | <entry>Structure containing additional data for the | ||
151 | <constant>V4L2_DEC_CMD_STOP</constant> command.</entry> | ||
152 | </row> | ||
153 | <row> | ||
154 | <entry></entry> | ||
155 | <entry></entry> | ||
156 | <entry>__u64</entry> | ||
157 | <entry><structfield>pts</structfield></entry> | ||
158 | <entry>Stop playback at this <structfield>pts</structfield> or immediately | ||
159 | if the playback is already past that timestamp. Leave to 0 if you want to stop after the | ||
160 | last frame was decoded. | ||
161 | </entry> | ||
162 | </row> | ||
163 | <row> | ||
164 | <entry></entry> | ||
165 | <entry>struct</entry> | ||
166 | <entry><structfield>raw</structfield></entry> | ||
167 | <entry></entry> | ||
168 | <entry></entry> | ||
169 | </row> | ||
170 | <row> | ||
171 | <entry></entry> | ||
172 | <entry></entry> | ||
173 | <entry>__u32</entry> | ||
174 | <entry><structfield>data</structfield>[16]</entry> | ||
175 | <entry>Reserved for future extensions. Drivers and | ||
176 | applications must set the array to zero.</entry> | ||
177 | </row> | ||
178 | </tbody> | ||
179 | </tgroup> | ||
180 | </table> | ||
181 | |||
182 | <table pgwide="1" frame="none" id="decoder-cmds"> | ||
183 | <title>Decoder Commands</title> | ||
184 | <tgroup cols="3"> | ||
185 | &cs-def; | ||
186 | <tbody valign="top"> | ||
187 | <row> | ||
188 | <entry><constant>V4L2_DEC_CMD_START</constant></entry> | ||
189 | <entry>0</entry> | ||
190 | <entry>Start the decoder. When the decoder is already | ||
191 | running or paused, this command will just change the playback speed. | ||
192 | That means that calling <constant>V4L2_DEC_CMD_START</constant> when | ||
193 | the decoder was paused will <emphasis>not</emphasis> resume the decoder. | ||
194 | You have to explicitly call <constant>V4L2_DEC_CMD_RESUME</constant> for that. | ||
195 | This command has one flag: | ||
196 | <constant>V4L2_DEC_CMD_START_MUTE_AUDIO</constant>. If set, then audio will | ||
197 | be muted when playing back at a non-standard speed. | ||
198 | </entry> | ||
199 | </row> | ||
200 | <row> | ||
201 | <entry><constant>V4L2_DEC_CMD_STOP</constant></entry> | ||
202 | <entry>1</entry> | ||
203 | <entry>Stop the decoder. When the decoder is already stopped, | ||
204 | this command does nothing. This command has two flags: | ||
205 | if <constant>V4L2_DEC_CMD_STOP_TO_BLACK</constant> is set, then the decoder will | ||
206 | set the picture to black after it stopped decoding. Otherwise the last image will | ||
207 | repeat. If <constant>V4L2_DEC_CMD_STOP_IMMEDIATELY</constant> is set, then the decoder | ||
208 | stops immediately (ignoring the <structfield>pts</structfield> value), otherwise it | ||
209 | will keep decoding until timestamp >= pts or until the last of the pending data from | ||
210 | its internal buffers was decoded. | ||
211 | </entry> | ||
212 | </row> | ||
213 | <row> | ||
214 | <entry><constant>V4L2_DEC_CMD_PAUSE</constant></entry> | ||
215 | <entry>2</entry> | ||
216 | <entry>Pause the decoder. When the decoder has not been | ||
217 | started yet, the driver will return an &EPERM;. When the decoder is | ||
218 | already paused, this command does nothing. This command has one flag: | ||
219 | if <constant>V4L2_DEC_CMD_PAUSE_TO_BLACK</constant> is set, then set the | ||
220 | decoder output to black when paused. | ||
221 | </entry> | ||
222 | </row> | ||
223 | <row> | ||
224 | <entry><constant>V4L2_DEC_CMD_RESUME</constant></entry> | ||
225 | <entry>3</entry> | ||
226 | <entry>Resume decoding after a PAUSE command. When the | ||
227 | decoder has not been started yet, the driver will return an &EPERM;. | ||
228 | When the decoder is already running, this command does nothing. No | ||
229 | flags are defined for this command.</entry> | ||
230 | </row> | ||
231 | </tbody> | ||
232 | </tgroup> | ||
233 | </table> | ||
234 | |||
235 | </refsect1> | ||
236 | |||
237 | <refsect1> | ||
238 | &return-value; | ||
239 | |||
240 | <variablelist> | ||
241 | <varlistentry> | ||
242 | <term><errorcode>EINVAL</errorcode></term> | ||
243 | <listitem> | ||
244 | <para>The <structfield>cmd</structfield> field is invalid.</para> | ||
245 | </listitem> | ||
246 | </varlistentry> | ||
247 | <varlistentry> | ||
248 | <term><errorcode>EPERM</errorcode></term> | ||
249 | <listitem> | ||
250 | <para>The application sent a PAUSE or RESUME command when | ||
251 | the decoder was not running.</para> | ||
252 | </listitem> | ||
253 | </varlistentry> | ||
254 | </variablelist> | ||
255 | </refsect1> | ||
256 | </refentry> | ||
diff --git a/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml b/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml index af7f3f2a36dd..f431b3ba79bd 100644 --- a/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml +++ b/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml | |||
@@ -74,15 +74,16 @@ only used by the STOP command and contains one bit: If the | |||
74 | encoding will continue until the end of the current <wordasword>Group | 74 | encoding will continue until the end of the current <wordasword>Group |
75 | Of Pictures</wordasword>, otherwise it will stop immediately.</para> | 75 | Of Pictures</wordasword>, otherwise it will stop immediately.</para> |
76 | 76 | ||
77 | <para>A <function>read</function>() call sends a START command to | 77 | <para>A <function>read</function>() or &VIDIOC-STREAMON; call sends an implicit |
78 | the encoder if it has not been started yet. After a STOP command, | 78 | START command to the encoder if it has not been started yet. After a STOP command, |
79 | <function>read</function>() calls will read the remaining data | 79 | <function>read</function>() calls will read the remaining data |
80 | buffered by the driver. When the buffer is empty, | 80 | buffered by the driver. When the buffer is empty, |
81 | <function>read</function>() will return zero and the next | 81 | <function>read</function>() will return zero and the next |
82 | <function>read</function>() call will restart the encoder.</para> | 82 | <function>read</function>() call will restart the encoder.</para> |
83 | 83 | ||
84 | <para>A <function>close</function>() call sends an immediate STOP | 84 | <para>A <function>close</function>() or &VIDIOC-STREAMOFF; call of a streaming |
85 | to the encoder, and all buffered data is discarded.</para> | 85 | file descriptor sends an implicit immediate STOP to the encoder, and all buffered |
86 | data is discarded.</para> | ||
86 | 87 | ||
87 | <para>These ioctls are optional, not all drivers may support | 88 | <para>These ioctls are optional, not all drivers may support |
88 | them. They were introduced in Linux 2.6.21.</para> | 89 | them. They were introduced in Linux 2.6.21.</para> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml b/Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml index 01ea24b84385..48748499c097 100644 --- a/Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml +++ b/Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml | |||
@@ -57,6 +57,11 @@ | |||
57 | <refsect1> | 57 | <refsect1> |
58 | <title>Description</title> | 58 | <title>Description</title> |
59 | 59 | ||
60 | <para>These ioctls are <emphasis role="bold">deprecated</emphasis>. | ||
61 | New drivers and applications should use <link linkend="jpeg-controls"> | ||
62 | JPEG class controls</link> for image quality and JPEG markers control. | ||
63 | </para> | ||
64 | |||
60 | <para>[to do]</para> | 65 | <para>[to do]</para> |
61 | 66 | ||
62 | <para>Ronald Bultje elaborates:</para> | 67 | <para>Ronald Bultje elaborates:</para> |
@@ -86,7 +91,10 @@ to add them.</para> | |||
86 | <row> | 91 | <row> |
87 | <entry>int</entry> | 92 | <entry>int</entry> |
88 | <entry><structfield>quality</structfield></entry> | 93 | <entry><structfield>quality</structfield></entry> |
89 | <entry></entry> | 94 | <entry>Deprecated. If <link linkend="jpeg-quality-control"><constant> |
95 | V4L2_CID_JPEG_IMAGE_QUALITY</constant></link> control is exposed by | ||
96 | a driver applications should use it instead and ignore this field. | ||
97 | </entry> | ||
90 | </row> | 98 | </row> |
91 | <row> | 99 | <row> |
92 | <entry>int</entry> | 100 | <entry>int</entry> |
@@ -116,7 +124,11 @@ to add them.</para> | |||
116 | <row> | 124 | <row> |
117 | <entry>__u32</entry> | 125 | <entry>__u32</entry> |
118 | <entry><structfield>jpeg_markers</structfield></entry> | 126 | <entry><structfield>jpeg_markers</structfield></entry> |
119 | <entry>See <xref linkend="jpeg-markers" />.</entry> | 127 | <entry>See <xref linkend="jpeg-markers"/>. Deprecated. |
128 | If <link linkend="jpeg-active-marker-control"><constant> | ||
129 | V4L2_CID_JPEG_ACTIVE_MARKER</constant></link> control | ||
130 | is exposed by a driver applications should use it instead | ||
131 | and ignore this field.</entry> | ||
120 | </row> | 132 | </row> |
121 | </tbody> | 133 | </tbody> |
122 | </tgroup> | 134 | </tgroup> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-selection.xml b/Documentation/DocBook/media/v4l/vidioc-g-selection.xml index a9d36e0c090e..bb04eff75f45 100644 --- a/Documentation/DocBook/media/v4l/vidioc-g-selection.xml +++ b/Documentation/DocBook/media/v4l/vidioc-g-selection.xml | |||
@@ -58,43 +58,43 @@ | |||
58 | 58 | ||
59 | <para>The ioctls are used to query and configure selection rectangles.</para> | 59 | <para>The ioctls are used to query and configure selection rectangles.</para> |
60 | 60 | ||
61 | <para> To query the cropping (composing) rectangle set <structfield> | 61 | <para> To query the cropping (composing) rectangle set &v4l2-selection; |
62 | &v4l2-selection;::type </structfield> to the respective buffer type. Do not | 62 | <structfield> type </structfield> field to the respective buffer type. |
63 | use multiplanar buffers. Use <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE | 63 | Do not use multiplanar buffers. Use <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE |
64 | </constant> instead of <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE | 64 | </constant> instead of <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE |
65 | </constant>. Use <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT </constant> instead of | 65 | </constant>. Use <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT </constant> instead of |
66 | <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE </constant>. The next step is | 66 | <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE </constant>. The next step is |
67 | setting <structfield> &v4l2-selection;::target </structfield> to value | 67 | setting the value of &v4l2-selection; <structfield>target</structfield> field |
68 | <constant> V4L2_SEL_TGT_CROP_ACTIVE </constant> (<constant> | 68 | to <constant> V4L2_SEL_TGT_CROP_ACTIVE </constant> (<constant> |
69 | V4L2_SEL_TGT_COMPOSE_ACTIVE </constant>). Please refer to table <xref | 69 | V4L2_SEL_TGT_COMPOSE_ACTIVE </constant>). Please refer to table <xref |
70 | linkend="v4l2-sel-target" /> or <xref linkend="selection-api" /> for additional | 70 | linkend="v4l2-sel-target" /> or <xref linkend="selection-api" /> for additional |
71 | targets. Fields <structfield> &v4l2-selection;::flags </structfield> and | 71 | targets. The <structfield>flags</structfield> and <structfield>reserved |
72 | <structfield> &v4l2-selection;::reserved </structfield> are ignored and they | 72 | </structfield> fields of &v4l2-selection; are ignored and they must be filled |
73 | must be filled with zeros. The driver fills the rest of the structure or | 73 | with zeros. The driver fills the rest of the structure or |
74 | returns &EINVAL; if incorrect buffer type or target was used. If cropping | 74 | returns &EINVAL; if incorrect buffer type or target was used. If cropping |
75 | (composing) is not supported then the active rectangle is not mutable and it is | 75 | (composing) is not supported then the active rectangle is not mutable and it is |
76 | always equal to the bounds rectangle. Finally, structure <structfield> | 76 | always equal to the bounds rectangle. Finally, the &v4l2-rect; |
77 | &v4l2-selection;::r </structfield> is filled with the current cropping | 77 | <structfield>r</structfield> rectangle is filled with the current cropping |
78 | (composing) coordinates. The coordinates are expressed in driver-dependent | 78 | (composing) coordinates. The coordinates are expressed in driver-dependent |
79 | units. The only exception are rectangles for images in raw formats, whose | 79 | units. The only exception are rectangles for images in raw formats, whose |
80 | coordinates are always expressed in pixels. </para> | 80 | coordinates are always expressed in pixels. </para> |
81 | 81 | ||
82 | <para> To change the cropping (composing) rectangle set <structfield> | 82 | <para> To change the cropping (composing) rectangle set the &v4l2-selection; |
83 | &v4l2-selection;::type </structfield> to the respective buffer type. Do not | 83 | <structfield>type</structfield> field to the respective buffer type. Do not |
84 | use multiplanar buffers. Use <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE | 84 | use multiplanar buffers. Use <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE |
85 | </constant> instead of <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE | 85 | </constant> instead of <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE |
86 | </constant>. Use <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT </constant> instead of | 86 | </constant>. Use <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT </constant> instead of |
87 | <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE </constant>. The next step is | 87 | <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE </constant>. The next step is |
88 | setting <structfield> &v4l2-selection;::target </structfield> to value | 88 | setting the value of &v4l2-selection; <structfield>target</structfield> to |
89 | <constant> V4L2_SEL_TGT_CROP_ACTIVE </constant> (<constant> | 89 | <constant>V4L2_SEL_TGT_CROP_ACTIVE</constant> (<constant> |
90 | V4L2_SEL_TGT_COMPOSE_ACTIVE </constant>). Please refer to table <xref | 90 | V4L2_SEL_TGT_COMPOSE_ACTIVE </constant>). Please refer to table <xref |
91 | linkend="v4l2-sel-target" /> or <xref linkend="selection-api" /> for additional | 91 | linkend="v4l2-sel-target" /> or <xref linkend="selection-api" /> for additional |
92 | targets. Set desired active area into the field <structfield> | 92 | targets. The &v4l2-rect; <structfield>r</structfield> rectangle need to be |
93 | &v4l2-selection;::r </structfield>. Field <structfield> | 93 | set to the desired active area. Field &v4l2-selection; <structfield> reserved |
94 | &v4l2-selection;::reserved </structfield> is ignored and must be filled with | 94 | </structfield> is ignored and must be filled with zeros. The driver may adjust |
95 | zeros. The driver may adjust the rectangle coordinates. An application may | 95 | coordinates of the requested rectangle. An application may |
96 | introduce constraints to control rounding behaviour. Set the field | 96 | introduce constraints to control rounding behaviour. The &v4l2-selection; |
97 | <structfield> &v4l2-selection;::flags </structfield> to one of values: | 97 | <structfield>flags</structfield> field must be set to one of the following: |
98 | 98 | ||
99 | <itemizedlist> | 99 | <itemizedlist> |
100 | <listitem> | 100 | <listitem> |
@@ -129,7 +129,7 @@ and vertical offset and sizes are chosen according to following priority: | |||
129 | 129 | ||
130 | <orderedlist> | 130 | <orderedlist> |
131 | <listitem> | 131 | <listitem> |
132 | <para>Satisfy constraints from <structfield>&v4l2-selection;::flags</structfield>.</para> | 132 | <para>Satisfy constraints from &v4l2-selection; <structfield>flags</structfield>.</para> |
133 | </listitem> | 133 | </listitem> |
134 | <listitem> | 134 | <listitem> |
135 | <para>Adjust width, height, left, and top to hardware limits and alignments.</para> | 135 | <para>Adjust width, height, left, and top to hardware limits and alignments.</para> |
@@ -145,7 +145,7 @@ and vertical offset and sizes are chosen according to following priority: | |||
145 | </listitem> | 145 | </listitem> |
146 | </orderedlist> | 146 | </orderedlist> |
147 | 147 | ||
148 | On success the field <structfield> &v4l2-selection;::r </structfield> contains | 148 | On success the &v4l2-rect; <structfield>r</structfield> field contains |
149 | the adjusted rectangle. When the parameters are unsuitable the application may | 149 | the adjusted rectangle. When the parameters are unsuitable the application may |
150 | modify the cropping (composing) or image parameters and repeat the cycle until | 150 | modify the cropping (composing) or image parameters and repeat the cycle until |
151 | satisfactory parameters have been negotiated. If constraints flags have to be | 151 | satisfactory parameters have been negotiated. If constraints flags have to be |
@@ -162,38 +162,38 @@ exist no rectangle </emphasis> that satisfies the constraints.</para> | |||
162 | <tbody valign="top"> | 162 | <tbody valign="top"> |
163 | <row> | 163 | <row> |
164 | <entry><constant>V4L2_SEL_TGT_CROP_ACTIVE</constant></entry> | 164 | <entry><constant>V4L2_SEL_TGT_CROP_ACTIVE</constant></entry> |
165 | <entry>0</entry> | 165 | <entry>0x0000</entry> |
166 | <entry>area that is currently cropped by hardware</entry> | 166 | <entry>The area that is currently cropped by hardware.</entry> |
167 | </row> | 167 | </row> |
168 | <row> | 168 | <row> |
169 | <entry><constant>V4L2_SEL_TGT_CROP_DEFAULT</constant></entry> | 169 | <entry><constant>V4L2_SEL_TGT_CROP_DEFAULT</constant></entry> |
170 | <entry>1</entry> | 170 | <entry>0x0001</entry> |
171 | <entry>suggested cropping rectangle that covers the "whole picture"</entry> | 171 | <entry>Suggested cropping rectangle that covers the "whole picture".</entry> |
172 | </row> | 172 | </row> |
173 | <row> | 173 | <row> |
174 | <entry><constant>V4L2_SEL_TGT_CROP_BOUNDS</constant></entry> | 174 | <entry><constant>V4L2_SEL_TGT_CROP_BOUNDS</constant></entry> |
175 | <entry>2</entry> | 175 | <entry>0x0002</entry> |
176 | <entry>limits for the cropping rectangle</entry> | 176 | <entry>Limits for the cropping rectangle.</entry> |
177 | </row> | 177 | </row> |
178 | <row> | 178 | <row> |
179 | <entry><constant>V4L2_SEL_TGT_COMPOSE_ACTIVE</constant></entry> | 179 | <entry><constant>V4L2_SEL_TGT_COMPOSE_ACTIVE</constant></entry> |
180 | <entry>256</entry> | 180 | <entry>0x0100</entry> |
181 | <entry>area to which data are composed by hardware</entry> | 181 | <entry>The area to which data is composed by hardware.</entry> |
182 | </row> | 182 | </row> |
183 | <row> | 183 | <row> |
184 | <entry><constant>V4L2_SEL_TGT_COMPOSE_DEFAULT</constant></entry> | 184 | <entry><constant>V4L2_SEL_TGT_COMPOSE_DEFAULT</constant></entry> |
185 | <entry>257</entry> | 185 | <entry>0x0101</entry> |
186 | <entry>suggested composing rectangle that covers the "whole picture"</entry> | 186 | <entry>Suggested composing rectangle that covers the "whole picture".</entry> |
187 | </row> | 187 | </row> |
188 | <row> | 188 | <row> |
189 | <entry><constant>V4L2_SEL_TGT_COMPOSE_BOUNDS</constant></entry> | 189 | <entry><constant>V4L2_SEL_TGT_COMPOSE_BOUNDS</constant></entry> |
190 | <entry>258</entry> | 190 | <entry>0x0102</entry> |
191 | <entry>limits for the composing rectangle</entry> | 191 | <entry>Limits for the composing rectangle.</entry> |
192 | </row> | 192 | </row> |
193 | <row> | 193 | <row> |
194 | <entry><constant>V4L2_SEL_TGT_COMPOSE_PADDED</constant></entry> | 194 | <entry><constant>V4L2_SEL_TGT_COMPOSE_PADDED</constant></entry> |
195 | <entry>259</entry> | 195 | <entry>0x0103</entry> |
196 | <entry>the active area and all padding pixels that are inserted or modified by the hardware</entry> | 196 | <entry>The active area and all padding pixels that are inserted or modified by hardware.</entry> |
197 | </row> | 197 | </row> |
198 | </tbody> | 198 | </tbody> |
199 | </tgroup> | 199 | </tgroup> |
@@ -209,12 +209,14 @@ exist no rectangle </emphasis> that satisfies the constraints.</para> | |||
209 | <row> | 209 | <row> |
210 | <entry><constant>V4L2_SEL_FLAG_GE</constant></entry> | 210 | <entry><constant>V4L2_SEL_FLAG_GE</constant></entry> |
211 | <entry>0x00000001</entry> | 211 | <entry>0x00000001</entry> |
212 | <entry>indicate that adjusted rectangle must contain a rectangle from <structfield>&v4l2-selection;::r</structfield></entry> | 212 | <entry>Indicates that the adjusted rectangle must contain the original |
213 | &v4l2-selection; <structfield>r</structfield> rectangle.</entry> | ||
213 | </row> | 214 | </row> |
214 | <row> | 215 | <row> |
215 | <entry><constant>V4L2_SEL_FLAG_LE</constant></entry> | 216 | <entry><constant>V4L2_SEL_FLAG_LE</constant></entry> |
216 | <entry>0x00000002</entry> | 217 | <entry>0x00000002</entry> |
217 | <entry>indicate that adjusted rectangle must be inside a rectangle from <structfield>&v4l2-selection;::r</structfield></entry> | 218 | <entry>Indicates that the adjusted rectangle must be inside the original |
219 | &v4l2-rect; <structfield>r</structfield> rectangle.</entry> | ||
218 | </row> | 220 | </row> |
219 | </tbody> | 221 | </tbody> |
220 | </tgroup> | 222 | </tgroup> |
@@ -245,27 +247,29 @@ exist no rectangle </emphasis> that satisfies the constraints.</para> | |||
245 | <row> | 247 | <row> |
246 | <entry>__u32</entry> | 248 | <entry>__u32</entry> |
247 | <entry><structfield>type</structfield></entry> | 249 | <entry><structfield>type</structfield></entry> |
248 | <entry>Type of the buffer (from &v4l2-buf-type;)</entry> | 250 | <entry>Type of the buffer (from &v4l2-buf-type;).</entry> |
249 | </row> | 251 | </row> |
250 | <row> | 252 | <row> |
251 | <entry>__u32</entry> | 253 | <entry>__u32</entry> |
252 | <entry><structfield>target</structfield></entry> | 254 | <entry><structfield>target</structfield></entry> |
253 | <entry>used to select between <link linkend="v4l2-sel-target"> cropping and composing rectangles </link></entry> | 255 | <entry>Used to select between <link linkend="v4l2-sel-target"> cropping |
256 | and composing rectangles</link>.</entry> | ||
254 | </row> | 257 | </row> |
255 | <row> | 258 | <row> |
256 | <entry>__u32</entry> | 259 | <entry>__u32</entry> |
257 | <entry><structfield>flags</structfield></entry> | 260 | <entry><structfield>flags</structfield></entry> |
258 | <entry>control over coordinates adjustments, refer to <link linkend="v4l2-sel-flags">selection flags</link></entry> | 261 | <entry>Flags controlling the selection rectangle adjustments, refer to |
262 | <link linkend="v4l2-sel-flags">selection flags</link>.</entry> | ||
259 | </row> | 263 | </row> |
260 | <row> | 264 | <row> |
261 | <entry>&v4l2-rect;</entry> | 265 | <entry>&v4l2-rect;</entry> |
262 | <entry><structfield>r</structfield></entry> | 266 | <entry><structfield>r</structfield></entry> |
263 | <entry>selection rectangle</entry> | 267 | <entry>The selection rectangle.</entry> |
264 | </row> | 268 | </row> |
265 | <row> | 269 | <row> |
266 | <entry>__u32</entry> | 270 | <entry>__u32</entry> |
267 | <entry><structfield>reserved[9]</structfield></entry> | 271 | <entry><structfield>reserved[9]</structfield></entry> |
268 | <entry>Reserved fields for future use</entry> | 272 | <entry>Reserved fields for future use.</entry> |
269 | </row> | 273 | </row> |
270 | </tbody> | 274 | </tbody> |
271 | </tgroup> | 275 | </tgroup> |
@@ -278,24 +282,24 @@ exist no rectangle </emphasis> that satisfies the constraints.</para> | |||
278 | <varlistentry> | 282 | <varlistentry> |
279 | <term><errorcode>EINVAL</errorcode></term> | 283 | <term><errorcode>EINVAL</errorcode></term> |
280 | <listitem> | 284 | <listitem> |
281 | <para>The buffer <structfield> &v4l2-selection;::type </structfield> | 285 | <para>Given buffer type <structfield>type</structfield> or |
282 | or <structfield> &v4l2-selection;::target </structfield> is not supported, or | 286 | the selection target <structfield>target</structfield> is not supported, |
283 | the <structfield> &v4l2-selection;::flags </structfield> are invalid.</para> | 287 | or the <structfield>flags</structfield> argument is not valid.</para> |
284 | </listitem> | 288 | </listitem> |
285 | </varlistentry> | 289 | </varlistentry> |
286 | <varlistentry> | 290 | <varlistentry> |
287 | <term><errorcode>ERANGE</errorcode></term> | 291 | <term><errorcode>ERANGE</errorcode></term> |
288 | <listitem> | 292 | <listitem> |
289 | <para>it is not possible to adjust a rectangle <structfield> | 293 | <para>It is not possible to adjust &v4l2-rect; <structfield> |
290 | &v4l2-selection;::r </structfield> that satisfies all contraints from | 294 | r</structfield> rectangle to satisfy all contraints given in the |
291 | <structfield> &v4l2-selection;::flags </structfield>.</para> | 295 | <structfield>flags</structfield> argument.</para> |
292 | </listitem> | 296 | </listitem> |
293 | </varlistentry> | 297 | </varlistentry> |
294 | <varlistentry> | 298 | <varlistentry> |
295 | <term><errorcode>EBUSY</errorcode></term> | 299 | <term><errorcode>EBUSY</errorcode></term> |
296 | <listitem> | 300 | <listitem> |
297 | <para>it is not possible to apply change of selection rectangle at the moment. | 301 | <para>It is not possible to apply change of the selection rectangle |
298 | Usually because streaming is in progress.</para> | 302 | at the moment. Usually because streaming is in progress.</para> |
299 | </listitem> | 303 | </listitem> |
300 | </varlistentry> | 304 | </varlistentry> |
301 | </variablelist> | 305 | </variablelist> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-querycap.xml b/Documentation/DocBook/media/v4l/vidioc-querycap.xml index e3664d6f2de4..4643505cd4ca 100644 --- a/Documentation/DocBook/media/v4l/vidioc-querycap.xml +++ b/Documentation/DocBook/media/v4l/vidioc-querycap.xml | |||
@@ -124,12 +124,35 @@ printf ("Version: %u.%u.%u\n", | |||
124 | <row> | 124 | <row> |
125 | <entry>__u32</entry> | 125 | <entry>__u32</entry> |
126 | <entry><structfield>capabilities</structfield></entry> | 126 | <entry><structfield>capabilities</structfield></entry> |
127 | <entry>Device capabilities, see <xref | 127 | <entry>Available capabilities of the physical device as a whole, see <xref |
128 | linkend="device-capabilities" />.</entry> | 128 | linkend="device-capabilities" />. The same physical device can export |
129 | multiple devices in /dev (e.g. /dev/videoX, /dev/vbiY and /dev/radioZ). | ||
130 | The <structfield>capabilities</structfield> field should contain a union | ||
131 | of all capabilities available around the several V4L2 devices exported | ||
132 | to userspace. | ||
133 | For all those devices the <structfield>capabilities</structfield> field | ||
134 | returns the same set of capabilities. This allows applications to open | ||
135 | just one of the devices (typically the video device) and discover whether | ||
136 | video, vbi and/or radio are also supported. | ||
137 | </entry> | ||
129 | </row> | 138 | </row> |
130 | <row> | 139 | <row> |
131 | <entry>__u32</entry> | 140 | <entry>__u32</entry> |
132 | <entry><structfield>reserved</structfield>[4]</entry> | 141 | <entry><structfield>device_caps</structfield></entry> |
142 | <entry>Device capabilities of the opened device, see <xref | ||
143 | linkend="device-capabilities" />. Should contain the available capabilities | ||
144 | of that specific device node. So, for example, <structfield>device_caps</structfield> | ||
145 | of a radio device will only contain radio related capabilities and | ||
146 | no video or vbi capabilities. This field is only set if the <structfield>capabilities</structfield> | ||
147 | field contains the <constant>V4L2_CAP_DEVICE_CAPS</constant> capability. | ||
148 | Only the <structfield>capabilities</structfield> field can have the | ||
149 | <constant>V4L2_CAP_DEVICE_CAPS</constant> capability, <structfield>device_caps</structfield> | ||
150 | will never set <constant>V4L2_CAP_DEVICE_CAPS</constant>. | ||
151 | </entry> | ||
152 | </row> | ||
153 | <row> | ||
154 | <entry>__u32</entry> | ||
155 | <entry><structfield>reserved</structfield>[3]</entry> | ||
133 | <entry>Reserved for future extensions. Drivers must set | 156 | <entry>Reserved for future extensions. Drivers must set |
134 | this array to zero.</entry> | 157 | this array to zero.</entry> |
135 | </row> | 158 | </row> |
@@ -276,6 +299,13 @@ linkend="async">asynchronous</link> I/O methods.</entry> | |||
276 | <entry>The device supports the <link | 299 | <entry>The device supports the <link |
277 | linkend="mmap">streaming</link> I/O method.</entry> | 300 | linkend="mmap">streaming</link> I/O method.</entry> |
278 | </row> | 301 | </row> |
302 | <row> | ||
303 | <entry><constant>V4L2_CAP_DEVICE_CAPS</constant></entry> | ||
304 | <entry>0x80000000</entry> | ||
305 | <entry>The driver fills the <structfield>device_caps</structfield> | ||
306 | field. This capability can only appear in the <structfield>capabilities</structfield> | ||
307 | field and never in the <structfield>device_caps</structfield> field.</entry> | ||
308 | </row> | ||
279 | </tbody> | 309 | </tbody> |
280 | </tgroup> | 310 | </tgroup> |
281 | </table> | 311 | </table> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml b/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml index e013da845b11..18b1a8266f7c 100644 --- a/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml +++ b/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml | |||
@@ -96,8 +96,8 @@ field and the &v4l2-tuner; <structfield>index</structfield> field.</entry> | |||
96 | <row> | 96 | <row> |
97 | <entry>__u32</entry> | 97 | <entry>__u32</entry> |
98 | <entry><structfield>reserved</structfield>[7]</entry> | 98 | <entry><structfield>reserved</structfield>[7]</entry> |
99 | <entry>Reserved for future extensions. Drivers and | 99 | <entry>Reserved for future extensions. Applications |
100 | applications must set the array to zero.</entry> | 100 | must set the array to zero.</entry> |
101 | </row> | 101 | </row> |
102 | </tbody> | 102 | </tbody> |
103 | </tgroup> | 103 | </tgroup> |
@@ -112,7 +112,7 @@ field and the &v4l2-tuner; <structfield>index</structfield> field.</entry> | |||
112 | <term><errorcode>EINVAL</errorcode></term> | 112 | <term><errorcode>EINVAL</errorcode></term> |
113 | <listitem> | 113 | <listitem> |
114 | <para>The <structfield>tuner</structfield> index is out of | 114 | <para>The <structfield>tuner</structfield> index is out of |
115 | bounds or the value in the <structfield>type</structfield> field is | 115 | bounds, the wrap_around value is not supported or the value in the <structfield>type</structfield> field is |
116 | wrong.</para> | 116 | wrong.</para> |
117 | </listitem> | 117 | </listitem> |
118 | </varlistentry> | 118 | </varlistentry> |
diff --git a/Documentation/dvb/cards.txt b/Documentation/dvb/cards.txt index cc09187a5db7..97709e9a3076 100644 --- a/Documentation/dvb/cards.txt +++ b/Documentation/dvb/cards.txt | |||
@@ -119,4 +119,5 @@ o Cards based on the Phillips saa7134 PCI bridge: | |||
119 | - Compro Videomate DVB-T300 | 119 | - Compro Videomate DVB-T300 |
120 | - Compro Videomate DVB-T200 | 120 | - Compro Videomate DVB-T200 |
121 | - AVerMedia AVerTVHD MCE A180 | 121 | - AVerMedia AVerTVHD MCE A180 |
122 | - KWorld PC150-U ATSC Hybrid | ||
122 | 123 | ||
diff --git a/Documentation/dvb/lmedm04.txt b/Documentation/dvb/lmedm04.txt index 10b5f0411386..f4b720a14675 100644 --- a/Documentation/dvb/lmedm04.txt +++ b/Documentation/dvb/lmedm04.txt | |||
@@ -66,5 +66,16 @@ dd if=US290D.sys ibs=1 skip=36856 count=3976 of=dvb-usb-lme2510-s0194.fw | |||
66 | For LME2510C | 66 | For LME2510C |
67 | dd if=US290D.sys ibs=1 skip=33152 count=3697 of=dvb-usb-lme2510c-s0194.fw | 67 | dd if=US290D.sys ibs=1 skip=33152 count=3697 of=dvb-usb-lme2510c-s0194.fw |
68 | 68 | ||
69 | --------------------------------------------------------------------- | ||
70 | |||
71 | The m88rs2000 tuner driver can be found in windows/system32/drivers | ||
72 | |||
73 | US2B0D.sys (dated 29 Jun 2010) | ||
74 | |||
75 | dd if=US2B0D.sys ibs=1 skip=34432 count=3871 of=dvb-usb-lme2510c-rs2000.fw | ||
76 | |||
77 | We need to modify id of rs2000 firmware or it will warm boot id 3344:1120. | ||
78 | |||
79 | echo -ne \\xF0\\x22 | dd conv=notrunc bs=1 count=2 seek=266 of=dvb-usb-lme2510c-rs2000.fw | ||
69 | 80 | ||
70 | Copy the firmware file(s) to /lib/firmware | 81 | Copy the firmware file(s) to /lib/firmware |
diff --git a/Documentation/video4linux/CARDLIST.cx23885 b/Documentation/video4linux/CARDLIST.cx23885 index 23584d0c6a75..f316d1816fcd 100644 --- a/Documentation/video4linux/CARDLIST.cx23885 +++ b/Documentation/video4linux/CARDLIST.cx23885 | |||
@@ -32,3 +32,4 @@ | |||
32 | 31 -> Leadtek Winfast PxDVR3200 H XC4000 [107d:6f39] | 32 | 31 -> Leadtek Winfast PxDVR3200 H XC4000 [107d:6f39] |
33 | 32 -> MPX-885 | 33 | 32 -> MPX-885 |
34 | 33 -> Mygica X8507 [14f1:8502] | 34 | 33 -> Mygica X8507 [14f1:8502] |
35 | 34 -> TerraTec Cinergy T PCIe Dual [153b:117e] | ||
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88 index eee18e6962b6..fa4b3f947468 100644 --- a/Documentation/video4linux/CARDLIST.cx88 +++ b/Documentation/video4linux/CARDLIST.cx88 | |||
@@ -59,7 +59,7 @@ | |||
59 | 58 -> Pinnacle PCTV HD 800i [11bd:0051] | 59 | 58 -> Pinnacle PCTV HD 800i [11bd:0051] |
60 | 59 -> DViCO FusionHDTV 5 PCI nano [18ac:d530] | 60 | 59 -> DViCO FusionHDTV 5 PCI nano [18ac:d530] |
61 | 60 -> Pinnacle Hybrid PCTV [12ab:1788] | 61 | 60 -> Pinnacle Hybrid PCTV [12ab:1788] |
62 | 61 -> Leadtek TV2000 XP Global [107d:6f18,107d:6618] | 62 | 61 -> Leadtek TV2000 XP Global [107d:6f18,107d:6618,107d:6619] |
63 | 62 -> PowerColor RA330 [14f1:ea3d] | 63 | 62 -> PowerColor RA330 [14f1:ea3d] |
64 | 63 -> Geniatech X8000-MT DVBT [14f1:8852] | 64 | 63 -> Geniatech X8000-MT DVBT [14f1:8852] |
65 | 64 -> DViCO FusionHDTV DVB-T PRO [18ac:db30] | 65 | 64 -> DViCO FusionHDTV DVB-T PRO [18ac:db30] |
@@ -87,3 +87,5 @@ | |||
87 | 86 -> TeVii S464 DVB-S/S2 [d464:9022] | 87 | 86 -> TeVii S464 DVB-S/S2 [d464:9022] |
88 | 87 -> Leadtek WinFast DTV2000 H PLUS [107d:6f42] | 88 | 87 -> Leadtek WinFast DTV2000 H PLUS [107d:6f42] |
89 | 88 -> Leadtek WinFast DTV1800 H (XC4000) [107d:6f38] | 89 | 88 -> Leadtek WinFast DTV1800 H (XC4000) [107d:6f38] |
90 | 89 -> Leadtek TV2000 XP Global (SC4100) [107d:6f36] | ||
91 | 90 -> Leadtek TV2000 XP Global (XC4100) [107d:6f43] | ||
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx index e7be3ac49ead..d99262dda533 100644 --- a/Documentation/video4linux/CARDLIST.em28xx +++ b/Documentation/video4linux/CARDLIST.em28xx | |||
@@ -7,7 +7,7 @@ | |||
7 | 6 -> Terratec Cinergy 200 USB (em2800) | 7 | 6 -> Terratec Cinergy 200 USB (em2800) |
8 | 7 -> Leadtek Winfast USB II (em2800) [0413:6023] | 8 | 7 -> Leadtek Winfast USB II (em2800) [0413:6023] |
9 | 8 -> Kworld USB2800 (em2800) | 9 | 8 -> Kworld USB2800 (em2800) |
10 | 9 -> Pinnacle Dazzle DVC 90/100/101/107 / Kaiser Baas Video to DVD maker (em2820/em2840) [1b80:e302,1b80:e304,2304:0207,2304:021a] | 10 | 9 -> Pinnacle Dazzle DVC 90/100/101/107 / Kaiser Baas Video to DVD maker (em2820/em2840) [1b80:e302,1b80:e304,2304:0207,2304:021a,093b:a003] |
11 | 10 -> Hauppauge WinTV HVR 900 (em2880) [2040:6500] | 11 | 10 -> Hauppauge WinTV HVR 900 (em2880) [2040:6500] |
12 | 11 -> Terratec Hybrid XS (em2880) | 12 | 11 -> Terratec Hybrid XS (em2880) |
13 | 12 -> Kworld PVR TV 2800 RF (em2820/em2840) | 13 | 12 -> Kworld PVR TV 2800 RF (em2820/em2840) |
@@ -61,7 +61,7 @@ | |||
61 | 61 -> Pixelview PlayTV Box 4 USB 2.0 (em2820/em2840) | 61 | 61 -> Pixelview PlayTV Box 4 USB 2.0 (em2820/em2840) |
62 | 62 -> Gadmei TVR200 (em2820/em2840) | 62 | 62 -> Gadmei TVR200 (em2820/em2840) |
63 | 63 -> Kaiomy TVnPC U2 (em2860) [eb1a:e303] | 63 | 63 -> Kaiomy TVnPC U2 (em2860) [eb1a:e303] |
64 | 64 -> Easy Cap Capture DC-60 (em2860) | 64 | 64 -> Easy Cap Capture DC-60 (em2860) [1b80:e309] |
65 | 65 -> IO-DATA GV-MVP/SZ (em2820/em2840) [04bb:0515] | 65 | 65 -> IO-DATA GV-MVP/SZ (em2820/em2840) [04bb:0515] |
66 | 66 -> Empire dual TV (em2880) | 66 | 66 -> Empire dual TV (em2880) |
67 | 67 -> Terratec Grabby (em2860) [0ccd:0096,0ccd:10AF] | 67 | 67 -> Terratec Grabby (em2860) [0ccd:0096,0ccd:10AF] |
@@ -76,7 +76,11 @@ | |||
76 | 76 -> KWorld PlusTV 340U or UB435-Q (ATSC) (em2870) [1b80:a340] | 76 | 76 -> KWorld PlusTV 340U or UB435-Q (ATSC) (em2870) [1b80:a340] |
77 | 77 -> EM2874 Leadership ISDBT (em2874) | 77 | 77 -> EM2874 Leadership ISDBT (em2874) |
78 | 78 -> PCTV nanoStick T2 290e (em28174) | 78 | 78 -> PCTV nanoStick T2 290e (em28174) |
79 | 79 -> Terratec Cinergy H5 (em2884) [0ccd:10a2,0ccd:10ad] | 79 | 79 -> Terratec Cinergy H5 (em2884) [0ccd:008e,0ccd:00ac,0ccd:10a2,0ccd:10ad] |
80 | 80 -> PCTV DVB-S2 Stick (460e) (em28174) | 80 | 80 -> PCTV DVB-S2 Stick (460e) (em28174) |
81 | 81 -> Hauppauge WinTV HVR 930C (em2884) [2040:1605] | 81 | 81 -> Hauppauge WinTV HVR 930C (em2884) [2040:1605] |
82 | 82 -> Terratec Cinergy HTC Stick (em2884) [0ccd:00b2] | 82 | 82 -> Terratec Cinergy HTC Stick (em2884) [0ccd:00b2] |
83 | 83 -> Honestech Vidbox NW03 (em2860) [eb1a:5006] | ||
84 | 84 -> MaxMedia UB425-TC (em2874) [1b80:e425] | ||
85 | 85 -> PCTV QuatroStick (510e) (em2884) [2304:0242] | ||
86 | 86 -> PCTV QuatroStick nano (520e) (em2884) [2013:0251] | ||
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134 index e7ef38a19859..34f3b330e5f4 100644 --- a/Documentation/video4linux/CARDLIST.saa7134 +++ b/Documentation/video4linux/CARDLIST.saa7134 | |||
@@ -187,3 +187,4 @@ | |||
187 | 186 -> Beholder BeholdTV 501 [5ace:5010] | 187 | 186 -> Beholder BeholdTV 501 [5ace:5010] |
188 | 187 -> Beholder BeholdTV 503 FM [5ace:5030] | 188 | 187 -> Beholder BeholdTV 503 FM [5ace:5030] |
189 | 188 -> Sensoray 811/911 [6000:0811,6000:0911] | 189 | 188 -> Sensoray 811/911 [6000:0811,6000:0911] |
190 | 189 -> Kworld PC150-U [17de:a134] | ||
diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner index 6323b7a20719..c83f6e418879 100644 --- a/Documentation/video4linux/CARDLIST.tuner +++ b/Documentation/video4linux/CARDLIST.tuner | |||
@@ -78,10 +78,11 @@ tuner=77 - TCL tuner MF02GIP-5N-E | |||
78 | tuner=78 - Philips FMD1216MEX MK3 Hybrid Tuner | 78 | tuner=78 - Philips FMD1216MEX MK3 Hybrid Tuner |
79 | tuner=79 - Philips PAL/SECAM multi (FM1216 MK5) | 79 | tuner=79 - Philips PAL/SECAM multi (FM1216 MK5) |
80 | tuner=80 - Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough | 80 | tuner=80 - Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough |
81 | tuner=81 - Xceive 4000 tuner | ||
82 | tuner=81 - Partsnic (Daewoo) PTI-5NF05 | 81 | tuner=81 - Partsnic (Daewoo) PTI-5NF05 |
83 | tuner=82 - Philips CU1216L | 82 | tuner=82 - Philips CU1216L |
84 | tuner=83 - NXP TDA18271 | 83 | tuner=83 - NXP TDA18271 |
85 | tuner=84 - Sony BTF-Pxn01Z | 84 | tuner=84 - Sony BTF-Pxn01Z |
86 | tuner=85 - Philips FQ1236 MK5 | 85 | tuner=85 - Philips FQ1236 MK5 |
87 | tuner=86 - Tena TNF5337 MFD | 86 | tuner=86 - Tena TNF5337 MFD |
87 | tuner=87 - Xceive 4000 tuner | ||
88 | tuner=88 - Xceive 5000C tuner | ||
diff --git a/Documentation/video4linux/fimc.txt b/Documentation/video4linux/fimc.txt new file mode 100644 index 000000000000..eb049708f3e4 --- /dev/null +++ b/Documentation/video4linux/fimc.txt | |||
@@ -0,0 +1,178 @@ | |||
1 | Samsung S5P/EXYNOS4 FIMC driver | ||
2 | |||
3 | Copyright (C) 2012 Samsung Electronics Co., Ltd. | ||
4 | --------------------------------------------------------------------------- | ||
5 | |||
6 | The FIMC (Fully Interactive Mobile Camera) device available in Samsung | ||
7 | SoC Application Processors is an integrated camera host interface, color | ||
8 | space converter, image resizer and rotator. It's also capable of capturing | ||
9 | data from LCD controller (FIMD) through the SoC internal writeback data | ||
10 | path. There are multiple FIMC instances in the SoCs (up to 4), having | ||
11 | slightly different capabilities, like pixel alignment constraints, rotator | ||
12 | availability, LCD writeback support, etc. The driver is located at | ||
13 | drivers/media/video/s5p-fimc directory. | ||
14 | |||
15 | 1. Supported SoCs | ||
16 | ================= | ||
17 | |||
18 | S5PC100 (mem-to-mem only), S5PV210, EXYNOS4210 | ||
19 | |||
20 | 2. Supported features | ||
21 | ===================== | ||
22 | |||
23 | - camera parallel interface capture (ITU-R.BT601/565); | ||
24 | - camera serial interface capture (MIPI-CSI2); | ||
25 | - memory-to-memory processing (color space conversion, scaling, mirror | ||
26 | and rotation); | ||
27 | - dynamic pipeline re-configuration at runtime (re-attachment of any FIMC | ||
28 | instance to any parallel video input or any MIPI-CSI front-end); | ||
29 | - runtime PM and system wide suspend/resume | ||
30 | |||
31 | Not currently supported: | ||
32 | - LCD writeback input | ||
33 | - per frame clock gating (mem-to-mem) | ||
34 | |||
35 | 3. Files partitioning | ||
36 | ===================== | ||
37 | |||
38 | - media device driver | ||
39 | drivers/media/video/s5p-fimc/fimc-mdevice.[ch] | ||
40 | |||
41 | - camera capture video device driver | ||
42 | drivers/media/video/s5p-fimc/fimc-capture.c | ||
43 | |||
44 | - MIPI-CSI2 receiver subdev | ||
45 | drivers/media/video/s5p-fimc/mipi-csis.[ch] | ||
46 | |||
47 | - video post-processor (mem-to-mem) | ||
48 | drivers/media/video/s5p-fimc/fimc-core.c | ||
49 | |||
50 | - common files | ||
51 | drivers/media/video/s5p-fimc/fimc-core.h | ||
52 | drivers/media/video/s5p-fimc/fimc-reg.h | ||
53 | drivers/media/video/s5p-fimc/regs-fimc.h | ||
54 | |||
55 | 4. User space interfaces | ||
56 | ======================== | ||
57 | |||
58 | 4.1. Media device interface | ||
59 | |||
60 | The driver supports Media Controller API as defined at | ||
61 | http://http://linuxtv.org/downloads/v4l-dvb-apis/media_common.html | ||
62 | The media device driver name is "SAMSUNG S5P FIMC". | ||
63 | |||
64 | The purpose of this interface is to allow changing assignment of FIMC instances | ||
65 | to the SoC peripheral camera input at runtime and optionally to control internal | ||
66 | connections of the MIPI-CSIS device(s) to the FIMC entities. | ||
67 | |||
68 | The media device interface allows to configure the SoC for capturing image | ||
69 | data from the sensor through more than one FIMC instance (e.g. for simultaneous | ||
70 | viewfinder and still capture setup). | ||
71 | Reconfiguration is done by enabling/disabling media links created by the driver | ||
72 | during initialization. The internal device topology can be easily discovered | ||
73 | through media entity and links enumeration. | ||
74 | |||
75 | 4.2. Memory-to-memory video node | ||
76 | |||
77 | V4L2 memory-to-memory interface at /dev/video? device node. This is standalone | ||
78 | video device, it has no media pads. However please note the mem-to-mem and | ||
79 | capture video node operation on same FIMC instance is not allowed. The driver | ||
80 | detects such cases but the applications should prevent them to avoid an | ||
81 | undefined behaviour. | ||
82 | |||
83 | 4.3. Capture video node | ||
84 | |||
85 | The driver supports V4L2 Video Capture Interface as defined at: | ||
86 | http://linuxtv.org/downloads/v4l-dvb-apis/devices.html | ||
87 | |||
88 | At the capture and mem-to-mem video nodes only the multi-planar API is | ||
89 | supported. For more details see: | ||
90 | http://linuxtv.org/downloads/v4l-dvb-apis/planar-apis.html | ||
91 | |||
92 | 4.4. Camera capture subdevs | ||
93 | |||
94 | Each FIMC instance exports a sub-device node (/dev/v4l-subdev?), a sub-device | ||
95 | node is also created per each available and enabled at the platform level | ||
96 | MIPI-CSI receiver device (currently up to two). | ||
97 | |||
98 | 4.5. sysfs | ||
99 | |||
100 | In order to enable more precise camera pipeline control through the sub-device | ||
101 | API the driver creates a sysfs entry associated with "s5p-fimc-md" platform | ||
102 | device. The entry path is: /sys/platform/devices/s5p-fimc-md/subdev_conf_mode. | ||
103 | |||
104 | In typical use case there could be a following capture pipeline configuration: | ||
105 | sensor subdev -> mipi-csi subdev -> fimc subdev -> video node | ||
106 | |||
107 | When we configure these devices through sub-device API at user space, the | ||
108 | configuration flow must be from left to right, and the video node is | ||
109 | configured as last one. | ||
110 | When we don't use sub-device user space API the whole configuration of all | ||
111 | devices belonging to the pipeline is done at the video node driver. | ||
112 | The sysfs entry allows to instruct the capture node driver not to configure | ||
113 | the sub-devices (format, crop), to avoid resetting the subdevs' configuration | ||
114 | when the last configuration steps at the video node is performed. | ||
115 | |||
116 | For full sub-device control support (subdevs configured at user space before | ||
117 | starting streaming): | ||
118 | # echo "sub-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_mode | ||
119 | |||
120 | For V4L2 video node control only (subdevs configured internally by the host | ||
121 | driver): | ||
122 | # echo "vid-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_mode | ||
123 | This is a default option. | ||
124 | |||
125 | 5. Device mapping to video and subdev device nodes | ||
126 | ================================================== | ||
127 | |||
128 | There are associated two video device nodes with each device instance in | ||
129 | hardware - video capture and mem-to-mem and additionally a subdev node for | ||
130 | more precise FIMC capture subsystem control. In addition a separate v4l2 | ||
131 | sub-device node is created per each MIPI-CSIS device. | ||
132 | |||
133 | How to find out which /dev/video? or /dev/v4l-subdev? is assigned to which | ||
134 | device? | ||
135 | |||
136 | You can either grep through the kernel log to find relevant information, i.e. | ||
137 | # dmesg | grep -i fimc | ||
138 | (note that udev, if present, might still have rearranged the video nodes), | ||
139 | |||
140 | or retrieve the information from /dev/media? with help of the media-ctl tool: | ||
141 | # media-ctl -p | ||
142 | |||
143 | 6. Platform support | ||
144 | =================== | ||
145 | |||
146 | The machine code (plat-s5p and arch/arm/mach-*) must select following options | ||
147 | |||
148 | CONFIG_S5P_DEV_FIMC0 mandatory | ||
149 | CONFIG_S5P_DEV_FIMC1 \ | ||
150 | CONFIG_S5P_DEV_FIMC2 | optional | ||
151 | CONFIG_S5P_DEV_FIMC3 | | ||
152 | CONFIG_S5P_SETUP_FIMC / | ||
153 | CONFIG_S5P_SETUP_MIPIPHY \ | ||
154 | CONFIG_S5P_DEV_CSIS0 | optional for MIPI-CSI interface | ||
155 | CONFIG_S5P_DEV_CSIS1 / | ||
156 | |||
157 | Except that, relevant s5p_device_fimc? should be registered in the machine code | ||
158 | in addition to a "s5p-fimc-md" platform device to which the media device driver | ||
159 | is bound. The "s5p-fimc-md" device instance is required even if only mem-to-mem | ||
160 | operation is used. | ||
161 | |||
162 | The description of sensor(s) attached to FIMC/MIPI-CSIS camera inputs should be | ||
163 | passed as the "s5p-fimc-md" device platform_data. The platform data structure | ||
164 | is defined in file include/media/s5p_fimc.h. | ||
165 | |||
166 | 7. Build | ||
167 | ======== | ||
168 | |||
169 | This driver depends on following config options: | ||
170 | PLAT_S5P, | ||
171 | PM_RUNTIME, | ||
172 | I2C, | ||
173 | REGULATOR, | ||
174 | VIDEO_V4L2_SUBDEV_API, | ||
175 | |||
176 | If the driver is built as a loadable kernel module (CONFIG_VIDEO_SAMSUNG_S5P_FIMC=m) | ||
177 | two modules are created (in addition to the core v4l2 modules): s5p-fimc.ko and | ||
178 | optional s5p-csis.ko (MIPI-CSI receiver subdev). | ||
diff --git a/Documentation/video4linux/gspca.txt b/Documentation/video4linux/gspca.txt index f2060f0dc02c..e6c2842407a4 100644 --- a/Documentation/video4linux/gspca.txt +++ b/Documentation/video4linux/gspca.txt | |||
@@ -217,6 +217,7 @@ ov534_9 06f8:3003 Hercules Dualpix HD Weblog | |||
217 | sonixj 06f8:3004 Hercules Classic Silver | 217 | sonixj 06f8:3004 Hercules Classic Silver |
218 | sonixj 06f8:3008 Hercules Deluxe Optical Glass | 218 | sonixj 06f8:3008 Hercules Deluxe Optical Glass |
219 | pac7302 06f8:3009 Hercules Classic Link | 219 | pac7302 06f8:3009 Hercules Classic Link |
220 | pac7302 06f8:301b Hercules Link | ||
220 | nw80x 0728:d001 AVerMedia Camguard | 221 | nw80x 0728:d001 AVerMedia Camguard |
221 | spca508 0733:0110 ViewQuest VQ110 | 222 | spca508 0733:0110 ViewQuest VQ110 |
222 | spca501 0733:0401 Intel Create and Share | 223 | spca501 0733:0401 Intel Create and Share |