diff options
Diffstat (limited to 'Documentation/video4linux/cx2341x/fw-decoder-api.txt')
-rw-r--r-- | Documentation/video4linux/cx2341x/fw-decoder-api.txt | 319 |
1 files changed, 319 insertions, 0 deletions
diff --git a/Documentation/video4linux/cx2341x/fw-decoder-api.txt b/Documentation/video4linux/cx2341x/fw-decoder-api.txt new file mode 100644 index 000000000000..9df4fb3ea0f2 --- /dev/null +++ b/Documentation/video4linux/cx2341x/fw-decoder-api.txt | |||
@@ -0,0 +1,319 @@ | |||
1 | Decoder firmware API description | ||
2 | ================================ | ||
3 | |||
4 | Note: this API is part of the decoder firmware, so it's cx23415 only. | ||
5 | |||
6 | ------------------------------------------------------------------------------- | ||
7 | |||
8 | Name CX2341X_DEC_PING_FW | ||
9 | Enum 0/0x00 | ||
10 | Description | ||
11 | This API call does nothing. It may be used to check if the firmware | ||
12 | is responding. | ||
13 | |||
14 | ------------------------------------------------------------------------------- | ||
15 | |||
16 | Name CX2341X_DEC_START_PLAYBACK | ||
17 | Enum 1/0x01 | ||
18 | Description | ||
19 | Begin or resume playback. | ||
20 | Param[0] | ||
21 | 0 based frame number in GOP to begin playback from. | ||
22 | Param[1] | ||
23 | Specifies the number of muted audio frames to play before normal | ||
24 | audio resumes. | ||
25 | |||
26 | ------------------------------------------------------------------------------- | ||
27 | |||
28 | Name CX2341X_DEC_STOP_PLAYBACK | ||
29 | Enum 2/0x02 | ||
30 | Description | ||
31 | Ends playback and clears all decoder buffers. If PTS is not zero, | ||
32 | playback stops at specified PTS. | ||
33 | Param[0] | ||
34 | Display 0=last frame, 1=black | ||
35 | Param[1] | ||
36 | PTS low | ||
37 | Param[2] | ||
38 | PTS high | ||
39 | |||
40 | ------------------------------------------------------------------------------- | ||
41 | |||
42 | Name CX2341X_DEC_SET_PLAYBACK_SPEED | ||
43 | Enum 3/0x03 | ||
44 | Description | ||
45 | Playback stream at speed other than normal. There are two modes of | ||
46 | operation: | ||
47 | Smooth: host transfers entire stream and firmware drops unused | ||
48 | frames. | ||
49 | Coarse: host drops frames based on indexing as required to achieve | ||
50 | desired speed. | ||
51 | Param[0] | ||
52 | Bitmap: | ||
53 | 0:7 0 normal | ||
54 | 1 fast only "1.5 times" | ||
55 | n nX fast, 1/nX slow | ||
56 | 30 Framedrop: | ||
57 | '0' during 1.5 times play, every other B frame is dropped | ||
58 | '1' during 1.5 times play, stream is unchanged (bitrate | ||
59 | must not exceed 8mbps) | ||
60 | 31 Speed: | ||
61 | '0' slow | ||
62 | '1' fast | ||
63 | Param[1] | ||
64 | Direction: 0=forward, 1=reverse | ||
65 | Param[2] | ||
66 | Picture mask: | ||
67 | 1=I frames | ||
68 | 3=I, P frames | ||
69 | 7=I, P, B frames | ||
70 | Param[3] | ||
71 | B frames per GOP (for reverse play only) | ||
72 | Param[4] | ||
73 | Mute audio: 0=disable, 1=enable | ||
74 | Param[5] | ||
75 | Display 0=frame, 1=field | ||
76 | Param[6] | ||
77 | Specifies the number of muted audio frames to play before normal audio | ||
78 | resumes. | ||
79 | |||
80 | ------------------------------------------------------------------------------- | ||
81 | |||
82 | Name CX2341X_DEC_STEP_VIDEO | ||
83 | Enum 5/0x05 | ||
84 | Description | ||
85 | Each call to this API steps the playback to the next unit defined below | ||
86 | in the current playback direction. | ||
87 | Param[0] | ||
88 | 0=frame, 1=top field, 2=bottom field | ||
89 | |||
90 | ------------------------------------------------------------------------------- | ||
91 | |||
92 | Name CX2341X_DEC_SET_DMA_BLOCK_SIZE | ||
93 | Enum 8/0x08 | ||
94 | Description | ||
95 | Set DMA transfer block size. Counterpart to API 0xC9 | ||
96 | Param[0] | ||
97 | DMA transfer block size in bytes. A different size may be specified | ||
98 | when issuing the DMA transfer command. | ||
99 | |||
100 | ------------------------------------------------------------------------------- | ||
101 | |||
102 | Name CX2341X_DEC_GET_XFER_INFO | ||
103 | Enum 9/0x09 | ||
104 | Description | ||
105 | This API call may be used to detect an end of stream condtion. | ||
106 | Result[0] | ||
107 | Stream type | ||
108 | Result[1] | ||
109 | Address offset | ||
110 | Result[2] | ||
111 | Maximum bytes to transfer | ||
112 | Result[3] | ||
113 | Buffer fullness | ||
114 | |||
115 | ------------------------------------------------------------------------------- | ||
116 | |||
117 | Name CX2341X_DEC_GET_DMA_STATUS | ||
118 | Enum 10/0x0A | ||
119 | Description | ||
120 | Status of the last DMA transfer | ||
121 | Result[0] | ||
122 | Bit 1 set means transfer complete | ||
123 | Bit 2 set means DMA error | ||
124 | Bit 3 set means linked list error | ||
125 | Result[1] | ||
126 | DMA type: 0=MPEG, 1=OSD, 2=YUV | ||
127 | |||
128 | ------------------------------------------------------------------------------- | ||
129 | |||
130 | Name CX2341X_DEC_SCHED_DMA_FROM_HOST | ||
131 | Enum 11/0x0B | ||
132 | Description | ||
133 | Setup DMA from host operation. Counterpart to API 0xCC | ||
134 | Param[0] | ||
135 | Memory address of link list | ||
136 | Param[1] | ||
137 | Total # of bytes to transfer | ||
138 | Param[2] | ||
139 | DMA type (0=MPEG, 1=OSD, 2=YUV) | ||
140 | |||
141 | ------------------------------------------------------------------------------- | ||
142 | |||
143 | Name CX2341X_DEC_PAUSE_PLAYBACK | ||
144 | Enum 13/0x0D | ||
145 | Description | ||
146 | Freeze playback immediately. In this mode, when internal buffers are | ||
147 | full, no more data will be accepted and data request IRQs will be | ||
148 | masked. | ||
149 | Param[0] | ||
150 | Display: 0=last frame, 1=black | ||
151 | |||
152 | ------------------------------------------------------------------------------- | ||
153 | |||
154 | Name CX2341X_DEC_HALT_FW | ||
155 | Enum 14/0x0E | ||
156 | Description | ||
157 | The firmware is halted and no further API calls are serviced until | ||
158 | the firmware is uploaded again. | ||
159 | |||
160 | ------------------------------------------------------------------------------- | ||
161 | |||
162 | Name CX2341X_DEC_SET_STANDARD | ||
163 | Enum 16/0x10 | ||
164 | Description | ||
165 | Selects display standard | ||
166 | Param[0] | ||
167 | 0=NTSC, 1=PAL | ||
168 | |||
169 | ------------------------------------------------------------------------------- | ||
170 | |||
171 | Name CX2341X_DEC_GET_VERSION | ||
172 | Enum 17/0x11 | ||
173 | Description | ||
174 | Returns decoder firmware version information | ||
175 | Result[0] | ||
176 | Version bitmask: | ||
177 | Bits 0:15 build | ||
178 | Bits 16:23 minor | ||
179 | Bits 24:31 major | ||
180 | |||
181 | ------------------------------------------------------------------------------- | ||
182 | |||
183 | Name CX2341X_DEC_SET_STREAM_INPUT | ||
184 | Enum 20/0x14 | ||
185 | Description | ||
186 | Select decoder stream input port | ||
187 | Param[0] | ||
188 | 0=memory (default), 1=streaming | ||
189 | |||
190 | ------------------------------------------------------------------------------- | ||
191 | |||
192 | Name CX2341X_DEC_GET_TIMING_INFO | ||
193 | Enum 21/0x15 | ||
194 | Description | ||
195 | Returns timing information from start of playback | ||
196 | Result[0] | ||
197 | Frame count by decode order | ||
198 | Result[1] | ||
199 | Video PTS bits 0:31 by display order | ||
200 | Result[2] | ||
201 | Video PTS bit 32 by display order | ||
202 | Result[3] | ||
203 | SCR bits 0:31 by display order | ||
204 | Result[4] | ||
205 | SCR bit 32 by display order | ||
206 | |||
207 | ------------------------------------------------------------------------------- | ||
208 | |||
209 | Name CX2341X_DEC_SET_AUDIO_MODE | ||
210 | Enum 22/0x16 | ||
211 | Description | ||
212 | Select audio mode | ||
213 | Param[0] | ||
214 | Dual mono mode action | ||
215 | Param[1] | ||
216 | Stereo mode action: | ||
217 | 0=Stereo, 1=Left, 2=Right, 3=Mono, 4=Swap, -1=Unchanged | ||
218 | |||
219 | ------------------------------------------------------------------------------- | ||
220 | |||
221 | Name CX2341X_DEC_SET_EVENT_NOTIFICATION | ||
222 | Enum 23/0x17 | ||
223 | Description | ||
224 | Setup firmware to notify the host about a particular event. | ||
225 | Counterpart to API 0xD5 | ||
226 | Param[0] | ||
227 | Event: 0=Audio mode change between stereo and dual channel | ||
228 | Param[1] | ||
229 | Notification 0=disabled, 1=enabled | ||
230 | Param[2] | ||
231 | Interrupt bit | ||
232 | Param[3] | ||
233 | Mailbox slot, -1 if no mailbox required. | ||
234 | |||
235 | ------------------------------------------------------------------------------- | ||
236 | |||
237 | Name CX2341X_DEC_SET_DISPLAY_BUFFERS | ||
238 | Enum 24/0x18 | ||
239 | Description | ||
240 | Number of display buffers. To decode all frames in reverse playback you | ||
241 | must use nine buffers. | ||
242 | Param[0] | ||
243 | 0=six buffers, 1=nine buffers | ||
244 | |||
245 | ------------------------------------------------------------------------------- | ||
246 | |||
247 | Name CX2341X_DEC_EXTRACT_VBI | ||
248 | Enum 25/0x19 | ||
249 | Description | ||
250 | Extracts VBI data | ||
251 | Param[0] | ||
252 | 0=extract from extension & user data, 1=extract from private packets | ||
253 | Result[0] | ||
254 | VBI table location | ||
255 | Result[1] | ||
256 | VBI table size | ||
257 | |||
258 | ------------------------------------------------------------------------------- | ||
259 | |||
260 | Name CX2341X_DEC_SET_DECODER_SOURCE | ||
261 | Enum 26/0x1A | ||
262 | Description | ||
263 | Selects decoder source. Ensure that the parameters passed to this | ||
264 | API match the encoder settings. | ||
265 | Param[0] | ||
266 | Mode: 0=MPEG from host, 1=YUV from encoder, 2=YUV from host | ||
267 | Param[1] | ||
268 | YUV picture width | ||
269 | Param[2] | ||
270 | YUV picture height | ||
271 | Param[3] | ||
272 | Bitmap: see Param[0] of API 0xBD | ||
273 | |||
274 | ------------------------------------------------------------------------------- | ||
275 | |||
276 | Name CX2341X_DEC_SET_AUDIO_OUTPUT | ||
277 | Enum 27/0x1B | ||
278 | Description | ||
279 | Select audio output format | ||
280 | Param[0] | ||
281 | Bitmask: | ||
282 | 0:1 Data size: | ||
283 | '00' 16 bit | ||
284 | '01' 20 bit | ||
285 | '10' 24 bit | ||
286 | 2:7 Unused | ||
287 | 8:9 Mode: | ||
288 | '00' 2 channels | ||
289 | '01' 4 channels | ||
290 | '10' 6 channels | ||
291 | '11' 6 channels with one line data mode | ||
292 | (for left justified MSB first mode, 20 bit only) | ||
293 | 10:11 Unused | ||
294 | 12:13 Channel format: | ||
295 | '00' right justified MSB first mode | ||
296 | '01' left justified MSB first mode | ||
297 | '10' I2S mode | ||
298 | 14:15 Unused | ||
299 | 16:21 Right justify bit count | ||
300 | 22:31 Unused | ||
301 | |||
302 | ------------------------------------------------------------------------------- | ||
303 | |||
304 | Name CX2341X_DEC_SET_AV_DELAY | ||
305 | Enum 28/0x1C | ||
306 | Description | ||
307 | Set audio/video delay in 90Khz ticks | ||
308 | Param[0] | ||
309 | 0=A/V in sync, negative=audio lags, positive=video lags | ||
310 | |||
311 | ------------------------------------------------------------------------------- | ||
312 | |||
313 | Name CX2341X_DEC_SET_PREBUFFERING | ||
314 | Enum 30/0x1E | ||
315 | Description | ||
316 | Decoder prebuffering, when enabled up to 128KB are buffered for | ||
317 | streams <8mpbs or 640KB for streams >8mbps | ||
318 | Param[0] | ||
319 | 0=off, 1=on | ||