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>
This commit is contained in:
Hans Verkuil 2006-12-20 06:50:18 -03:00 committed by Mauro Carvalho Chehab
parent 75558ab92d
commit d84e2bdca6
3 changed files with 21 additions and 9 deletions

View file

@ -236,7 +236,7 @@ Description
Setup firmware to notify the host about a particular event. Setup firmware to notify the host about a particular event.
Counterpart to API 0xD5 Counterpart to API 0xD5
Param[0] Param[0]
Event: 0=Audio mode change between stereo and dual channel Event: 0=Audio mode change between mono, (joint) stereo and dual channel.
Event: 3=Decoder started Event: 3=Decoder started
Event: 4=Unknown: goes off 10-15 times per second while decoding. Event: 4=Unknown: goes off 10-15 times per second while decoding.
Event: 5=Some sync event: goes off once per frame. Event: 5=Some sync event: goes off once per frame.

View file

@ -322,9 +322,7 @@ Param[0]
'01'=JointStereo '01'=JointStereo
'10'=Dual '10'=Dual
'11'=Mono '11'=Mono
Note: testing seems to indicate that Mono and possibly Note: the cx23415 cannot decode Joint Stereo properly.
JointStereo are not working (default to stereo).
Dual does work, though.
10:11 Mode Extension used in joint_stereo mode. 10:11 Mode Extension used in joint_stereo mode.
In Layer I and II they indicate which subbands are in In Layer I and II they indicate which subbands are in
@ -403,16 +401,34 @@ Name CX2341X_ENC_SET_PGM_INDEX_INFO
Enum 199/0xC7 Enum 199/0xC7
Description Description
Sets the Program Index Information. Sets the Program Index Information.
The information is stored as follows:
struct info {
u32 length; // Length of this frame
u32 offset_low; // Offset in the file of the
u32 offset_high; // start of this frame
u32 mask1; // Bits 0-1 are the type mask:
// 1=I, 2=P, 4=B
u32 pts; // The PTS of the frame
u32 mask2; // Bit 0 is bit 32 of the pts.
};
u32 table_ptr;
struct info index[400];
The table_ptr is the encoder memory address in the table were
*new* entries will be written. Note that this is a ringbuffer,
so the table_ptr will wraparound.
Param[0] Param[0]
Picture Mask: Picture Mask:
0=No index capture 0=No index capture
1=I frames 1=I frames
3=I,P frames 3=I,P frames
7=I,P,B frames 7=I,P,B frames
(Seems to be ignored, it always indexes I, P and B frames)
Param[1] Param[1]
Elements requested (up to 400) Elements requested (up to 400)
Result[0] Result[0]
Offset in SDF memory of the table. Offset in the encoder memory of the start of the table.
Result[1] Result[1]
Number of allocated elements up to a maximum of Param[1] Number of allocated elements up to a maximum of Param[1]

View file

@ -123,12 +123,8 @@ Bit
29 Encoder VBI capture 29 Encoder VBI capture
28 Encoder Video Input Module reset event 28 Encoder Video Input Module reset event
27 Encoder DMA complete 27 Encoder DMA complete
26
25 Decoder copy protect detection event
24 Decoder audio mode change detection event (through event notification) 24 Decoder audio mode change detection event (through event notification)
23
22 Decoder data request 22 Decoder data request
21 Decoder I-Frame? done
20 Decoder DMA complete 20 Decoder DMA complete
19 Decoder VBI re-insertion 19 Decoder VBI re-insertion
18 Decoder DMA err (linked-list bad) 18 Decoder DMA err (linked-list bad)