Browse Source

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>
Hans Verkuil 18 years ago
parent
commit
d84e2bdca6

+ 1 - 1
Documentation/video4linux/cx2341x/fw-decoder-api.txt

@@ -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.

+ 20 - 4
Documentation/video4linux/cx2341x/fw-encoder-api.txt

@@ -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
-		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.
 	  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]
 
 

+ 0 - 4
Documentation/video4linux/cx2341x/fw-memory.txt

@@ -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)