V4L/DVB (4987): Improve cx2341x documentation
authorHans Verkuil <hverkuil@xs4all.nl>
Wed, 20 Dec 2006 09:50:18 +0000 (06:50 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Wed, 21 Feb 2007 15:34:14 +0000 (13:34 -0200)
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>
Documentation/video4linux/cx2341x/fw-decoder-api.txt
Documentation/video4linux/cx2341x/fw-encoder-api.txt
Documentation/video4linux/cx2341x/fw-memory.txt

index 1345d26..8c317b7 100644 (file)
@@ -236,7 +236,7 @@ Description
        Setup firmware to notify the host about a particular event.
        Counterpart to API 0xD5
 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: 4=Unknown: goes off 10-15 times per second while decoding.
        Event: 5=Some sync event: goes off once per frame.
index 2412718..fe02bdb 100644 (file)
@@ -322,9 +322,7 @@ Param[0]
                '01'=JointStereo
                '10'=Dual
                '11'=Mono
-               Note: testing seems to indicate that Mono and possibly
-               JointStereo are not working (default to stereo).
-               Dual does work, though.
+               Note: the cx23415 cannot decode Joint Stereo properly.
 
          10:11 Mode Extension used in joint_stereo mode.
                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
 Description
        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]
        Picture Mask:
            0=No index capture
            1=I frames
            3=I,P frames
            7=I,P,B frames
+       (Seems to be ignored, it always indexes I, P and B frames)
 Param[1]
        Elements requested (up to 400)
 Result[0]
-       Offset in SDF memory of the table.
+       Offset in the encoder memory of the start of the table.
 Result[1]
        Number of allocated elements up to a maximum of Param[1]
 
index 0cf2491..d445e45 100644 (file)
@@ -123,12 +123,8 @@ Bit
 29 Encoder VBI capture
 28 Encoder Video Input Module reset event
 27 Encoder DMA complete
-26
-25 Decoder copy protect detection event
 24 Decoder audio mode change detection event (through event notification)
-23
 22 Decoder data request
-21 Decoder I-Frame? done
 20 Decoder DMA complete
 19 Decoder VBI re-insertion
 18 Decoder DMA err (linked-list bad)