summaryrefslogtreecommitdiff
path: root/linux/Documentation/video4linux/cx2341x
diff options
context:
space:
mode:
Diffstat (limited to 'linux/Documentation/video4linux/cx2341x')
-rw-r--r--linux/Documentation/video4linux/cx2341x/fw-decoder-api.txt8
-rw-r--r--linux/Documentation/video4linux/cx2341x/fw-encoder-api.txt108
-rw-r--r--linux/Documentation/video4linux/cx2341x/fw-memory.txt2
3 files changed, 70 insertions, 48 deletions
diff --git a/linux/Documentation/video4linux/cx2341x/fw-decoder-api.txt b/linux/Documentation/video4linux/cx2341x/fw-decoder-api.txt
index 59193b6b5..9df4fb3ea 100644
--- a/linux/Documentation/video4linux/cx2341x/fw-decoder-api.txt
+++ b/linux/Documentation/video4linux/cx2341x/fw-decoder-api.txt
@@ -280,7 +280,7 @@ Description
Param[0]
Bitmask:
0:1 Data size:
- '00' 16 bit
+ '00' 16 bit
'01' 20 bit
'10' 24 bit
2:7 Unused
@@ -292,9 +292,9 @@ Param[0]
(for left justified MSB first mode, 20 bit only)
10:11 Unused
12:13 Channel format:
- '00' right justified MSB first mode
- '01' left justified MSB first mode
- '10' I2S mode
+ '00' right justified MSB first mode
+ '01' left justified MSB first mode
+ '10' I2S mode
14:15 Unused
16:21 Right justify bit count
22:31 Unused
diff --git a/linux/Documentation/video4linux/cx2341x/fw-encoder-api.txt b/linux/Documentation/video4linux/cx2341x/fw-encoder-api.txt
index 64cd11134..001c68644 100644
--- a/linux/Documentation/video4linux/cx2341x/fw-encoder-api.txt
+++ b/linux/Documentation/video4linux/cx2341x/fw-encoder-api.txt
@@ -100,13 +100,20 @@ Param[1]
Name CX2341X_ENC_SET_BIT_RATE
Enum 149/0x95
Description
- Assign average video stream bitrate.
+ Assign average video stream bitrate. Note on the last three params:
+ Param[3] and [4] seem to be always 0, param [5] doesn't seem to be used.
Param[0]
0=variable bitrate, 1=constant bitrate
Param[1]
bitrate in bits per second
Param[2]
peak bitrate in bits per second, divided by 400
+Param[3]
+ Mux bitrate in bits per second, divided by 400. May be 0 (default).
+Param[4]
+ Rate Control VBR Padding
+Param[5]
+ VBV Buffer used by encoder
-------------------------------------------------------------------------------
@@ -115,10 +122,11 @@ Enum 151/0x97
Description
Setup the GOP structure
Param[0]
- GOP size
+ GOP size (maximum is 34)
Param[1]
Number of B frames between the I and P frame, plus 1.
For example: IBBPBBPBBPBB --> GOP size: 12, number of B frames: 2+1 = 3
+ Note that GOP size must be a multiple of (B-frames + 1).
-------------------------------------------------------------------------------
@@ -241,6 +249,9 @@ Name CX2341X_ENC_SET_STREAM_TYPE
Enum 185/0xB9
Description
Assign stream type
+ Note: Transport stream is not working in recent firmwares.
+ And in older firmwares the timestamps in the TS seem to be
+ unreliable.
Param[0]
0=Program stream
1=Transport stream
@@ -259,11 +270,17 @@ Param[0]
Name CX2341X_ENC_SET_OUTPUT_PORT
Enum 187/0xBB
Description
- Assign stream output port (not recommended you change setting from default)
+ Assign stream output port. Normally 0 when the data is copied through
+ the PCI bus (DMA), and 1 when the data is streamed to another chip
+ (pvrusb and cx88-blackbird).
Param[0]
0=Memory (default)
1=Streaming
2=Serial
+Param[1]
+ Unknown, but leaving this to 0 seems to work best. Indications are that
+ this might have to do with USB support, although passing anything but 0
+ onl breaks things.
-------------------------------------------------------------------------------
@@ -278,67 +295,72 @@ Description
'01' Layer III
'00' Undefined
This discrepancy may indicate a possible error in the documentation.
+ Testing indicated that only Layer II is actually working, and that
+ the minimum bitrate should be 192 kbps.
Param[0]
Bitmask:
0:1 '00' 44.1Khz
- '01' 48Khz
- '10' 32Khz
- '11' reserved
+ '01' 48Khz
+ '10' 32Khz
+ '11' reserved
2:3 '01'=Layer I
'10'=Layer II
4:7 Bitrate:
- Index | Layer I | Layer II
- ------+-------------+------------
- '0000' | free format | free format
- '0001' | 32 kbit/s | 32 kbit/s
- '0010' | 64 kbit/s | 48 kbit/s
- '0011' | 96 kbit/s | 56 kbit/s
- '0100' | 128 kbit/s | 64 kbit/s
- '0101' | 160 kbit/s | 80 kbit/s
- '0110' | 192 kbit/s | 96 kbit/s
- '0111' | 224 kbit/s | 112 kbit/s
- '1000' | 256 kbit/s | 128 kbit/s
- '1001' | 288 kbit/s | 160 kbit/s
- '1010' | 320 kbit/s | 192 kbit/s
- '1011' | 352 kbit/s | 224 kbit/s
- '1100' | 384 kbit/s | 256 kbit/s
- '1101' | 416 kbit/s | 320 kbit/s
- '1110' | 448 kbit/s | 384 kbit/s
- Note: For Layer II, not all combinations of total bitrate
- and mode are allowed. See ISO11172-3 3-Annex B, Table 3-B.2
+ Index | Layer I | Layer II
+ ------+-------------+------------
+ '0000' | free format | free format
+ '0001' | 32 kbit/s | 32 kbit/s
+ '0010' | 64 kbit/s | 48 kbit/s
+ '0011' | 96 kbit/s | 56 kbit/s
+ '0100' | 128 kbit/s | 64 kbit/s
+ '0101' | 160 kbit/s | 80 kbit/s
+ '0110' | 192 kbit/s | 96 kbit/s
+ '0111' | 224 kbit/s | 112 kbit/s
+ '1000' | 256 kbit/s | 128 kbit/s
+ '1001' | 288 kbit/s | 160 kbit/s
+ '1010' | 320 kbit/s | 192 kbit/s
+ '1011' | 352 kbit/s | 224 kbit/s
+ '1100' | 384 kbit/s | 256 kbit/s
+ '1101' | 416 kbit/s | 320 kbit/s
+ '1110' | 448 kbit/s | 384 kbit/s
+ Note: For Layer II, not all combinations of total bitrate
+ and mode are allowed. See ISO11172-3 3-Annex B, Table 3-B.2
8:9 '00'=Stereo
- '01'=JointStereo
- '10'=Dual
- '11'=Mono
+ '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.
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
intensity_stereo. All other subbands are coded in stereo.
- '00' subbands 4-31 in intensity_stereo, bound==4
- '01' subbands 8-31 in intensity_stereo, bound==8
- '10' subbands 12-31 in intensity_stereo, bound==12
- '11' subbands 16-31 in intensity_stereo, bound==16
+ '00' subbands 4-31 in intensity_stereo, bound==4
+ '01' subbands 8-31 in intensity_stereo, bound==8
+ '10' subbands 12-31 in intensity_stereo, bound==12
+ '11' subbands 16-31 in intensity_stereo, bound==16
12:13 Emphasis:
- '00' None
- '01' 50/15uS
- '10' reserved
- '11' CCITT J.17
+ '00' None
+ '01' 50/15uS
+ '10' reserved
+ '11' CCITT J.17
14 CRC:
- '0' off
- '1' on
+ '0' off
+ '1' on
15 Copyright:
- '0' off
- '1' on
+ '0' off
+ '1' on
16 Generation:
- '0' copy
- '1' original
+ '0' copy
+ '1' original
-------------------------------------------------------------------------------
diff --git a/linux/Documentation/video4linux/cx2341x/fw-memory.txt b/linux/Documentation/video4linux/cx2341x/fw-memory.txt
index 336d8208e..ef0aad3f8 100644
--- a/linux/Documentation/video4linux/cx2341x/fw-memory.txt
+++ b/linux/Documentation/video4linux/cx2341x/fw-memory.txt
@@ -60,7 +60,7 @@ DMA Registers 0x000-0xff:
if changed to 0xffffffff DMA write interrupts break.
0x50 - always 0xffffffff
0x54 - always 0xffffffff (0x4c, 0x50, 0x54 seem like interrupt masks, are
- 3 processors on chip, Java ones, VPU, SPU, APU, maybe these are the
+ 3 processors on chip, Java ones, VPU, SPU, APU, maybe these are the
interrupt masks???).
0x60-0x7C - random values
0x80 - first write linked list reg, for Encoder Memory addr