diff options
-rw-r--r-- | Documentation/DocBook/media/v4l/dev-codec.xml | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/Documentation/DocBook/media/v4l/dev-codec.xml b/Documentation/DocBook/media/v4l/dev-codec.xml index dca0ecd54dc6..ff44c16fc080 100644 --- a/Documentation/DocBook/media/v4l/dev-codec.xml +++ b/Documentation/DocBook/media/v4l/dev-codec.xml | |||
@@ -1,18 +1,27 @@ | |||
1 | <title>Codec Interface</title> | 1 | <title>Codec Interface</title> |
2 | 2 | ||
3 | <note> | 3 | <para>A V4L2 codec can compress, decompress, transform, or otherwise |
4 | <title>Suspended</title> | 4 | convert video data from one format into another format, in memory. Typically |
5 | such devices are memory-to-memory devices (i.e. devices with the | ||
6 | <constant>V4L2_CAP_VIDEO_M2M</constant> or <constant>V4L2_CAP_VIDEO_M2M_MPLANE</constant> | ||
7 | capability set). | ||
8 | </para> | ||
5 | 9 | ||
6 | <para>This interface has been be suspended from the V4L2 API | 10 | <para>A memory-to-memory video node acts just like a normal video node, but it |
7 | implemented in Linux 2.6 until we have more experience with codec | 11 | supports both output (sending frames from memory to the codec hardware) and |
8 | device interfaces.</para> | 12 | capture (receiving the processed frames from the codec hardware into memory) |
9 | </note> | 13 | stream I/O. An application will have to setup the stream |
14 | I/O for both sides and finally call &VIDIOC-STREAMON; for both capture and output | ||
15 | to start the codec.</para> | ||
10 | 16 | ||
11 | <para>A V4L2 codec can compress, decompress, transform, or otherwise | 17 | <para>Video compression codecs use the MPEG controls to setup their codec parameters |
12 | convert video data from one format into another format, in memory. | 18 | (note that the MPEG controls actually support many more codecs than just MPEG). |
13 | Applications send data to be converted to the driver through a | 19 | See <xref linkend="mpeg-controls"></xref>.</para> |
14 | &func-write; call, and receive the converted data through a | ||
15 | &func-read; call. For efficiency a driver may also support streaming | ||
16 | I/O.</para> | ||
17 | 20 | ||
18 | <para>[to do]</para> | 21 | <para>Memory-to-memory devices can often be used as a shared resource: you can |
22 | open the video node multiple times, each application setting up their own codec properties | ||
23 | that are local to the file handle, and each can use it independently from the others. | ||
24 | The driver will arbitrate access to the codec and reprogram it whenever another file | ||
25 | handler gets access. This is different from the usual video node behavior where the video properties | ||
26 | are global to the device (i.e. changing something through one file handle is visible | ||
27 | through another file handle).</para> | ||