Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

V4L/DVB (4987): Improve cx2341x documentation

Document the program index table format, removed unused interrupt documentation
and improve the documentation regarding the audio mode (stereo/joint/dual/mono).

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>

authored by

Hans Verkuil and committed by
Mauro Carvalho Chehab
d84e2bdc 75558ab9

+21 -9
+1 -1
Documentation/video4linux/cx2341x/fw-decoder-api.txt
··· 236 236 Setup firmware to notify the host about a particular event. 237 237 Counterpart to API 0xD5 238 238 Param[0] 239 - Event: 0=Audio mode change between stereo and dual channel 239 + Event: 0=Audio mode change between mono, (joint) stereo and dual channel. 240 240 Event: 3=Decoder started 241 241 Event: 4=Unknown: goes off 10-15 times per second while decoding. 242 242 Event: 5=Some sync event: goes off once per frame.
+20 -4
Documentation/video4linux/cx2341x/fw-encoder-api.txt
··· 322 322 '01'=JointStereo 323 323 '10'=Dual 324 324 '11'=Mono 325 - Note: testing seems to indicate that Mono and possibly 326 - JointStereo are not working (default to stereo). 327 - Dual does work, though. 325 + Note: the cx23415 cannot decode Joint Stereo properly. 328 326 329 327 10:11 Mode Extension used in joint_stereo mode. 330 328 In Layer I and II they indicate which subbands are in ··· 401 403 Enum 199/0xC7 402 404 Description 403 405 Sets the Program Index Information. 406 + The information is stored as follows: 407 + 408 + struct info { 409 + u32 length; // Length of this frame 410 + u32 offset_low; // Offset in the file of the 411 + u32 offset_high; // start of this frame 412 + u32 mask1; // Bits 0-1 are the type mask: 413 + // 1=I, 2=P, 4=B 414 + u32 pts; // The PTS of the frame 415 + u32 mask2; // Bit 0 is bit 32 of the pts. 416 + }; 417 + u32 table_ptr; 418 + struct info index[400]; 419 + 420 + The table_ptr is the encoder memory address in the table were 421 + *new* entries will be written. Note that this is a ringbuffer, 422 + so the table_ptr will wraparound. 404 423 Param[0] 405 424 Picture Mask: 406 425 0=No index capture 407 426 1=I frames 408 427 3=I,P frames 409 428 7=I,P,B frames 429 + (Seems to be ignored, it always indexes I, P and B frames) 410 430 Param[1] 411 431 Elements requested (up to 400) 412 432 Result[0] 413 - Offset in SDF memory of the table. 433 + Offset in the encoder memory of the start of the table. 414 434 Result[1] 415 435 Number of allocated elements up to a maximum of Param[1] 416 436
-4
Documentation/video4linux/cx2341x/fw-memory.txt
··· 123 123 29 Encoder VBI capture 124 124 28 Encoder Video Input Module reset event 125 125 27 Encoder DMA complete 126 - 26 127 - 25 Decoder copy protect detection event 128 126 24 Decoder audio mode change detection event (through event notification) 129 - 23 130 127 22 Decoder data request 131 - 21 Decoder I-Frame? done 132 128 20 Decoder DMA complete 133 129 19 Decoder VBI re-insertion 134 130 18 Decoder DMA err (linked-list bad)