]> err.no Git - linux-2.6/blobdiff - Documentation/video4linux/cx2341x/fw-encoder-api.txt
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
[linux-2.6] / Documentation / video4linux / cx2341x / fw-encoder-api.txt
index 64cd111349ad1cfe71e074e4f6d7a04b0da3c295..15df0df57dddb284974180e92d3b864b0f5661e1 100644 (file)
@@ -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
+       only 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
 
 -------------------------------------------------------------------------------