fb: adv7393: off by one in probe function
[deliverable/linux.git] / Documentation / media / uapi / v4l / vidioc-g-enc-index.rst
CommitLineData
5377d91f
MH
1.. -*- coding: utf-8; mode: rst -*-
2
af4a4d0d 3.. _VIDIOC_G_ENC_INDEX:
5377d91f
MH
4
5************************
6ioctl VIDIOC_G_ENC_INDEX
7************************
8
15e7d615 9Name
586027ce 10====
5377d91f 11
586027ce 12VIDIOC_G_ENC_INDEX - Get meta data about a compressed video stream
5377d91f 13
15e7d615
MCC
14
15Synopsis
5377d91f
MH
16========
17
b7e67f6c 18.. cpp:function:: int ioctl( int fd, int request, struct v4l2_enc_idx *argp )
5377d91f 19
586027ce 20
15e7d615 21Arguments
5377d91f
MH
22=========
23
24``fd``
25 File descriptor returned by :ref:`open() <func-open>`.
26
27``request``
28 VIDIOC_G_ENC_INDEX
29
30``argp``
31
32
15e7d615 33Description
5377d91f
MH
34===========
35
4e03cb76 36The :ref:`VIDIOC_G_ENC_INDEX <VIDIOC_G_ENC_INDEX>` ioctl provides meta data about a compressed
5377d91f
MH
37video stream the same or another application currently reads from the
38driver, which is useful for random access into the stream without
39decoding it.
40
4e03cb76 41To read the data applications must call :ref:`VIDIOC_G_ENC_INDEX <VIDIOC_G_ENC_INDEX>` with a
5377d91f
MH
42pointer to a struct :ref:`v4l2_enc_idx <v4l2-enc-idx>`. On success
43the driver fills the ``entry`` array, stores the number of elements
44written in the ``entries`` field, and initializes the ``entries_cap``
45field.
46
47Each element of the ``entry`` array contains meta data about one
4e03cb76 48picture. A :ref:`VIDIOC_G_ENC_INDEX <VIDIOC_G_ENC_INDEX>` call reads up to
5377d91f
MH
49``V4L2_ENC_IDX_ENTRIES`` entries from a driver buffer, which can hold up
50to ``entries_cap`` entries. This number can be lower or higher than
51``V4L2_ENC_IDX_ENTRIES``, but not zero. When the application fails to
52read the meta data in time the oldest entries will be lost. When the
53buffer is empty or no capturing/encoding is in progress, ``entries``
54will be zero.
55
56Currently this ioctl is only defined for MPEG-2 program streams and
57video elementary streams.
58
59
60.. _v4l2-enc-idx:
61
62.. flat-table:: struct v4l2_enc_idx
63 :header-rows: 0
64 :stub-columns: 0
65 :widths: 1 1 2 1 1
66
67
68 - .. row 1
69
70 - __u32
71
72 - ``entries``
73
74 - The number of entries the driver stored in the ``entry`` array.
75
76 - .. row 2
77
78 - __u32
79
80 - ``entries_cap``
81
82 - The number of entries the driver can buffer. Must be greater than
0579e6e3 83 zero.
5377d91f
MH
84
85 - .. row 3
86
87 - __u32
88
8968da9b 89 - ``reserved``\ [4]
5377d91f
MH
90
91 - :cspan:`2` Reserved for future extensions. Drivers must set the
0579e6e3 92 array to zero.
5377d91f
MH
93
94 - .. row 4
95
96 - struct :ref:`v4l2_enc_idx_entry <v4l2-enc-idx-entry>`
97
98 - ``entry``\ [``V4L2_ENC_IDX_ENTRIES``]
99
100 - Meta data about a compressed video stream. Each element of the
0579e6e3
MCC
101 array corresponds to one picture, sorted in ascending order by
102 their ``offset``.
5377d91f
MH
103
104
105
106.. _v4l2-enc-idx-entry:
107
108.. flat-table:: struct v4l2_enc_idx_entry
109 :header-rows: 0
110 :stub-columns: 0
111 :widths: 1 1 2
112
113
114 - .. row 1
115
116 - __u64
117
118 - ``offset``
119
120 - The offset in bytes from the beginning of the compressed video
0579e6e3
MCC
121 stream to the beginning of this picture, that is a *PES packet
122 header* as defined in :ref:`mpeg2part1` or a *picture header* as
123 defined in :ref:`mpeg2part2`. When the encoder is stopped, the
124 driver resets the offset to zero.
5377d91f
MH
125
126 - .. row 2
127
128 - __u64
129
130 - ``pts``
131
132 - The 33 bit *Presentation Time Stamp* of this picture as defined in
0579e6e3 133 :ref:`mpeg2part1`.
5377d91f
MH
134
135 - .. row 3
136
137 - __u32
138
139 - ``length``
140
141 - The length of this picture in bytes.
142
143 - .. row 4
144
145 - __u32
146
147 - ``flags``
148
149 - Flags containing the coding type of this picture, see
0579e6e3 150 :ref:`enc-idx-flags`.
5377d91f
MH
151
152 - .. row 5
153
154 - __u32
155
8968da9b 156 - ``reserved``\ [2]
5377d91f
MH
157
158 - Reserved for future extensions. Drivers must set the array to
0579e6e3 159 zero.
5377d91f
MH
160
161
162
163.. _enc-idx-flags:
164
165.. flat-table:: Index Entry Flags
166 :header-rows: 0
167 :stub-columns: 0
168 :widths: 3 1 4
169
170
171 - .. row 1
172
173 - ``V4L2_ENC_IDX_FRAME_I``
174
175 - 0x00
176
177 - This is an Intra-coded picture.
178
179 - .. row 2
180
181 - ``V4L2_ENC_IDX_FRAME_P``
182
183 - 0x01
184
185 - This is a Predictive-coded picture.
186
187 - .. row 3
188
189 - ``V4L2_ENC_IDX_FRAME_B``
190
191 - 0x02
192
193 - This is a Bidirectionally predictive-coded picture.
194
195 - .. row 4
196
197 - ``V4L2_ENC_IDX_FRAME_MASK``
198
199 - 0x0F
200
201 - *AND* the flags field with this mask to obtain the picture coding
0579e6e3 202 type.
5377d91f
MH
203
204
15e7d615 205Return Value
5377d91f
MH
206============
207
208On success 0 is returned, on error -1 and the ``errno`` variable is set
209appropriately. The generic error codes are described at the
210:ref:`Generic Error Codes <gen-errors>` chapter.
This page took 0.06335 seconds and 5 git commands to generate.