1*577a7ad3SMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0 2*577a7ad3SMauro Carvalho Chehab 3*577a7ad3SMauro Carvalho ChehabThe cx2341x driver 4*577a7ad3SMauro Carvalho Chehab================== 5*577a7ad3SMauro Carvalho Chehab 6*577a7ad3SMauro Carvalho ChehabMemory at cx2341x chips 7*577a7ad3SMauro Carvalho Chehab----------------------- 8*577a7ad3SMauro Carvalho Chehab 9*577a7ad3SMauro Carvalho ChehabThis section describes the cx2341x memory map and documents some of the 10*577a7ad3SMauro Carvalho Chehabregister space. 11*577a7ad3SMauro Carvalho Chehab 12*577a7ad3SMauro Carvalho Chehab.. note:: the memory long words are little-endian ('intel format'). 13*577a7ad3SMauro Carvalho Chehab 14*577a7ad3SMauro Carvalho Chehab.. warning:: 15*577a7ad3SMauro Carvalho Chehab 16*577a7ad3SMauro Carvalho Chehab This information was figured out from searching through the memory 17*577a7ad3SMauro Carvalho Chehab and registers, this information may not be correct and is certainly 18*577a7ad3SMauro Carvalho Chehab not complete, and was not derived from anything more than searching 19*577a7ad3SMauro Carvalho Chehab through the memory space with commands like: 20*577a7ad3SMauro Carvalho Chehab 21*577a7ad3SMauro Carvalho Chehab .. code-block:: none 22*577a7ad3SMauro Carvalho Chehab 23*577a7ad3SMauro Carvalho Chehab ivtvctl -O min=0x02000000,max=0x020000ff 24*577a7ad3SMauro Carvalho Chehab 25*577a7ad3SMauro Carvalho Chehab So take this as is, I'm always searching for more stuff, it's a large 26*577a7ad3SMauro Carvalho Chehab register space :-). 27*577a7ad3SMauro Carvalho Chehab 28*577a7ad3SMauro Carvalho ChehabMemory Map 29*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~ 30*577a7ad3SMauro Carvalho Chehab 31*577a7ad3SMauro Carvalho ChehabThe cx2341x exposes its entire 64M memory space to the PCI host via the PCI BAR0 32*577a7ad3SMauro Carvalho Chehab(Base Address Register 0). The addresses here are offsets relative to the 33*577a7ad3SMauro Carvalho Chehabaddress held in BAR0. 34*577a7ad3SMauro Carvalho Chehab 35*577a7ad3SMauro Carvalho Chehab.. code-block:: none 36*577a7ad3SMauro Carvalho Chehab 37*577a7ad3SMauro Carvalho Chehab 0x00000000-0x00ffffff Encoder memory space 38*577a7ad3SMauro Carvalho Chehab 0x00000000-0x0003ffff Encode.rom 39*577a7ad3SMauro Carvalho Chehab ???-??? MPEG buffer(s) 40*577a7ad3SMauro Carvalho Chehab ???-??? Raw video capture buffer(s) 41*577a7ad3SMauro Carvalho Chehab ???-??? Raw audio capture buffer(s) 42*577a7ad3SMauro Carvalho Chehab ???-??? Display buffers (6 or 9) 43*577a7ad3SMauro Carvalho Chehab 44*577a7ad3SMauro Carvalho Chehab 0x01000000-0x01ffffff Decoder memory space 45*577a7ad3SMauro Carvalho Chehab 0x01000000-0x0103ffff Decode.rom 46*577a7ad3SMauro Carvalho Chehab ???-??? MPEG buffers(s) 47*577a7ad3SMauro Carvalho Chehab 0x0114b000-0x0115afff Audio.rom (deprecated?) 48*577a7ad3SMauro Carvalho Chehab 49*577a7ad3SMauro Carvalho Chehab 0x02000000-0x0200ffff Register Space 50*577a7ad3SMauro Carvalho Chehab 51*577a7ad3SMauro Carvalho ChehabRegisters 52*577a7ad3SMauro Carvalho Chehab~~~~~~~~~ 53*577a7ad3SMauro Carvalho Chehab 54*577a7ad3SMauro Carvalho ChehabThe registers occupy the 64k space starting at the 0x02000000 offset from BAR0. 55*577a7ad3SMauro Carvalho ChehabAll of these registers are 32 bits wide. 56*577a7ad3SMauro Carvalho Chehab 57*577a7ad3SMauro Carvalho Chehab.. code-block:: none 58*577a7ad3SMauro Carvalho Chehab 59*577a7ad3SMauro Carvalho Chehab DMA Registers 0x000-0xff: 60*577a7ad3SMauro Carvalho Chehab 61*577a7ad3SMauro Carvalho Chehab 0x00 - Control: 62*577a7ad3SMauro Carvalho Chehab 0=reset/cancel, 1=read, 2=write, 4=stop 63*577a7ad3SMauro Carvalho Chehab 0x04 - DMA status: 64*577a7ad3SMauro Carvalho Chehab 1=read busy, 2=write busy, 4=read error, 8=write error, 16=link list error 65*577a7ad3SMauro Carvalho Chehab 0x08 - pci DMA pointer for read link list 66*577a7ad3SMauro Carvalho Chehab 0x0c - pci DMA pointer for write link list 67*577a7ad3SMauro Carvalho Chehab 0x10 - read/write DMA enable: 68*577a7ad3SMauro Carvalho Chehab 1=read enable, 2=write enable 69*577a7ad3SMauro Carvalho Chehab 0x14 - always 0xffffffff, if set any lower instability occurs, 0x00 crashes 70*577a7ad3SMauro Carvalho Chehab 0x18 - ?? 71*577a7ad3SMauro Carvalho Chehab 0x1c - always 0x20 or 32, smaller values slow down DMA transactions 72*577a7ad3SMauro Carvalho Chehab 0x20 - always value of 0x780a010a 73*577a7ad3SMauro Carvalho Chehab 0x24-0x3c - usually just random values??? 74*577a7ad3SMauro Carvalho Chehab 0x40 - Interrupt status 75*577a7ad3SMauro Carvalho Chehab 0x44 - Write a bit here and shows up in Interrupt status 0x40 76*577a7ad3SMauro Carvalho Chehab 0x48 - Interrupt Mask 77*577a7ad3SMauro Carvalho Chehab 0x4C - always value of 0xfffdffff, 78*577a7ad3SMauro Carvalho Chehab if changed to 0xffffffff DMA write interrupts break. 79*577a7ad3SMauro Carvalho Chehab 0x50 - always 0xffffffff 80*577a7ad3SMauro Carvalho Chehab 0x54 - always 0xffffffff (0x4c, 0x50, 0x54 seem like interrupt masks, are 81*577a7ad3SMauro Carvalho Chehab 3 processors on chip, Java ones, VPU, SPU, APU, maybe these are the 82*577a7ad3SMauro Carvalho Chehab interrupt masks???). 83*577a7ad3SMauro Carvalho Chehab 0x60-0x7C - random values 84*577a7ad3SMauro Carvalho Chehab 0x80 - first write linked list reg, for Encoder Memory addr 85*577a7ad3SMauro Carvalho Chehab 0x84 - first write linked list reg, for pci memory addr 86*577a7ad3SMauro Carvalho Chehab 0x88 - first write linked list reg, for length of buffer in memory addr 87*577a7ad3SMauro Carvalho Chehab (|0x80000000 or this for last link) 88*577a7ad3SMauro Carvalho Chehab 0x8c-0xdc - rest of write linked list reg, 8 sets of 3 total, DMA goes here 89*577a7ad3SMauro Carvalho Chehab from linked list addr in reg 0x0c, firmware must push through or 90*577a7ad3SMauro Carvalho Chehab something. 91*577a7ad3SMauro Carvalho Chehab 0xe0 - first (and only) read linked list reg, for pci memory addr 92*577a7ad3SMauro Carvalho Chehab 0xe4 - first (and only) read linked list reg, for Decoder memory addr 93*577a7ad3SMauro Carvalho Chehab 0xe8 - first (and only) read linked list reg, for length of buffer 94*577a7ad3SMauro Carvalho Chehab 0xec-0xff - Nothing seems to be in these registers, 0xec-f4 are 0x00000000. 95*577a7ad3SMauro Carvalho Chehab 96*577a7ad3SMauro Carvalho ChehabMemory locations for Encoder Buffers 0x700-0x7ff: 97*577a7ad3SMauro Carvalho Chehab 98*577a7ad3SMauro Carvalho ChehabThese registers show offsets of memory locations pertaining to each 99*577a7ad3SMauro Carvalho Chehabbuffer area used for encoding, have to shift them by <<1 first. 100*577a7ad3SMauro Carvalho Chehab 101*577a7ad3SMauro Carvalho Chehab- 0x07F8: Encoder SDRAM refresh 102*577a7ad3SMauro Carvalho Chehab- 0x07FC: Encoder SDRAM pre-charge 103*577a7ad3SMauro Carvalho Chehab 104*577a7ad3SMauro Carvalho ChehabMemory locations for Decoder Buffers 0x800-0x8ff: 105*577a7ad3SMauro Carvalho Chehab 106*577a7ad3SMauro Carvalho ChehabThese registers show offsets of memory locations pertaining to each 107*577a7ad3SMauro Carvalho Chehabbuffer area used for decoding, have to shift them by <<1 first. 108*577a7ad3SMauro Carvalho Chehab 109*577a7ad3SMauro Carvalho Chehab- 0x08F8: Decoder SDRAM refresh 110*577a7ad3SMauro Carvalho Chehab- 0x08FC: Decoder SDRAM pre-charge 111*577a7ad3SMauro Carvalho Chehab 112*577a7ad3SMauro Carvalho ChehabOther memory locations: 113*577a7ad3SMauro Carvalho Chehab 114*577a7ad3SMauro Carvalho Chehab- 0x2800: Video Display Module control 115*577a7ad3SMauro Carvalho Chehab- 0x2D00: AO (audio output?) control 116*577a7ad3SMauro Carvalho Chehab- 0x2D24: Bytes Flushed 117*577a7ad3SMauro Carvalho Chehab- 0x7000: LSB I2C write clock bit (inverted) 118*577a7ad3SMauro Carvalho Chehab- 0x7004: LSB I2C write data bit (inverted) 119*577a7ad3SMauro Carvalho Chehab- 0x7008: LSB I2C read clock bit 120*577a7ad3SMauro Carvalho Chehab- 0x700c: LSB I2C read data bit 121*577a7ad3SMauro Carvalho Chehab- 0x9008: GPIO get input state 122*577a7ad3SMauro Carvalho Chehab- 0x900c: GPIO set output state 123*577a7ad3SMauro Carvalho Chehab- 0x9020: GPIO direction (Bit7 (GPIO 0..7) - 0:input, 1:output) 124*577a7ad3SMauro Carvalho Chehab- 0x9050: SPU control 125*577a7ad3SMauro Carvalho Chehab- 0x9054: Reset HW blocks 126*577a7ad3SMauro Carvalho Chehab- 0x9058: VPU control 127*577a7ad3SMauro Carvalho Chehab- 0xA018: Bit6: interrupt pending? 128*577a7ad3SMauro Carvalho Chehab- 0xA064: APU command 129*577a7ad3SMauro Carvalho Chehab 130*577a7ad3SMauro Carvalho Chehab 131*577a7ad3SMauro Carvalho ChehabInterrupt Status Register 132*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~ 133*577a7ad3SMauro Carvalho Chehab 134*577a7ad3SMauro Carvalho ChehabThe definition of the bits in the interrupt status register 0x0040, and the 135*577a7ad3SMauro Carvalho Chehabinterrupt mask 0x0048. If a bit is cleared in the mask, then we want our ISR to 136*577a7ad3SMauro Carvalho Chehabexecute. 137*577a7ad3SMauro Carvalho Chehab 138*577a7ad3SMauro Carvalho Chehab- bit 31 Encoder Start Capture 139*577a7ad3SMauro Carvalho Chehab- bit 30 Encoder EOS 140*577a7ad3SMauro Carvalho Chehab- bit 29 Encoder VBI capture 141*577a7ad3SMauro Carvalho Chehab- bit 28 Encoder Video Input Module reset event 142*577a7ad3SMauro Carvalho Chehab- bit 27 Encoder DMA complete 143*577a7ad3SMauro Carvalho Chehab- bit 24 Decoder audio mode change detection event (through event notification) 144*577a7ad3SMauro Carvalho Chehab- bit 22 Decoder data request 145*577a7ad3SMauro Carvalho Chehab- bit 20 Decoder DMA complete 146*577a7ad3SMauro Carvalho Chehab- bit 19 Decoder VBI re-insertion 147*577a7ad3SMauro Carvalho Chehab- bit 18 Decoder DMA err (linked-list bad) 148*577a7ad3SMauro Carvalho Chehab 149*577a7ad3SMauro Carvalho ChehabMissing documentation 150*577a7ad3SMauro Carvalho Chehab--------------------- 151*577a7ad3SMauro Carvalho Chehab 152*577a7ad3SMauro Carvalho Chehab- Encoder API post(?) 153*577a7ad3SMauro Carvalho Chehab- Decoder API post(?) 154*577a7ad3SMauro Carvalho Chehab- Decoder VTRACE event 155*577a7ad3SMauro Carvalho Chehab 156*577a7ad3SMauro Carvalho Chehab 157*577a7ad3SMauro Carvalho ChehabThe cx2341x firmware upload 158*577a7ad3SMauro Carvalho Chehab--------------------------- 159*577a7ad3SMauro Carvalho Chehab 160*577a7ad3SMauro Carvalho ChehabThis document describes how to upload the cx2341x firmware to the card. 161*577a7ad3SMauro Carvalho Chehab 162*577a7ad3SMauro Carvalho ChehabHow to find 163*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~ 164*577a7ad3SMauro Carvalho Chehab 165*577a7ad3SMauro Carvalho ChehabSee the web pages of the various projects that uses this chip for information 166*577a7ad3SMauro Carvalho Chehabon how to obtain the firmware. 167*577a7ad3SMauro Carvalho Chehab 168*577a7ad3SMauro Carvalho ChehabThe firmware stored in a Windows driver can be detected as follows: 169*577a7ad3SMauro Carvalho Chehab 170*577a7ad3SMauro Carvalho Chehab- Each firmware image is 256k bytes. 171*577a7ad3SMauro Carvalho Chehab- The 1st 32-bit word of the Encoder image is 0x0000da7 172*577a7ad3SMauro Carvalho Chehab- The 1st 32-bit word of the Decoder image is 0x00003a7 173*577a7ad3SMauro Carvalho Chehab- The 2nd 32-bit word of both images is 0xaa55bb66 174*577a7ad3SMauro Carvalho Chehab 175*577a7ad3SMauro Carvalho ChehabHow to load 176*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~ 177*577a7ad3SMauro Carvalho Chehab 178*577a7ad3SMauro Carvalho Chehab- Issue the FWapi command to stop the encoder if it is running. Wait for the 179*577a7ad3SMauro Carvalho Chehab command to complete. 180*577a7ad3SMauro Carvalho Chehab- Issue the FWapi command to stop the decoder if it is running. Wait for the 181*577a7ad3SMauro Carvalho Chehab command to complete. 182*577a7ad3SMauro Carvalho Chehab- Issue the I2C command to the digitizer to stop emitting VSYNC events. 183*577a7ad3SMauro Carvalho Chehab- Issue the FWapi command to halt the encoder's firmware. 184*577a7ad3SMauro Carvalho Chehab- Sleep for 10ms. 185*577a7ad3SMauro Carvalho Chehab- Issue the FWapi command to halt the decoder's firmware. 186*577a7ad3SMauro Carvalho Chehab- Sleep for 10ms. 187*577a7ad3SMauro Carvalho Chehab- Write 0x00000000 to register 0x2800 to stop the Video Display Module. 188*577a7ad3SMauro Carvalho Chehab- Write 0x00000005 to register 0x2D00 to stop the AO (audio output?). 189*577a7ad3SMauro Carvalho Chehab- Write 0x00000000 to register 0xA064 to ping? the APU. 190*577a7ad3SMauro Carvalho Chehab- Write 0xFFFFFFFE to register 0x9058 to stop the VPU. 191*577a7ad3SMauro Carvalho Chehab- Write 0xFFFFFFFF to register 0x9054 to reset the HW blocks. 192*577a7ad3SMauro Carvalho Chehab- Write 0x00000001 to register 0x9050 to stop the SPU. 193*577a7ad3SMauro Carvalho Chehab- Sleep for 10ms. 194*577a7ad3SMauro Carvalho Chehab- Write 0x0000001A to register 0x07FC to init the Encoder SDRAM's pre-charge. 195*577a7ad3SMauro Carvalho Chehab- Write 0x80000640 to register 0x07F8 to init the Encoder SDRAM's refresh to 1us. 196*577a7ad3SMauro Carvalho Chehab- Write 0x0000001A to register 0x08FC to init the Decoder SDRAM's pre-charge. 197*577a7ad3SMauro Carvalho Chehab- Write 0x80000640 to register 0x08F8 to init the Decoder SDRAM's refresh to 1us. 198*577a7ad3SMauro Carvalho Chehab- Sleep for 512ms. (600ms is recommended) 199*577a7ad3SMauro Carvalho Chehab- Transfer the encoder's firmware image to offset 0 in Encoder memory space. 200*577a7ad3SMauro Carvalho Chehab- Transfer the decoder's firmware image to offset 0 in Decoder memory space. 201*577a7ad3SMauro Carvalho Chehab- Use a read-modify-write operation to Clear bit 0 of register 0x9050 to 202*577a7ad3SMauro Carvalho Chehab re-enable the SPU. 203*577a7ad3SMauro Carvalho Chehab- Sleep for 1 second. 204*577a7ad3SMauro Carvalho Chehab- Use a read-modify-write operation to Clear bits 3 and 0 of register 0x9058 205*577a7ad3SMauro Carvalho Chehab to re-enable the VPU. 206*577a7ad3SMauro Carvalho Chehab- Sleep for 1 second. 207*577a7ad3SMauro Carvalho Chehab- Issue status API commands to both firmware images to verify. 208*577a7ad3SMauro Carvalho Chehab 209*577a7ad3SMauro Carvalho Chehab 210*577a7ad3SMauro Carvalho ChehabHow to call the firmware API 211*577a7ad3SMauro Carvalho Chehab---------------------------- 212*577a7ad3SMauro Carvalho Chehab 213*577a7ad3SMauro Carvalho ChehabThe preferred calling convention is known as the firmware mailbox. The 214*577a7ad3SMauro Carvalho Chehabmailboxes are basically a fixed length array that serves as the call-stack. 215*577a7ad3SMauro Carvalho Chehab 216*577a7ad3SMauro Carvalho ChehabFirmware mailboxes can be located by searching the encoder and decoder memory 217*577a7ad3SMauro Carvalho Chehabfor a 16 byte signature. That signature will be located on a 256-byte boundary. 218*577a7ad3SMauro Carvalho Chehab 219*577a7ad3SMauro Carvalho ChehabSignature: 220*577a7ad3SMauro Carvalho Chehab 221*577a7ad3SMauro Carvalho Chehab.. code-block:: none 222*577a7ad3SMauro Carvalho Chehab 223*577a7ad3SMauro Carvalho Chehab 0x78, 0x56, 0x34, 0x12, 0x12, 0x78, 0x56, 0x34, 224*577a7ad3SMauro Carvalho Chehab 0x34, 0x12, 0x78, 0x56, 0x56, 0x34, 0x12, 0x78 225*577a7ad3SMauro Carvalho Chehab 226*577a7ad3SMauro Carvalho ChehabThe firmware implements 20 mailboxes of 20 32-bit words. The first 10 are 227*577a7ad3SMauro Carvalho Chehabreserved for API calls. The second 10 are used by the firmware for event 228*577a7ad3SMauro Carvalho Chehabnotification. 229*577a7ad3SMauro Carvalho Chehab 230*577a7ad3SMauro Carvalho Chehab ====== ================= 231*577a7ad3SMauro Carvalho Chehab Index Name 232*577a7ad3SMauro Carvalho Chehab ====== ================= 233*577a7ad3SMauro Carvalho Chehab 0 Flags 234*577a7ad3SMauro Carvalho Chehab 1 Command 235*577a7ad3SMauro Carvalho Chehab 2 Return value 236*577a7ad3SMauro Carvalho Chehab 3 Timeout 237*577a7ad3SMauro Carvalho Chehab 4-19 Parameter/Result 238*577a7ad3SMauro Carvalho Chehab ====== ================= 239*577a7ad3SMauro Carvalho Chehab 240*577a7ad3SMauro Carvalho Chehab 241*577a7ad3SMauro Carvalho ChehabThe flags are defined in the following table. The direction is from the 242*577a7ad3SMauro Carvalho Chehabperspective of the firmware. 243*577a7ad3SMauro Carvalho Chehab 244*577a7ad3SMauro Carvalho Chehab ==== ========== ============================================ 245*577a7ad3SMauro Carvalho Chehab Bit Direction Purpose 246*577a7ad3SMauro Carvalho Chehab ==== ========== ============================================ 247*577a7ad3SMauro Carvalho Chehab 2 O Firmware has processed the command. 248*577a7ad3SMauro Carvalho Chehab 1 I Driver has finished setting the parameters. 249*577a7ad3SMauro Carvalho Chehab 0 I Driver is using this mailbox. 250*577a7ad3SMauro Carvalho Chehab ==== ========== ============================================ 251*577a7ad3SMauro Carvalho Chehab 252*577a7ad3SMauro Carvalho ChehabThe command is a 32-bit enumerator. The API specifics may be found in this 253*577a7ad3SMauro Carvalho Chehabchapter. 254*577a7ad3SMauro Carvalho Chehab 255*577a7ad3SMauro Carvalho ChehabThe return value is a 32-bit enumerator. Only two values are currently defined: 256*577a7ad3SMauro Carvalho Chehab 257*577a7ad3SMauro Carvalho Chehab- 0=success 258*577a7ad3SMauro Carvalho Chehab- -1=command undefined. 259*577a7ad3SMauro Carvalho Chehab 260*577a7ad3SMauro Carvalho ChehabThere are 16 parameters/results 32-bit fields. The driver populates these fields 261*577a7ad3SMauro Carvalho Chehabwith values for all the parameters required by the call. The driver overwrites 262*577a7ad3SMauro Carvalho Chehabthese fields with result values returned by the call. 263*577a7ad3SMauro Carvalho Chehab 264*577a7ad3SMauro Carvalho ChehabThe timeout value protects the card from a hung driver thread. If the driver 265*577a7ad3SMauro Carvalho Chehabdoesn't handle the completed call within the timeout specified, the firmware 266*577a7ad3SMauro Carvalho Chehabwill reset that mailbox. 267*577a7ad3SMauro Carvalho Chehab 268*577a7ad3SMauro Carvalho ChehabTo make an API call, the driver iterates over each mailbox looking for the 269*577a7ad3SMauro Carvalho Chehabfirst one available (bit 0 has been cleared). The driver sets that bit, fills 270*577a7ad3SMauro Carvalho Chehabin the command enumerator, the timeout value and any required parameters. The 271*577a7ad3SMauro Carvalho Chehabdriver then sets the parameter ready bit (bit 1). The firmware scans the 272*577a7ad3SMauro Carvalho Chehabmailboxes for pending commands, processes them, sets the result code, populates 273*577a7ad3SMauro Carvalho Chehabthe result value array with that call's return values and sets the call 274*577a7ad3SMauro Carvalho Chehabcomplete bit (bit 2). Once bit 2 is set, the driver should retrieve the results 275*577a7ad3SMauro Carvalho Chehaband clear all the flags. If the driver does not perform this task within the 276*577a7ad3SMauro Carvalho Chehabtime set in the timeout register, the firmware will reset that mailbox. 277*577a7ad3SMauro Carvalho Chehab 278*577a7ad3SMauro Carvalho ChehabEvent notifications are sent from the firmware to the host. The host tells the 279*577a7ad3SMauro Carvalho Chehabfirmware which events it is interested in via an API call. That call tells the 280*577a7ad3SMauro Carvalho Chehabfirmware which notification mailbox to use. The firmware signals the host via 281*577a7ad3SMauro Carvalho Chehaban interrupt. Only the 16 Results fields are used, the Flags, Command, Return 282*577a7ad3SMauro Carvalho Chehabvalue and Timeout words are not used. 283*577a7ad3SMauro Carvalho Chehab 284*577a7ad3SMauro Carvalho Chehab 285*577a7ad3SMauro Carvalho ChehabOSD firmware API description 286*577a7ad3SMauro Carvalho Chehab---------------------------- 287*577a7ad3SMauro Carvalho Chehab 288*577a7ad3SMauro Carvalho Chehab.. note:: this API is part of the decoder firmware, so it's cx23415 only. 289*577a7ad3SMauro Carvalho Chehab 290*577a7ad3SMauro Carvalho Chehab 291*577a7ad3SMauro Carvalho Chehab 292*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_GET_FRAMEBUFFER 293*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~ 294*577a7ad3SMauro Carvalho Chehab 295*577a7ad3SMauro Carvalho ChehabEnum: 65/0x41 296*577a7ad3SMauro Carvalho Chehab 297*577a7ad3SMauro Carvalho ChehabDescription 298*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 299*577a7ad3SMauro Carvalho Chehab 300*577a7ad3SMauro Carvalho ChehabReturn base and length of contiguous OSD memory. 301*577a7ad3SMauro Carvalho Chehab 302*577a7ad3SMauro Carvalho ChehabResult[0] 303*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 304*577a7ad3SMauro Carvalho Chehab 305*577a7ad3SMauro Carvalho ChehabOSD base address 306*577a7ad3SMauro Carvalho Chehab 307*577a7ad3SMauro Carvalho ChehabResult[1] 308*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 309*577a7ad3SMauro Carvalho Chehab 310*577a7ad3SMauro Carvalho ChehabOSD length 311*577a7ad3SMauro Carvalho Chehab 312*577a7ad3SMauro Carvalho Chehab 313*577a7ad3SMauro Carvalho Chehab 314*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_GET_PIXEL_FORMAT 315*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 316*577a7ad3SMauro Carvalho Chehab 317*577a7ad3SMauro Carvalho ChehabEnum: 66/0x42 318*577a7ad3SMauro Carvalho Chehab 319*577a7ad3SMauro Carvalho ChehabDescription 320*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 321*577a7ad3SMauro Carvalho Chehab 322*577a7ad3SMauro Carvalho ChehabQuery OSD format 323*577a7ad3SMauro Carvalho Chehab 324*577a7ad3SMauro Carvalho ChehabResult[0] 325*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 326*577a7ad3SMauro Carvalho Chehab 327*577a7ad3SMauro Carvalho Chehab0=8bit index 328*577a7ad3SMauro Carvalho Chehab1=16bit RGB 5:6:5 329*577a7ad3SMauro Carvalho Chehab2=16bit ARGB 1:5:5:5 330*577a7ad3SMauro Carvalho Chehab3=16bit ARGB 1:4:4:4 331*577a7ad3SMauro Carvalho Chehab4=32bit ARGB 8:8:8:8 332*577a7ad3SMauro Carvalho Chehab 333*577a7ad3SMauro Carvalho Chehab 334*577a7ad3SMauro Carvalho Chehab 335*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_SET_PIXEL_FORMAT 336*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 337*577a7ad3SMauro Carvalho Chehab 338*577a7ad3SMauro Carvalho ChehabEnum: 67/0x43 339*577a7ad3SMauro Carvalho Chehab 340*577a7ad3SMauro Carvalho ChehabDescription 341*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 342*577a7ad3SMauro Carvalho Chehab 343*577a7ad3SMauro Carvalho ChehabAssign pixel format 344*577a7ad3SMauro Carvalho Chehab 345*577a7ad3SMauro Carvalho ChehabParam[0] 346*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 347*577a7ad3SMauro Carvalho Chehab 348*577a7ad3SMauro Carvalho Chehab- 0=8bit index 349*577a7ad3SMauro Carvalho Chehab- 1=16bit RGB 5:6:5 350*577a7ad3SMauro Carvalho Chehab- 2=16bit ARGB 1:5:5:5 351*577a7ad3SMauro Carvalho Chehab- 3=16bit ARGB 1:4:4:4 352*577a7ad3SMauro Carvalho Chehab- 4=32bit ARGB 8:8:8:8 353*577a7ad3SMauro Carvalho Chehab 354*577a7ad3SMauro Carvalho Chehab 355*577a7ad3SMauro Carvalho Chehab 356*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_GET_STATE 357*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~ 358*577a7ad3SMauro Carvalho Chehab 359*577a7ad3SMauro Carvalho ChehabEnum: 68/0x44 360*577a7ad3SMauro Carvalho Chehab 361*577a7ad3SMauro Carvalho ChehabDescription 362*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 363*577a7ad3SMauro Carvalho Chehab 364*577a7ad3SMauro Carvalho ChehabQuery OSD state 365*577a7ad3SMauro Carvalho Chehab 366*577a7ad3SMauro Carvalho ChehabResult[0] 367*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 368*577a7ad3SMauro Carvalho Chehab 369*577a7ad3SMauro Carvalho Chehab- Bit 0 0=off, 1=on 370*577a7ad3SMauro Carvalho Chehab- Bits 1:2 alpha control 371*577a7ad3SMauro Carvalho Chehab- Bits 3:5 pixel format 372*577a7ad3SMauro Carvalho Chehab 373*577a7ad3SMauro Carvalho Chehab 374*577a7ad3SMauro Carvalho Chehab 375*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_SET_STATE 376*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~ 377*577a7ad3SMauro Carvalho Chehab 378*577a7ad3SMauro Carvalho ChehabEnum: 69/0x45 379*577a7ad3SMauro Carvalho Chehab 380*577a7ad3SMauro Carvalho ChehabDescription 381*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 382*577a7ad3SMauro Carvalho Chehab 383*577a7ad3SMauro Carvalho ChehabOSD switch 384*577a7ad3SMauro Carvalho Chehab 385*577a7ad3SMauro Carvalho ChehabParam[0] 386*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 387*577a7ad3SMauro Carvalho Chehab 388*577a7ad3SMauro Carvalho Chehab0=off, 1=on 389*577a7ad3SMauro Carvalho Chehab 390*577a7ad3SMauro Carvalho Chehab 391*577a7ad3SMauro Carvalho Chehab 392*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_GET_OSD_COORDS 393*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 394*577a7ad3SMauro Carvalho Chehab 395*577a7ad3SMauro Carvalho ChehabEnum: 70/0x46 396*577a7ad3SMauro Carvalho Chehab 397*577a7ad3SMauro Carvalho ChehabDescription 398*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 399*577a7ad3SMauro Carvalho Chehab 400*577a7ad3SMauro Carvalho ChehabRetrieve coordinates of OSD area blended with video 401*577a7ad3SMauro Carvalho Chehab 402*577a7ad3SMauro Carvalho ChehabResult[0] 403*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 404*577a7ad3SMauro Carvalho Chehab 405*577a7ad3SMauro Carvalho ChehabOSD buffer address 406*577a7ad3SMauro Carvalho Chehab 407*577a7ad3SMauro Carvalho ChehabResult[1] 408*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 409*577a7ad3SMauro Carvalho Chehab 410*577a7ad3SMauro Carvalho ChehabStride in pixels 411*577a7ad3SMauro Carvalho Chehab 412*577a7ad3SMauro Carvalho ChehabResult[2] 413*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 414*577a7ad3SMauro Carvalho Chehab 415*577a7ad3SMauro Carvalho ChehabLines in OSD buffer 416*577a7ad3SMauro Carvalho Chehab 417*577a7ad3SMauro Carvalho ChehabResult[3] 418*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 419*577a7ad3SMauro Carvalho Chehab 420*577a7ad3SMauro Carvalho ChehabHorizontal offset in buffer 421*577a7ad3SMauro Carvalho Chehab 422*577a7ad3SMauro Carvalho ChehabResult[4] 423*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 424*577a7ad3SMauro Carvalho Chehab 425*577a7ad3SMauro Carvalho ChehabVertical offset in buffer 426*577a7ad3SMauro Carvalho Chehab 427*577a7ad3SMauro Carvalho Chehab 428*577a7ad3SMauro Carvalho Chehab 429*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_SET_OSD_COORDS 430*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 431*577a7ad3SMauro Carvalho Chehab 432*577a7ad3SMauro Carvalho ChehabEnum: 71/0x47 433*577a7ad3SMauro Carvalho Chehab 434*577a7ad3SMauro Carvalho ChehabDescription 435*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 436*577a7ad3SMauro Carvalho Chehab 437*577a7ad3SMauro Carvalho ChehabAssign the coordinates of the OSD area to blend with video 438*577a7ad3SMauro Carvalho Chehab 439*577a7ad3SMauro Carvalho ChehabParam[0] 440*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 441*577a7ad3SMauro Carvalho Chehab 442*577a7ad3SMauro Carvalho Chehabbuffer address 443*577a7ad3SMauro Carvalho Chehab 444*577a7ad3SMauro Carvalho ChehabParam[1] 445*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 446*577a7ad3SMauro Carvalho Chehab 447*577a7ad3SMauro Carvalho Chehabbuffer stride in pixels 448*577a7ad3SMauro Carvalho Chehab 449*577a7ad3SMauro Carvalho ChehabParam[2] 450*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 451*577a7ad3SMauro Carvalho Chehab 452*577a7ad3SMauro Carvalho Chehablines in buffer 453*577a7ad3SMauro Carvalho Chehab 454*577a7ad3SMauro Carvalho ChehabParam[3] 455*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 456*577a7ad3SMauro Carvalho Chehab 457*577a7ad3SMauro Carvalho Chehabhorizontal offset 458*577a7ad3SMauro Carvalho Chehab 459*577a7ad3SMauro Carvalho ChehabParam[4] 460*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 461*577a7ad3SMauro Carvalho Chehab 462*577a7ad3SMauro Carvalho Chehabvertical offset 463*577a7ad3SMauro Carvalho Chehab 464*577a7ad3SMauro Carvalho Chehab 465*577a7ad3SMauro Carvalho Chehab 466*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_GET_SCREEN_COORDS 467*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 468*577a7ad3SMauro Carvalho Chehab 469*577a7ad3SMauro Carvalho ChehabEnum: 72/0x48 470*577a7ad3SMauro Carvalho Chehab 471*577a7ad3SMauro Carvalho ChehabDescription 472*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 473*577a7ad3SMauro Carvalho Chehab 474*577a7ad3SMauro Carvalho ChehabRetrieve OSD screen area coordinates 475*577a7ad3SMauro Carvalho Chehab 476*577a7ad3SMauro Carvalho ChehabResult[0] 477*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 478*577a7ad3SMauro Carvalho Chehab 479*577a7ad3SMauro Carvalho Chehabtop left horizontal offset 480*577a7ad3SMauro Carvalho Chehab 481*577a7ad3SMauro Carvalho ChehabResult[1] 482*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 483*577a7ad3SMauro Carvalho Chehab 484*577a7ad3SMauro Carvalho Chehabtop left vertical offset 485*577a7ad3SMauro Carvalho Chehab 486*577a7ad3SMauro Carvalho ChehabResult[2] 487*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 488*577a7ad3SMauro Carvalho Chehab 489*577a7ad3SMauro Carvalho Chehabbottom right horizontal offset 490*577a7ad3SMauro Carvalho Chehab 491*577a7ad3SMauro Carvalho ChehabResult[3] 492*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 493*577a7ad3SMauro Carvalho Chehab 494*577a7ad3SMauro Carvalho Chehabbottom right vertical offset 495*577a7ad3SMauro Carvalho Chehab 496*577a7ad3SMauro Carvalho Chehab 497*577a7ad3SMauro Carvalho Chehab 498*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_SET_SCREEN_COORDS 499*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500*577a7ad3SMauro Carvalho Chehab 501*577a7ad3SMauro Carvalho ChehabEnum: 73/0x49 502*577a7ad3SMauro Carvalho Chehab 503*577a7ad3SMauro Carvalho ChehabDescription 504*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 505*577a7ad3SMauro Carvalho Chehab 506*577a7ad3SMauro Carvalho ChehabAssign the coordinates of the screen area to blend with video 507*577a7ad3SMauro Carvalho Chehab 508*577a7ad3SMauro Carvalho ChehabParam[0] 509*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 510*577a7ad3SMauro Carvalho Chehab 511*577a7ad3SMauro Carvalho Chehabtop left horizontal offset 512*577a7ad3SMauro Carvalho Chehab 513*577a7ad3SMauro Carvalho ChehabParam[1] 514*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 515*577a7ad3SMauro Carvalho Chehab 516*577a7ad3SMauro Carvalho Chehabtop left vertical offset 517*577a7ad3SMauro Carvalho Chehab 518*577a7ad3SMauro Carvalho ChehabParam[2] 519*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 520*577a7ad3SMauro Carvalho Chehab 521*577a7ad3SMauro Carvalho Chehabbottom left horizontal offset 522*577a7ad3SMauro Carvalho Chehab 523*577a7ad3SMauro Carvalho ChehabParam[3] 524*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 525*577a7ad3SMauro Carvalho Chehab 526*577a7ad3SMauro Carvalho Chehabbottom left vertical offset 527*577a7ad3SMauro Carvalho Chehab 528*577a7ad3SMauro Carvalho Chehab 529*577a7ad3SMauro Carvalho Chehab 530*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_GET_GLOBAL_ALPHA 531*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 532*577a7ad3SMauro Carvalho Chehab 533*577a7ad3SMauro Carvalho ChehabEnum: 74/0x4A 534*577a7ad3SMauro Carvalho Chehab 535*577a7ad3SMauro Carvalho ChehabDescription 536*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 537*577a7ad3SMauro Carvalho Chehab 538*577a7ad3SMauro Carvalho ChehabRetrieve OSD global alpha 539*577a7ad3SMauro Carvalho Chehab 540*577a7ad3SMauro Carvalho ChehabResult[0] 541*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 542*577a7ad3SMauro Carvalho Chehab 543*577a7ad3SMauro Carvalho Chehabglobal alpha: 0=off, 1=on 544*577a7ad3SMauro Carvalho Chehab 545*577a7ad3SMauro Carvalho ChehabResult[1] 546*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 547*577a7ad3SMauro Carvalho Chehab 548*577a7ad3SMauro Carvalho Chehabbits 0:7 global alpha 549*577a7ad3SMauro Carvalho Chehab 550*577a7ad3SMauro Carvalho Chehab 551*577a7ad3SMauro Carvalho Chehab 552*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_SET_GLOBAL_ALPHA 553*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 554*577a7ad3SMauro Carvalho Chehab 555*577a7ad3SMauro Carvalho ChehabEnum: 75/0x4B 556*577a7ad3SMauro Carvalho Chehab 557*577a7ad3SMauro Carvalho ChehabDescription 558*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 559*577a7ad3SMauro Carvalho Chehab 560*577a7ad3SMauro Carvalho ChehabUpdate global alpha 561*577a7ad3SMauro Carvalho Chehab 562*577a7ad3SMauro Carvalho ChehabParam[0] 563*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 564*577a7ad3SMauro Carvalho Chehab 565*577a7ad3SMauro Carvalho Chehabglobal alpha: 0=off, 1=on 566*577a7ad3SMauro Carvalho Chehab 567*577a7ad3SMauro Carvalho ChehabParam[1] 568*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 569*577a7ad3SMauro Carvalho Chehab 570*577a7ad3SMauro Carvalho Chehabglobal alpha (8 bits) 571*577a7ad3SMauro Carvalho Chehab 572*577a7ad3SMauro Carvalho ChehabParam[2] 573*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 574*577a7ad3SMauro Carvalho Chehab 575*577a7ad3SMauro Carvalho Chehablocal alpha: 0=on, 1=off 576*577a7ad3SMauro Carvalho Chehab 577*577a7ad3SMauro Carvalho Chehab 578*577a7ad3SMauro Carvalho Chehab 579*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_SET_BLEND_COORDS 580*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581*577a7ad3SMauro Carvalho Chehab 582*577a7ad3SMauro Carvalho ChehabEnum: 78/0x4C 583*577a7ad3SMauro Carvalho Chehab 584*577a7ad3SMauro Carvalho ChehabDescription 585*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 586*577a7ad3SMauro Carvalho Chehab 587*577a7ad3SMauro Carvalho ChehabMove start of blending area within display buffer 588*577a7ad3SMauro Carvalho Chehab 589*577a7ad3SMauro Carvalho ChehabParam[0] 590*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 591*577a7ad3SMauro Carvalho Chehab 592*577a7ad3SMauro Carvalho Chehabhorizontal offset in buffer 593*577a7ad3SMauro Carvalho Chehab 594*577a7ad3SMauro Carvalho ChehabParam[1] 595*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 596*577a7ad3SMauro Carvalho Chehab 597*577a7ad3SMauro Carvalho Chehabvertical offset in buffer 598*577a7ad3SMauro Carvalho Chehab 599*577a7ad3SMauro Carvalho Chehab 600*577a7ad3SMauro Carvalho Chehab 601*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_GET_FLICKER_STATE 602*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603*577a7ad3SMauro Carvalho Chehab 604*577a7ad3SMauro Carvalho ChehabEnum: 79/0x4F 605*577a7ad3SMauro Carvalho Chehab 606*577a7ad3SMauro Carvalho ChehabDescription 607*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 608*577a7ad3SMauro Carvalho Chehab 609*577a7ad3SMauro Carvalho ChehabRetrieve flicker reduction module state 610*577a7ad3SMauro Carvalho Chehab 611*577a7ad3SMauro Carvalho ChehabResult[0] 612*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 613*577a7ad3SMauro Carvalho Chehab 614*577a7ad3SMauro Carvalho Chehabflicker state: 0=off, 1=on 615*577a7ad3SMauro Carvalho Chehab 616*577a7ad3SMauro Carvalho Chehab 617*577a7ad3SMauro Carvalho Chehab 618*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_SET_FLICKER_STATE 619*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 620*577a7ad3SMauro Carvalho Chehab 621*577a7ad3SMauro Carvalho ChehabEnum: 80/0x50 622*577a7ad3SMauro Carvalho Chehab 623*577a7ad3SMauro Carvalho ChehabDescription 624*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 625*577a7ad3SMauro Carvalho Chehab 626*577a7ad3SMauro Carvalho ChehabSet flicker reduction module state 627*577a7ad3SMauro Carvalho Chehab 628*577a7ad3SMauro Carvalho ChehabParam[0] 629*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 630*577a7ad3SMauro Carvalho Chehab 631*577a7ad3SMauro Carvalho ChehabState: 0=off, 1=on 632*577a7ad3SMauro Carvalho Chehab 633*577a7ad3SMauro Carvalho Chehab 634*577a7ad3SMauro Carvalho Chehab 635*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_BLT_COPY 636*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~ 637*577a7ad3SMauro Carvalho Chehab 638*577a7ad3SMauro Carvalho ChehabEnum: 82/0x52 639*577a7ad3SMauro Carvalho Chehab 640*577a7ad3SMauro Carvalho ChehabDescription 641*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 642*577a7ad3SMauro Carvalho Chehab 643*577a7ad3SMauro Carvalho ChehabBLT copy 644*577a7ad3SMauro Carvalho Chehab 645*577a7ad3SMauro Carvalho ChehabParam[0] 646*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 647*577a7ad3SMauro Carvalho Chehab 648*577a7ad3SMauro Carvalho Chehab.. code-block:: none 649*577a7ad3SMauro Carvalho Chehab 650*577a7ad3SMauro Carvalho Chehab '0000' zero 651*577a7ad3SMauro Carvalho Chehab '0001' ~destination AND ~source 652*577a7ad3SMauro Carvalho Chehab '0010' ~destination AND source 653*577a7ad3SMauro Carvalho Chehab '0011' ~destination 654*577a7ad3SMauro Carvalho Chehab '0100' destination AND ~source 655*577a7ad3SMauro Carvalho Chehab '0101' ~source 656*577a7ad3SMauro Carvalho Chehab '0110' destination XOR source 657*577a7ad3SMauro Carvalho Chehab '0111' ~destination OR ~source 658*577a7ad3SMauro Carvalho Chehab '1000' ~destination AND ~source 659*577a7ad3SMauro Carvalho Chehab '1001' destination XNOR source 660*577a7ad3SMauro Carvalho Chehab '1010' source 661*577a7ad3SMauro Carvalho Chehab '1011' ~destination OR source 662*577a7ad3SMauro Carvalho Chehab '1100' destination 663*577a7ad3SMauro Carvalho Chehab '1101' destination OR ~source 664*577a7ad3SMauro Carvalho Chehab '1110' destination OR source 665*577a7ad3SMauro Carvalho Chehab '1111' one 666*577a7ad3SMauro Carvalho Chehab 667*577a7ad3SMauro Carvalho Chehab 668*577a7ad3SMauro Carvalho ChehabParam[1] 669*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 670*577a7ad3SMauro Carvalho Chehab 671*577a7ad3SMauro Carvalho ChehabResulting alpha blending 672*577a7ad3SMauro Carvalho Chehab 673*577a7ad3SMauro Carvalho Chehab- '01' source_alpha 674*577a7ad3SMauro Carvalho Chehab- '10' destination_alpha 675*577a7ad3SMauro Carvalho Chehab- '11' source_alpha*destination_alpha+1 676*577a7ad3SMauro Carvalho Chehab (zero if both source and destination alpha are zero) 677*577a7ad3SMauro Carvalho Chehab 678*577a7ad3SMauro Carvalho ChehabParam[2] 679*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 680*577a7ad3SMauro Carvalho Chehab 681*577a7ad3SMauro Carvalho Chehab.. code-block:: none 682*577a7ad3SMauro Carvalho Chehab 683*577a7ad3SMauro Carvalho Chehab '00' output_pixel = source_pixel 684*577a7ad3SMauro Carvalho Chehab 685*577a7ad3SMauro Carvalho Chehab '01' if source_alpha=0: 686*577a7ad3SMauro Carvalho Chehab output_pixel = destination_pixel 687*577a7ad3SMauro Carvalho Chehab if 256 > source_alpha > 1: 688*577a7ad3SMauro Carvalho Chehab output_pixel = ((source_alpha + 1)*source_pixel + 689*577a7ad3SMauro Carvalho Chehab (255 - source_alpha)*destination_pixel)/256 690*577a7ad3SMauro Carvalho Chehab 691*577a7ad3SMauro Carvalho Chehab '10' if destination_alpha=0: 692*577a7ad3SMauro Carvalho Chehab output_pixel = source_pixel 693*577a7ad3SMauro Carvalho Chehab if 255 > destination_alpha > 0: 694*577a7ad3SMauro Carvalho Chehab output_pixel = ((255 - destination_alpha)*source_pixel + 695*577a7ad3SMauro Carvalho Chehab (destination_alpha + 1)*destination_pixel)/256 696*577a7ad3SMauro Carvalho Chehab 697*577a7ad3SMauro Carvalho Chehab '11' if source_alpha=0: 698*577a7ad3SMauro Carvalho Chehab source_temp = 0 699*577a7ad3SMauro Carvalho Chehab if source_alpha=255: 700*577a7ad3SMauro Carvalho Chehab source_temp = source_pixel*256 701*577a7ad3SMauro Carvalho Chehab if 255 > source_alpha > 0: 702*577a7ad3SMauro Carvalho Chehab source_temp = source_pixel*(source_alpha + 1) 703*577a7ad3SMauro Carvalho Chehab if destination_alpha=0: 704*577a7ad3SMauro Carvalho Chehab destination_temp = 0 705*577a7ad3SMauro Carvalho Chehab if destination_alpha=255: 706*577a7ad3SMauro Carvalho Chehab destination_temp = destination_pixel*256 707*577a7ad3SMauro Carvalho Chehab if 255 > destination_alpha > 0: 708*577a7ad3SMauro Carvalho Chehab destination_temp = destination_pixel*(destination_alpha + 1) 709*577a7ad3SMauro Carvalho Chehab output_pixel = (source_temp + destination_temp)/256 710*577a7ad3SMauro Carvalho Chehab 711*577a7ad3SMauro Carvalho ChehabParam[3] 712*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 713*577a7ad3SMauro Carvalho Chehab 714*577a7ad3SMauro Carvalho Chehabwidth 715*577a7ad3SMauro Carvalho Chehab 716*577a7ad3SMauro Carvalho ChehabParam[4] 717*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 718*577a7ad3SMauro Carvalho Chehab 719*577a7ad3SMauro Carvalho Chehabheight 720*577a7ad3SMauro Carvalho Chehab 721*577a7ad3SMauro Carvalho ChehabParam[5] 722*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 723*577a7ad3SMauro Carvalho Chehab 724*577a7ad3SMauro Carvalho Chehabdestination pixel mask 725*577a7ad3SMauro Carvalho Chehab 726*577a7ad3SMauro Carvalho ChehabParam[6] 727*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 728*577a7ad3SMauro Carvalho Chehab 729*577a7ad3SMauro Carvalho Chehabdestination rectangle start address 730*577a7ad3SMauro Carvalho Chehab 731*577a7ad3SMauro Carvalho ChehabParam[7] 732*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 733*577a7ad3SMauro Carvalho Chehab 734*577a7ad3SMauro Carvalho Chehabdestination stride in dwords 735*577a7ad3SMauro Carvalho Chehab 736*577a7ad3SMauro Carvalho ChehabParam[8] 737*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 738*577a7ad3SMauro Carvalho Chehab 739*577a7ad3SMauro Carvalho Chehabsource stride in dwords 740*577a7ad3SMauro Carvalho Chehab 741*577a7ad3SMauro Carvalho ChehabParam[9] 742*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 743*577a7ad3SMauro Carvalho Chehab 744*577a7ad3SMauro Carvalho Chehabsource rectangle start address 745*577a7ad3SMauro Carvalho Chehab 746*577a7ad3SMauro Carvalho Chehab 747*577a7ad3SMauro Carvalho Chehab 748*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_BLT_FILL 749*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~ 750*577a7ad3SMauro Carvalho Chehab 751*577a7ad3SMauro Carvalho ChehabEnum: 83/0x53 752*577a7ad3SMauro Carvalho Chehab 753*577a7ad3SMauro Carvalho ChehabDescription 754*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 755*577a7ad3SMauro Carvalho Chehab 756*577a7ad3SMauro Carvalho ChehabBLT fill color 757*577a7ad3SMauro Carvalho Chehab 758*577a7ad3SMauro Carvalho ChehabParam[0] 759*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 760*577a7ad3SMauro Carvalho Chehab 761*577a7ad3SMauro Carvalho ChehabSame as Param[0] on API 0x52 762*577a7ad3SMauro Carvalho Chehab 763*577a7ad3SMauro Carvalho ChehabParam[1] 764*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 765*577a7ad3SMauro Carvalho Chehab 766*577a7ad3SMauro Carvalho ChehabSame as Param[1] on API 0x52 767*577a7ad3SMauro Carvalho Chehab 768*577a7ad3SMauro Carvalho ChehabParam[2] 769*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 770*577a7ad3SMauro Carvalho Chehab 771*577a7ad3SMauro Carvalho ChehabSame as Param[2] on API 0x52 772*577a7ad3SMauro Carvalho Chehab 773*577a7ad3SMauro Carvalho ChehabParam[3] 774*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 775*577a7ad3SMauro Carvalho Chehab 776*577a7ad3SMauro Carvalho Chehabwidth 777*577a7ad3SMauro Carvalho Chehab 778*577a7ad3SMauro Carvalho ChehabParam[4] 779*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 780*577a7ad3SMauro Carvalho Chehab 781*577a7ad3SMauro Carvalho Chehabheight 782*577a7ad3SMauro Carvalho Chehab 783*577a7ad3SMauro Carvalho ChehabParam[5] 784*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 785*577a7ad3SMauro Carvalho Chehab 786*577a7ad3SMauro Carvalho Chehabdestination pixel mask 787*577a7ad3SMauro Carvalho Chehab 788*577a7ad3SMauro Carvalho ChehabParam[6] 789*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 790*577a7ad3SMauro Carvalho Chehab 791*577a7ad3SMauro Carvalho Chehabdestination rectangle start address 792*577a7ad3SMauro Carvalho Chehab 793*577a7ad3SMauro Carvalho ChehabParam[7] 794*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 795*577a7ad3SMauro Carvalho Chehab 796*577a7ad3SMauro Carvalho Chehabdestination stride in dwords 797*577a7ad3SMauro Carvalho Chehab 798*577a7ad3SMauro Carvalho ChehabParam[8] 799*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 800*577a7ad3SMauro Carvalho Chehab 801*577a7ad3SMauro Carvalho Chehabcolor fill value 802*577a7ad3SMauro Carvalho Chehab 803*577a7ad3SMauro Carvalho Chehab 804*577a7ad3SMauro Carvalho Chehab 805*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_BLT_TEXT 806*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~ 807*577a7ad3SMauro Carvalho Chehab 808*577a7ad3SMauro Carvalho ChehabEnum: 84/0x54 809*577a7ad3SMauro Carvalho Chehab 810*577a7ad3SMauro Carvalho ChehabDescription 811*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 812*577a7ad3SMauro Carvalho Chehab 813*577a7ad3SMauro Carvalho ChehabBLT for 8 bit alpha text source 814*577a7ad3SMauro Carvalho Chehab 815*577a7ad3SMauro Carvalho ChehabParam[0] 816*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 817*577a7ad3SMauro Carvalho Chehab 818*577a7ad3SMauro Carvalho ChehabSame as Param[0] on API 0x52 819*577a7ad3SMauro Carvalho Chehab 820*577a7ad3SMauro Carvalho ChehabParam[1] 821*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 822*577a7ad3SMauro Carvalho Chehab 823*577a7ad3SMauro Carvalho ChehabSame as Param[1] on API 0x52 824*577a7ad3SMauro Carvalho Chehab 825*577a7ad3SMauro Carvalho ChehabParam[2] 826*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 827*577a7ad3SMauro Carvalho Chehab 828*577a7ad3SMauro Carvalho ChehabSame as Param[2] on API 0x52 829*577a7ad3SMauro Carvalho Chehab 830*577a7ad3SMauro Carvalho ChehabParam[3] 831*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 832*577a7ad3SMauro Carvalho Chehab 833*577a7ad3SMauro Carvalho Chehabwidth 834*577a7ad3SMauro Carvalho Chehab 835*577a7ad3SMauro Carvalho ChehabParam[4] 836*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 837*577a7ad3SMauro Carvalho Chehab 838*577a7ad3SMauro Carvalho Chehabheight 839*577a7ad3SMauro Carvalho Chehab 840*577a7ad3SMauro Carvalho ChehabParam[5] 841*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 842*577a7ad3SMauro Carvalho Chehab 843*577a7ad3SMauro Carvalho Chehabdestination pixel mask 844*577a7ad3SMauro Carvalho Chehab 845*577a7ad3SMauro Carvalho ChehabParam[6] 846*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 847*577a7ad3SMauro Carvalho Chehab 848*577a7ad3SMauro Carvalho Chehabdestination rectangle start address 849*577a7ad3SMauro Carvalho Chehab 850*577a7ad3SMauro Carvalho ChehabParam[7] 851*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 852*577a7ad3SMauro Carvalho Chehab 853*577a7ad3SMauro Carvalho Chehabdestination stride in dwords 854*577a7ad3SMauro Carvalho Chehab 855*577a7ad3SMauro Carvalho ChehabParam[8] 856*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 857*577a7ad3SMauro Carvalho Chehab 858*577a7ad3SMauro Carvalho Chehabsource stride in dwords 859*577a7ad3SMauro Carvalho Chehab 860*577a7ad3SMauro Carvalho ChehabParam[9] 861*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 862*577a7ad3SMauro Carvalho Chehab 863*577a7ad3SMauro Carvalho Chehabsource rectangle start address 864*577a7ad3SMauro Carvalho Chehab 865*577a7ad3SMauro Carvalho ChehabParam[10] 866*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 867*577a7ad3SMauro Carvalho Chehab 868*577a7ad3SMauro Carvalho Chehabcolor fill value 869*577a7ad3SMauro Carvalho Chehab 870*577a7ad3SMauro Carvalho Chehab 871*577a7ad3SMauro Carvalho Chehab 872*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_SET_FRAMEBUFFER_WINDOW 873*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874*577a7ad3SMauro Carvalho Chehab 875*577a7ad3SMauro Carvalho ChehabEnum: 86/0x56 876*577a7ad3SMauro Carvalho Chehab 877*577a7ad3SMauro Carvalho ChehabDescription 878*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 879*577a7ad3SMauro Carvalho Chehab 880*577a7ad3SMauro Carvalho ChehabPositions the main output window on the screen. The coordinates must be 881*577a7ad3SMauro Carvalho Chehabsuch that the entire window fits on the screen. 882*577a7ad3SMauro Carvalho Chehab 883*577a7ad3SMauro Carvalho ChehabParam[0] 884*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 885*577a7ad3SMauro Carvalho Chehab 886*577a7ad3SMauro Carvalho Chehabwindow width 887*577a7ad3SMauro Carvalho Chehab 888*577a7ad3SMauro Carvalho ChehabParam[1] 889*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 890*577a7ad3SMauro Carvalho Chehab 891*577a7ad3SMauro Carvalho Chehabwindow height 892*577a7ad3SMauro Carvalho Chehab 893*577a7ad3SMauro Carvalho ChehabParam[2] 894*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 895*577a7ad3SMauro Carvalho Chehab 896*577a7ad3SMauro Carvalho Chehabtop left window corner horizontal offset 897*577a7ad3SMauro Carvalho Chehab 898*577a7ad3SMauro Carvalho ChehabParam[3] 899*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 900*577a7ad3SMauro Carvalho Chehab 901*577a7ad3SMauro Carvalho Chehabtop left window corner vertical offset 902*577a7ad3SMauro Carvalho Chehab 903*577a7ad3SMauro Carvalho Chehab 904*577a7ad3SMauro Carvalho Chehab 905*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_SET_CHROMA_KEY 906*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 907*577a7ad3SMauro Carvalho Chehab 908*577a7ad3SMauro Carvalho ChehabEnum: 96/0x60 909*577a7ad3SMauro Carvalho Chehab 910*577a7ad3SMauro Carvalho ChehabDescription 911*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 912*577a7ad3SMauro Carvalho Chehab 913*577a7ad3SMauro Carvalho ChehabChroma key switch and color 914*577a7ad3SMauro Carvalho Chehab 915*577a7ad3SMauro Carvalho ChehabParam[0] 916*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 917*577a7ad3SMauro Carvalho Chehab 918*577a7ad3SMauro Carvalho Chehabstate: 0=off, 1=on 919*577a7ad3SMauro Carvalho Chehab 920*577a7ad3SMauro Carvalho ChehabParam[1] 921*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 922*577a7ad3SMauro Carvalho Chehab 923*577a7ad3SMauro Carvalho Chehabcolor 924*577a7ad3SMauro Carvalho Chehab 925*577a7ad3SMauro Carvalho Chehab 926*577a7ad3SMauro Carvalho Chehab 927*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_GET_ALPHA_CONTENT_INDEX 928*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 929*577a7ad3SMauro Carvalho Chehab 930*577a7ad3SMauro Carvalho ChehabEnum: 97/0x61 931*577a7ad3SMauro Carvalho Chehab 932*577a7ad3SMauro Carvalho ChehabDescription 933*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 934*577a7ad3SMauro Carvalho Chehab 935*577a7ad3SMauro Carvalho ChehabRetrieve alpha content index 936*577a7ad3SMauro Carvalho Chehab 937*577a7ad3SMauro Carvalho ChehabResult[0] 938*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 939*577a7ad3SMauro Carvalho Chehab 940*577a7ad3SMauro Carvalho Chehabalpha content index, Range 0:15 941*577a7ad3SMauro Carvalho Chehab 942*577a7ad3SMauro Carvalho Chehab 943*577a7ad3SMauro Carvalho Chehab 944*577a7ad3SMauro Carvalho ChehabCX2341X_OSD_SET_ALPHA_CONTENT_INDEX 945*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 946*577a7ad3SMauro Carvalho Chehab 947*577a7ad3SMauro Carvalho ChehabEnum: 98/0x62 948*577a7ad3SMauro Carvalho Chehab 949*577a7ad3SMauro Carvalho ChehabDescription 950*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 951*577a7ad3SMauro Carvalho Chehab 952*577a7ad3SMauro Carvalho ChehabAssign alpha content index 953*577a7ad3SMauro Carvalho Chehab 954*577a7ad3SMauro Carvalho ChehabParam[0] 955*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 956*577a7ad3SMauro Carvalho Chehab 957*577a7ad3SMauro Carvalho Chehabalpha content index, range 0:15 958*577a7ad3SMauro Carvalho Chehab 959*577a7ad3SMauro Carvalho Chehab 960*577a7ad3SMauro Carvalho ChehabEncoder firmware API description 961*577a7ad3SMauro Carvalho Chehab-------------------------------- 962*577a7ad3SMauro Carvalho Chehab 963*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_PING_FW 964*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~ 965*577a7ad3SMauro Carvalho Chehab 966*577a7ad3SMauro Carvalho ChehabEnum: 128/0x80 967*577a7ad3SMauro Carvalho Chehab 968*577a7ad3SMauro Carvalho ChehabDescription 969*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 970*577a7ad3SMauro Carvalho Chehab 971*577a7ad3SMauro Carvalho ChehabDoes nothing. Can be used to check if the firmware is responding. 972*577a7ad3SMauro Carvalho Chehab 973*577a7ad3SMauro Carvalho Chehab 974*577a7ad3SMauro Carvalho Chehab 975*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_START_CAPTURE 976*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~ 977*577a7ad3SMauro Carvalho Chehab 978*577a7ad3SMauro Carvalho ChehabEnum: 129/0x81 979*577a7ad3SMauro Carvalho Chehab 980*577a7ad3SMauro Carvalho ChehabDescription 981*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 982*577a7ad3SMauro Carvalho Chehab 983*577a7ad3SMauro Carvalho ChehabCommences the capture of video, audio and/or VBI data. All encoding 984*577a7ad3SMauro Carvalho Chehabparameters must be initialized prior to this API call. Captures frames 985*577a7ad3SMauro Carvalho Chehabcontinuously or until a predefined number of frames have been captured. 986*577a7ad3SMauro Carvalho Chehab 987*577a7ad3SMauro Carvalho ChehabParam[0] 988*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 989*577a7ad3SMauro Carvalho Chehab 990*577a7ad3SMauro Carvalho ChehabCapture stream type: 991*577a7ad3SMauro Carvalho Chehab 992*577a7ad3SMauro Carvalho Chehab - 0=MPEG 993*577a7ad3SMauro Carvalho Chehab - 1=Raw 994*577a7ad3SMauro Carvalho Chehab - 2=Raw passthrough 995*577a7ad3SMauro Carvalho Chehab - 3=VBI 996*577a7ad3SMauro Carvalho Chehab 997*577a7ad3SMauro Carvalho Chehab 998*577a7ad3SMauro Carvalho ChehabParam[1] 999*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1000*577a7ad3SMauro Carvalho Chehab 1001*577a7ad3SMauro Carvalho ChehabBitmask: 1002*577a7ad3SMauro Carvalho Chehab 1003*577a7ad3SMauro Carvalho Chehab - Bit 0 when set, captures YUV 1004*577a7ad3SMauro Carvalho Chehab - Bit 1 when set, captures PCM audio 1005*577a7ad3SMauro Carvalho Chehab - Bit 2 when set, captures VBI (same as param[0]=3) 1006*577a7ad3SMauro Carvalho Chehab - Bit 3 when set, the capture destination is the decoder 1007*577a7ad3SMauro Carvalho Chehab (same as param[0]=2) 1008*577a7ad3SMauro Carvalho Chehab - Bit 4 when set, the capture destination is the host 1009*577a7ad3SMauro Carvalho Chehab 1010*577a7ad3SMauro Carvalho Chehab.. note:: this parameter is only meaningful for RAW capture type. 1011*577a7ad3SMauro Carvalho Chehab 1012*577a7ad3SMauro Carvalho Chehab 1013*577a7ad3SMauro Carvalho Chehab 1014*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_STOP_CAPTURE 1015*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~ 1016*577a7ad3SMauro Carvalho Chehab 1017*577a7ad3SMauro Carvalho ChehabEnum: 130/0x82 1018*577a7ad3SMauro Carvalho Chehab 1019*577a7ad3SMauro Carvalho ChehabDescription 1020*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1021*577a7ad3SMauro Carvalho Chehab 1022*577a7ad3SMauro Carvalho ChehabEnds a capture in progress 1023*577a7ad3SMauro Carvalho Chehab 1024*577a7ad3SMauro Carvalho ChehabParam[0] 1025*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1026*577a7ad3SMauro Carvalho Chehab 1027*577a7ad3SMauro Carvalho Chehab- 0=stop at end of GOP (generates IRQ) 1028*577a7ad3SMauro Carvalho Chehab- 1=stop immediate (no IRQ) 1029*577a7ad3SMauro Carvalho Chehab 1030*577a7ad3SMauro Carvalho ChehabParam[1] 1031*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1032*577a7ad3SMauro Carvalho Chehab 1033*577a7ad3SMauro Carvalho ChehabStream type to stop, see param[0] of API 0x81 1034*577a7ad3SMauro Carvalho Chehab 1035*577a7ad3SMauro Carvalho ChehabParam[2] 1036*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1037*577a7ad3SMauro Carvalho Chehab 1038*577a7ad3SMauro Carvalho ChehabSubtype, see param[1] of API 0x81 1039*577a7ad3SMauro Carvalho Chehab 1040*577a7ad3SMauro Carvalho Chehab 1041*577a7ad3SMauro Carvalho Chehab 1042*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_AUDIO_ID 1043*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~ 1044*577a7ad3SMauro Carvalho Chehab 1045*577a7ad3SMauro Carvalho ChehabEnum: 137/0x89 1046*577a7ad3SMauro Carvalho Chehab 1047*577a7ad3SMauro Carvalho ChehabDescription 1048*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1049*577a7ad3SMauro Carvalho Chehab 1050*577a7ad3SMauro Carvalho ChehabAssigns the transport stream ID of the encoded audio stream 1051*577a7ad3SMauro Carvalho Chehab 1052*577a7ad3SMauro Carvalho ChehabParam[0] 1053*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1054*577a7ad3SMauro Carvalho Chehab 1055*577a7ad3SMauro Carvalho ChehabAudio Stream ID 1056*577a7ad3SMauro Carvalho Chehab 1057*577a7ad3SMauro Carvalho Chehab 1058*577a7ad3SMauro Carvalho Chehab 1059*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_VIDEO_ID 1060*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~ 1061*577a7ad3SMauro Carvalho Chehab 1062*577a7ad3SMauro Carvalho ChehabEnum: 139/0x8B 1063*577a7ad3SMauro Carvalho Chehab 1064*577a7ad3SMauro Carvalho ChehabDescription 1065*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1066*577a7ad3SMauro Carvalho Chehab 1067*577a7ad3SMauro Carvalho ChehabSet video transport stream ID 1068*577a7ad3SMauro Carvalho Chehab 1069*577a7ad3SMauro Carvalho ChehabParam[0] 1070*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1071*577a7ad3SMauro Carvalho Chehab 1072*577a7ad3SMauro Carvalho ChehabVideo stream ID 1073*577a7ad3SMauro Carvalho Chehab 1074*577a7ad3SMauro Carvalho Chehab 1075*577a7ad3SMauro Carvalho Chehab 1076*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_PCR_ID 1077*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~ 1078*577a7ad3SMauro Carvalho Chehab 1079*577a7ad3SMauro Carvalho ChehabEnum: 141/0x8D 1080*577a7ad3SMauro Carvalho Chehab 1081*577a7ad3SMauro Carvalho ChehabDescription 1082*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1083*577a7ad3SMauro Carvalho Chehab 1084*577a7ad3SMauro Carvalho ChehabAssigns the transport stream ID for PCR packets 1085*577a7ad3SMauro Carvalho Chehab 1086*577a7ad3SMauro Carvalho ChehabParam[0] 1087*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1088*577a7ad3SMauro Carvalho Chehab 1089*577a7ad3SMauro Carvalho ChehabPCR Stream ID 1090*577a7ad3SMauro Carvalho Chehab 1091*577a7ad3SMauro Carvalho Chehab 1092*577a7ad3SMauro Carvalho Chehab 1093*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_FRAME_RATE 1094*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 1095*577a7ad3SMauro Carvalho Chehab 1096*577a7ad3SMauro Carvalho ChehabEnum: 143/0x8F 1097*577a7ad3SMauro Carvalho Chehab 1098*577a7ad3SMauro Carvalho ChehabDescription 1099*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1100*577a7ad3SMauro Carvalho Chehab 1101*577a7ad3SMauro Carvalho ChehabSet video frames per second. Change occurs at start of new GOP. 1102*577a7ad3SMauro Carvalho Chehab 1103*577a7ad3SMauro Carvalho ChehabParam[0] 1104*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1105*577a7ad3SMauro Carvalho Chehab 1106*577a7ad3SMauro Carvalho Chehab- 0=30fps 1107*577a7ad3SMauro Carvalho Chehab- 1=25fps 1108*577a7ad3SMauro Carvalho Chehab 1109*577a7ad3SMauro Carvalho Chehab 1110*577a7ad3SMauro Carvalho Chehab 1111*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_FRAME_SIZE 1112*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 1113*577a7ad3SMauro Carvalho Chehab 1114*577a7ad3SMauro Carvalho ChehabEnum: 145/0x91 1115*577a7ad3SMauro Carvalho Chehab 1116*577a7ad3SMauro Carvalho ChehabDescription 1117*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1118*577a7ad3SMauro Carvalho Chehab 1119*577a7ad3SMauro Carvalho ChehabSelect video stream encoding resolution. 1120*577a7ad3SMauro Carvalho Chehab 1121*577a7ad3SMauro Carvalho ChehabParam[0] 1122*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1123*577a7ad3SMauro Carvalho Chehab 1124*577a7ad3SMauro Carvalho ChehabHeight in lines. Default 480 1125*577a7ad3SMauro Carvalho Chehab 1126*577a7ad3SMauro Carvalho ChehabParam[1] 1127*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1128*577a7ad3SMauro Carvalho Chehab 1129*577a7ad3SMauro Carvalho ChehabWidth in pixels. Default 720 1130*577a7ad3SMauro Carvalho Chehab 1131*577a7ad3SMauro Carvalho Chehab 1132*577a7ad3SMauro Carvalho Chehab 1133*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_BIT_RATE 1134*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~ 1135*577a7ad3SMauro Carvalho Chehab 1136*577a7ad3SMauro Carvalho ChehabEnum: 149/0x95 1137*577a7ad3SMauro Carvalho Chehab 1138*577a7ad3SMauro Carvalho ChehabDescription 1139*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1140*577a7ad3SMauro Carvalho Chehab 1141*577a7ad3SMauro Carvalho ChehabAssign average video stream bitrate. 1142*577a7ad3SMauro Carvalho Chehab 1143*577a7ad3SMauro Carvalho ChehabParam[0] 1144*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1145*577a7ad3SMauro Carvalho Chehab 1146*577a7ad3SMauro Carvalho Chehab0=variable bitrate, 1=constant bitrate 1147*577a7ad3SMauro Carvalho Chehab 1148*577a7ad3SMauro Carvalho ChehabParam[1] 1149*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1150*577a7ad3SMauro Carvalho Chehab 1151*577a7ad3SMauro Carvalho Chehabbitrate in bits per second 1152*577a7ad3SMauro Carvalho Chehab 1153*577a7ad3SMauro Carvalho ChehabParam[2] 1154*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1155*577a7ad3SMauro Carvalho Chehab 1156*577a7ad3SMauro Carvalho Chehabpeak bitrate in bits per second, divided by 400 1157*577a7ad3SMauro Carvalho Chehab 1158*577a7ad3SMauro Carvalho ChehabParam[3] 1159*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1160*577a7ad3SMauro Carvalho Chehab 1161*577a7ad3SMauro Carvalho ChehabMux bitrate in bits per second, divided by 400. May be 0 (default). 1162*577a7ad3SMauro Carvalho Chehab 1163*577a7ad3SMauro Carvalho ChehabParam[4] 1164*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1165*577a7ad3SMauro Carvalho Chehab 1166*577a7ad3SMauro Carvalho ChehabRate Control VBR Padding 1167*577a7ad3SMauro Carvalho Chehab 1168*577a7ad3SMauro Carvalho ChehabParam[5] 1169*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1170*577a7ad3SMauro Carvalho Chehab 1171*577a7ad3SMauro Carvalho ChehabVBV Buffer used by encoder 1172*577a7ad3SMauro Carvalho Chehab 1173*577a7ad3SMauro Carvalho Chehab.. note:: 1174*577a7ad3SMauro Carvalho Chehab 1175*577a7ad3SMauro Carvalho Chehab #) Param\[3\] and Param\[4\] seem to be always 0 1176*577a7ad3SMauro Carvalho Chehab #) Param\[5\] doesn't seem to be used. 1177*577a7ad3SMauro Carvalho Chehab 1178*577a7ad3SMauro Carvalho Chehab 1179*577a7ad3SMauro Carvalho Chehab 1180*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_GOP_PROPERTIES 1181*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1182*577a7ad3SMauro Carvalho Chehab 1183*577a7ad3SMauro Carvalho ChehabEnum: 151/0x97 1184*577a7ad3SMauro Carvalho Chehab 1185*577a7ad3SMauro Carvalho ChehabDescription 1186*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1187*577a7ad3SMauro Carvalho Chehab 1188*577a7ad3SMauro Carvalho ChehabSetup the GOP structure 1189*577a7ad3SMauro Carvalho Chehab 1190*577a7ad3SMauro Carvalho ChehabParam[0] 1191*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1192*577a7ad3SMauro Carvalho Chehab 1193*577a7ad3SMauro Carvalho ChehabGOP size (maximum is 34) 1194*577a7ad3SMauro Carvalho Chehab 1195*577a7ad3SMauro Carvalho ChehabParam[1] 1196*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1197*577a7ad3SMauro Carvalho Chehab 1198*577a7ad3SMauro Carvalho ChehabNumber of B frames between the I and P frame, plus 1. 1199*577a7ad3SMauro Carvalho ChehabFor example: IBBPBBPBBPBB --> GOP size: 12, number of B frames: 2+1 = 3 1200*577a7ad3SMauro Carvalho Chehab 1201*577a7ad3SMauro Carvalho Chehab.. note:: 1202*577a7ad3SMauro Carvalho Chehab 1203*577a7ad3SMauro Carvalho Chehab GOP size must be a multiple of (B-frames + 1). 1204*577a7ad3SMauro Carvalho Chehab 1205*577a7ad3SMauro Carvalho Chehab 1206*577a7ad3SMauro Carvalho Chehab 1207*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_ASPECT_RATIO 1208*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1209*577a7ad3SMauro Carvalho Chehab 1210*577a7ad3SMauro Carvalho ChehabEnum: 153/0x99 1211*577a7ad3SMauro Carvalho Chehab 1212*577a7ad3SMauro Carvalho ChehabDescription 1213*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1214*577a7ad3SMauro Carvalho Chehab 1215*577a7ad3SMauro Carvalho ChehabSets the encoding aspect ratio. Changes in the aspect ratio take effect 1216*577a7ad3SMauro Carvalho Chehabat the start of the next GOP. 1217*577a7ad3SMauro Carvalho Chehab 1218*577a7ad3SMauro Carvalho ChehabParam[0] 1219*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1220*577a7ad3SMauro Carvalho Chehab 1221*577a7ad3SMauro Carvalho Chehab- '0000' forbidden 1222*577a7ad3SMauro Carvalho Chehab- '0001' 1:1 square 1223*577a7ad3SMauro Carvalho Chehab- '0010' 4:3 1224*577a7ad3SMauro Carvalho Chehab- '0011' 16:9 1225*577a7ad3SMauro Carvalho Chehab- '0100' 2.21:1 1226*577a7ad3SMauro Carvalho Chehab- '0101' to '1111' reserved 1227*577a7ad3SMauro Carvalho Chehab 1228*577a7ad3SMauro Carvalho Chehab 1229*577a7ad3SMauro Carvalho Chehab 1230*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_DNR_FILTER_MODE 1231*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1232*577a7ad3SMauro Carvalho Chehab 1233*577a7ad3SMauro Carvalho ChehabEnum: 155/0x9B 1234*577a7ad3SMauro Carvalho Chehab 1235*577a7ad3SMauro Carvalho ChehabDescription 1236*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1237*577a7ad3SMauro Carvalho Chehab 1238*577a7ad3SMauro Carvalho ChehabAssign Dynamic Noise Reduction operating mode 1239*577a7ad3SMauro Carvalho Chehab 1240*577a7ad3SMauro Carvalho ChehabParam[0] 1241*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1242*577a7ad3SMauro Carvalho Chehab 1243*577a7ad3SMauro Carvalho ChehabBit0: Spatial filter, set=auto, clear=manual 1244*577a7ad3SMauro Carvalho ChehabBit1: Temporal filter, set=auto, clear=manual 1245*577a7ad3SMauro Carvalho Chehab 1246*577a7ad3SMauro Carvalho ChehabParam[1] 1247*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1248*577a7ad3SMauro Carvalho Chehab 1249*577a7ad3SMauro Carvalho ChehabMedian filter: 1250*577a7ad3SMauro Carvalho Chehab 1251*577a7ad3SMauro Carvalho Chehab- 0=Disabled 1252*577a7ad3SMauro Carvalho Chehab- 1=Horizontal 1253*577a7ad3SMauro Carvalho Chehab- 2=Vertical 1254*577a7ad3SMauro Carvalho Chehab- 3=Horiz/Vert 1255*577a7ad3SMauro Carvalho Chehab- 4=Diagonal 1256*577a7ad3SMauro Carvalho Chehab 1257*577a7ad3SMauro Carvalho Chehab 1258*577a7ad3SMauro Carvalho Chehab 1259*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_DNR_FILTER_PROPS 1260*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1261*577a7ad3SMauro Carvalho Chehab 1262*577a7ad3SMauro Carvalho ChehabEnum: 157/0x9D 1263*577a7ad3SMauro Carvalho Chehab 1264*577a7ad3SMauro Carvalho ChehabDescription 1265*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1266*577a7ad3SMauro Carvalho Chehab 1267*577a7ad3SMauro Carvalho ChehabThese Dynamic Noise Reduction filter values are only meaningful when 1268*577a7ad3SMauro Carvalho Chehabthe respective filter is set to "manual" (See API 0x9B) 1269*577a7ad3SMauro Carvalho Chehab 1270*577a7ad3SMauro Carvalho ChehabParam[0] 1271*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1272*577a7ad3SMauro Carvalho Chehab 1273*577a7ad3SMauro Carvalho ChehabSpatial filter: default 0, range 0:15 1274*577a7ad3SMauro Carvalho Chehab 1275*577a7ad3SMauro Carvalho ChehabParam[1] 1276*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1277*577a7ad3SMauro Carvalho Chehab 1278*577a7ad3SMauro Carvalho ChehabTemporal filter: default 0, range 0:31 1279*577a7ad3SMauro Carvalho Chehab 1280*577a7ad3SMauro Carvalho Chehab 1281*577a7ad3SMauro Carvalho Chehab 1282*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_CORING_LEVELS 1283*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1284*577a7ad3SMauro Carvalho Chehab 1285*577a7ad3SMauro Carvalho ChehabEnum: 159/0x9F 1286*577a7ad3SMauro Carvalho Chehab 1287*577a7ad3SMauro Carvalho ChehabDescription 1288*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1289*577a7ad3SMauro Carvalho Chehab 1290*577a7ad3SMauro Carvalho ChehabAssign Dynamic Noise Reduction median filter properties. 1291*577a7ad3SMauro Carvalho Chehab 1292*577a7ad3SMauro Carvalho ChehabParam[0] 1293*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1294*577a7ad3SMauro Carvalho Chehab 1295*577a7ad3SMauro Carvalho ChehabThreshold above which the luminance median filter is enabled. 1296*577a7ad3SMauro Carvalho ChehabDefault: 0, range 0:255 1297*577a7ad3SMauro Carvalho Chehab 1298*577a7ad3SMauro Carvalho ChehabParam[1] 1299*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1300*577a7ad3SMauro Carvalho Chehab 1301*577a7ad3SMauro Carvalho ChehabThreshold below which the luminance median filter is enabled. 1302*577a7ad3SMauro Carvalho ChehabDefault: 255, range 0:255 1303*577a7ad3SMauro Carvalho Chehab 1304*577a7ad3SMauro Carvalho ChehabParam[2] 1305*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1306*577a7ad3SMauro Carvalho Chehab 1307*577a7ad3SMauro Carvalho ChehabThreshold above which the chrominance median filter is enabled. 1308*577a7ad3SMauro Carvalho ChehabDefault: 0, range 0:255 1309*577a7ad3SMauro Carvalho Chehab 1310*577a7ad3SMauro Carvalho ChehabParam[3] 1311*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1312*577a7ad3SMauro Carvalho Chehab 1313*577a7ad3SMauro Carvalho ChehabThreshold below which the chrominance median filter is enabled. 1314*577a7ad3SMauro Carvalho ChehabDefault: 255, range 0:255 1315*577a7ad3SMauro Carvalho Chehab 1316*577a7ad3SMauro Carvalho Chehab 1317*577a7ad3SMauro Carvalho Chehab 1318*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_SPATIAL_FILTER_TYPE 1319*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1320*577a7ad3SMauro Carvalho Chehab 1321*577a7ad3SMauro Carvalho ChehabEnum: 161/0xA1 1322*577a7ad3SMauro Carvalho Chehab 1323*577a7ad3SMauro Carvalho ChehabDescription 1324*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1325*577a7ad3SMauro Carvalho Chehab 1326*577a7ad3SMauro Carvalho ChehabAssign spatial prefilter parameters 1327*577a7ad3SMauro Carvalho Chehab 1328*577a7ad3SMauro Carvalho ChehabParam[0] 1329*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1330*577a7ad3SMauro Carvalho Chehab 1331*577a7ad3SMauro Carvalho ChehabLuminance filter 1332*577a7ad3SMauro Carvalho Chehab 1333*577a7ad3SMauro Carvalho Chehab- 0=Off 1334*577a7ad3SMauro Carvalho Chehab- 1=1D Horizontal 1335*577a7ad3SMauro Carvalho Chehab- 2=1D Vertical 1336*577a7ad3SMauro Carvalho Chehab- 3=2D H/V Separable (default) 1337*577a7ad3SMauro Carvalho Chehab- 4=2D Symmetric non-separable 1338*577a7ad3SMauro Carvalho Chehab 1339*577a7ad3SMauro Carvalho ChehabParam[1] 1340*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1341*577a7ad3SMauro Carvalho Chehab 1342*577a7ad3SMauro Carvalho ChehabChrominance filter 1343*577a7ad3SMauro Carvalho Chehab 1344*577a7ad3SMauro Carvalho Chehab- 0=Off 1345*577a7ad3SMauro Carvalho Chehab- 1=1D Horizontal (default) 1346*577a7ad3SMauro Carvalho Chehab 1347*577a7ad3SMauro Carvalho Chehab 1348*577a7ad3SMauro Carvalho Chehab 1349*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_VBI_LINE 1350*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~ 1351*577a7ad3SMauro Carvalho Chehab 1352*577a7ad3SMauro Carvalho ChehabEnum: 183/0xB7 1353*577a7ad3SMauro Carvalho Chehab 1354*577a7ad3SMauro Carvalho ChehabDescription 1355*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1356*577a7ad3SMauro Carvalho Chehab 1357*577a7ad3SMauro Carvalho ChehabSelects VBI line number. 1358*577a7ad3SMauro Carvalho Chehab 1359*577a7ad3SMauro Carvalho ChehabParam[0] 1360*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1361*577a7ad3SMauro Carvalho Chehab 1362*577a7ad3SMauro Carvalho Chehab- Bits 0:4 line number 1363*577a7ad3SMauro Carvalho Chehab- Bit 31 0=top_field, 1=bottom_field 1364*577a7ad3SMauro Carvalho Chehab- Bits 0:31 all set specifies "all lines" 1365*577a7ad3SMauro Carvalho Chehab 1366*577a7ad3SMauro Carvalho ChehabParam[1] 1367*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1368*577a7ad3SMauro Carvalho Chehab 1369*577a7ad3SMauro Carvalho ChehabVBI line information features: 0=disabled, 1=enabled 1370*577a7ad3SMauro Carvalho Chehab 1371*577a7ad3SMauro Carvalho ChehabParam[2] 1372*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1373*577a7ad3SMauro Carvalho Chehab 1374*577a7ad3SMauro Carvalho ChehabSlicing: 0=None, 1=Closed Caption 1375*577a7ad3SMauro Carvalho ChehabAlmost certainly not implemented. Set to 0. 1376*577a7ad3SMauro Carvalho Chehab 1377*577a7ad3SMauro Carvalho ChehabParam[3] 1378*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1379*577a7ad3SMauro Carvalho Chehab 1380*577a7ad3SMauro Carvalho ChehabLuminance samples in this line. 1381*577a7ad3SMauro Carvalho ChehabAlmost certainly not implemented. Set to 0. 1382*577a7ad3SMauro Carvalho Chehab 1383*577a7ad3SMauro Carvalho ChehabParam[4] 1384*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1385*577a7ad3SMauro Carvalho Chehab 1386*577a7ad3SMauro Carvalho ChehabChrominance samples in this line 1387*577a7ad3SMauro Carvalho ChehabAlmost certainly not implemented. Set to 0. 1388*577a7ad3SMauro Carvalho Chehab 1389*577a7ad3SMauro Carvalho Chehab 1390*577a7ad3SMauro Carvalho Chehab 1391*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_STREAM_TYPE 1392*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1393*577a7ad3SMauro Carvalho Chehab 1394*577a7ad3SMauro Carvalho ChehabEnum: 185/0xB9 1395*577a7ad3SMauro Carvalho Chehab 1396*577a7ad3SMauro Carvalho ChehabDescription 1397*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1398*577a7ad3SMauro Carvalho Chehab 1399*577a7ad3SMauro Carvalho ChehabAssign stream type 1400*577a7ad3SMauro Carvalho Chehab 1401*577a7ad3SMauro Carvalho Chehab.. note:: 1402*577a7ad3SMauro Carvalho Chehab 1403*577a7ad3SMauro Carvalho Chehab Transport stream is not working in recent firmwares. 1404*577a7ad3SMauro Carvalho Chehab And in older firmwares the timestamps in the TS seem to be 1405*577a7ad3SMauro Carvalho Chehab unreliable. 1406*577a7ad3SMauro Carvalho Chehab 1407*577a7ad3SMauro Carvalho ChehabParam[0] 1408*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1409*577a7ad3SMauro Carvalho Chehab 1410*577a7ad3SMauro Carvalho Chehab- 0=Program stream 1411*577a7ad3SMauro Carvalho Chehab- 1=Transport stream 1412*577a7ad3SMauro Carvalho Chehab- 2=MPEG1 stream 1413*577a7ad3SMauro Carvalho Chehab- 3=PES A/V stream 1414*577a7ad3SMauro Carvalho Chehab- 5=PES Video stream 1415*577a7ad3SMauro Carvalho Chehab- 7=PES Audio stream 1416*577a7ad3SMauro Carvalho Chehab- 10=DVD stream 1417*577a7ad3SMauro Carvalho Chehab- 11=VCD stream 1418*577a7ad3SMauro Carvalho Chehab- 12=SVCD stream 1419*577a7ad3SMauro Carvalho Chehab- 13=DVD_S1 stream 1420*577a7ad3SMauro Carvalho Chehab- 14=DVD_S2 stream 1421*577a7ad3SMauro Carvalho Chehab 1422*577a7ad3SMauro Carvalho Chehab 1423*577a7ad3SMauro Carvalho Chehab 1424*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_OUTPUT_PORT 1425*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1426*577a7ad3SMauro Carvalho Chehab 1427*577a7ad3SMauro Carvalho ChehabEnum: 187/0xBB 1428*577a7ad3SMauro Carvalho Chehab 1429*577a7ad3SMauro Carvalho ChehabDescription 1430*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1431*577a7ad3SMauro Carvalho Chehab 1432*577a7ad3SMauro Carvalho ChehabAssign stream output port. Normally 0 when the data is copied through 1433*577a7ad3SMauro Carvalho Chehabthe PCI bus (DMA), and 1 when the data is streamed to another chip 1434*577a7ad3SMauro Carvalho Chehab(pvrusb and cx88-blackbird). 1435*577a7ad3SMauro Carvalho Chehab 1436*577a7ad3SMauro Carvalho ChehabParam[0] 1437*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1438*577a7ad3SMauro Carvalho Chehab 1439*577a7ad3SMauro Carvalho Chehab- 0=Memory (default) 1440*577a7ad3SMauro Carvalho Chehab- 1=Streaming 1441*577a7ad3SMauro Carvalho Chehab- 2=Serial 1442*577a7ad3SMauro Carvalho Chehab 1443*577a7ad3SMauro Carvalho ChehabParam[1] 1444*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1445*577a7ad3SMauro Carvalho Chehab 1446*577a7ad3SMauro Carvalho ChehabUnknown, but leaving this to 0 seems to work best. Indications are that 1447*577a7ad3SMauro Carvalho Chehabthis might have to do with USB support, although passing anything but 0 1448*577a7ad3SMauro Carvalho Chehabonly breaks things. 1449*577a7ad3SMauro Carvalho Chehab 1450*577a7ad3SMauro Carvalho Chehab 1451*577a7ad3SMauro Carvalho Chehab 1452*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_AUDIO_PROPERTIES 1453*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1454*577a7ad3SMauro Carvalho Chehab 1455*577a7ad3SMauro Carvalho ChehabEnum: 189/0xBD 1456*577a7ad3SMauro Carvalho Chehab 1457*577a7ad3SMauro Carvalho ChehabDescription 1458*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1459*577a7ad3SMauro Carvalho Chehab 1460*577a7ad3SMauro Carvalho ChehabSet audio stream properties, may be called while encoding is in progress. 1461*577a7ad3SMauro Carvalho Chehab 1462*577a7ad3SMauro Carvalho Chehab.. note:: 1463*577a7ad3SMauro Carvalho Chehab 1464*577a7ad3SMauro Carvalho Chehab All bitfields are consistent with ISO11172 documentation except 1465*577a7ad3SMauro Carvalho Chehab bits 2:3 which ISO docs define as: 1466*577a7ad3SMauro Carvalho Chehab 1467*577a7ad3SMauro Carvalho Chehab - '11' Layer I 1468*577a7ad3SMauro Carvalho Chehab - '10' Layer II 1469*577a7ad3SMauro Carvalho Chehab - '01' Layer III 1470*577a7ad3SMauro Carvalho Chehab - '00' Undefined 1471*577a7ad3SMauro Carvalho Chehab 1472*577a7ad3SMauro Carvalho Chehab This discrepancy may indicate a possible error in the documentation. 1473*577a7ad3SMauro Carvalho Chehab Testing indicated that only Layer II is actually working, and that 1474*577a7ad3SMauro Carvalho Chehab the minimum bitrate should be 192 kbps. 1475*577a7ad3SMauro Carvalho Chehab 1476*577a7ad3SMauro Carvalho ChehabParam[0] 1477*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1478*577a7ad3SMauro Carvalho Chehab 1479*577a7ad3SMauro Carvalho ChehabBitmask: 1480*577a7ad3SMauro Carvalho Chehab 1481*577a7ad3SMauro Carvalho Chehab.. code-block:: none 1482*577a7ad3SMauro Carvalho Chehab 1483*577a7ad3SMauro Carvalho Chehab 0:1 '00' 44.1Khz 1484*577a7ad3SMauro Carvalho Chehab '01' 48Khz 1485*577a7ad3SMauro Carvalho Chehab '10' 32Khz 1486*577a7ad3SMauro Carvalho Chehab '11' reserved 1487*577a7ad3SMauro Carvalho Chehab 1488*577a7ad3SMauro Carvalho Chehab 2:3 '01'=Layer I 1489*577a7ad3SMauro Carvalho Chehab '10'=Layer II 1490*577a7ad3SMauro Carvalho Chehab 1491*577a7ad3SMauro Carvalho Chehab 4:7 Bitrate: 1492*577a7ad3SMauro Carvalho Chehab Index | Layer I | Layer II 1493*577a7ad3SMauro Carvalho Chehab ------+-------------+------------ 1494*577a7ad3SMauro Carvalho Chehab '0000' | free format | free format 1495*577a7ad3SMauro Carvalho Chehab '0001' | 32 kbit/s | 32 kbit/s 1496*577a7ad3SMauro Carvalho Chehab '0010' | 64 kbit/s | 48 kbit/s 1497*577a7ad3SMauro Carvalho Chehab '0011' | 96 kbit/s | 56 kbit/s 1498*577a7ad3SMauro Carvalho Chehab '0100' | 128 kbit/s | 64 kbit/s 1499*577a7ad3SMauro Carvalho Chehab '0101' | 160 kbit/s | 80 kbit/s 1500*577a7ad3SMauro Carvalho Chehab '0110' | 192 kbit/s | 96 kbit/s 1501*577a7ad3SMauro Carvalho Chehab '0111' | 224 kbit/s | 112 kbit/s 1502*577a7ad3SMauro Carvalho Chehab '1000' | 256 kbit/s | 128 kbit/s 1503*577a7ad3SMauro Carvalho Chehab '1001' | 288 kbit/s | 160 kbit/s 1504*577a7ad3SMauro Carvalho Chehab '1010' | 320 kbit/s | 192 kbit/s 1505*577a7ad3SMauro Carvalho Chehab '1011' | 352 kbit/s | 224 kbit/s 1506*577a7ad3SMauro Carvalho Chehab '1100' | 384 kbit/s | 256 kbit/s 1507*577a7ad3SMauro Carvalho Chehab '1101' | 416 kbit/s | 320 kbit/s 1508*577a7ad3SMauro Carvalho Chehab '1110' | 448 kbit/s | 384 kbit/s 1509*577a7ad3SMauro Carvalho Chehab 1510*577a7ad3SMauro Carvalho Chehab .. note:: 1511*577a7ad3SMauro Carvalho Chehab 1512*577a7ad3SMauro Carvalho Chehab For Layer II, not all combinations of total bitrate 1513*577a7ad3SMauro Carvalho Chehab and mode are allowed. See ISO11172-3 3-Annex B, 1514*577a7ad3SMauro Carvalho Chehab Table 3-B.2 1515*577a7ad3SMauro Carvalho Chehab 1516*577a7ad3SMauro Carvalho Chehab 8:9 '00'=Stereo 1517*577a7ad3SMauro Carvalho Chehab '01'=JointStereo 1518*577a7ad3SMauro Carvalho Chehab '10'=Dual 1519*577a7ad3SMauro Carvalho Chehab '11'=Mono 1520*577a7ad3SMauro Carvalho Chehab 1521*577a7ad3SMauro Carvalho Chehab .. note:: 1522*577a7ad3SMauro Carvalho Chehab 1523*577a7ad3SMauro Carvalho Chehab The cx23415 cannot decode Joint Stereo properly. 1524*577a7ad3SMauro Carvalho Chehab 1525*577a7ad3SMauro Carvalho Chehab 10:11 Mode Extension used in joint_stereo mode. 1526*577a7ad3SMauro Carvalho Chehab In Layer I and II they indicate which subbands are in 1527*577a7ad3SMauro Carvalho Chehab intensity_stereo. All other subbands are coded in stereo. 1528*577a7ad3SMauro Carvalho Chehab '00' subbands 4-31 in intensity_stereo, bound==4 1529*577a7ad3SMauro Carvalho Chehab '01' subbands 8-31 in intensity_stereo, bound==8 1530*577a7ad3SMauro Carvalho Chehab '10' subbands 12-31 in intensity_stereo, bound==12 1531*577a7ad3SMauro Carvalho Chehab '11' subbands 16-31 in intensity_stereo, bound==16 1532*577a7ad3SMauro Carvalho Chehab 1533*577a7ad3SMauro Carvalho Chehab 12:13 Emphasis: 1534*577a7ad3SMauro Carvalho Chehab '00' None 1535*577a7ad3SMauro Carvalho Chehab '01' 50/15uS 1536*577a7ad3SMauro Carvalho Chehab '10' reserved 1537*577a7ad3SMauro Carvalho Chehab '11' CCITT J.17 1538*577a7ad3SMauro Carvalho Chehab 1539*577a7ad3SMauro Carvalho Chehab 14 CRC: 1540*577a7ad3SMauro Carvalho Chehab '0' off 1541*577a7ad3SMauro Carvalho Chehab '1' on 1542*577a7ad3SMauro Carvalho Chehab 1543*577a7ad3SMauro Carvalho Chehab 15 Copyright: 1544*577a7ad3SMauro Carvalho Chehab '0' off 1545*577a7ad3SMauro Carvalho Chehab '1' on 1546*577a7ad3SMauro Carvalho Chehab 1547*577a7ad3SMauro Carvalho Chehab 16 Generation: 1548*577a7ad3SMauro Carvalho Chehab '0' copy 1549*577a7ad3SMauro Carvalho Chehab '1' original 1550*577a7ad3SMauro Carvalho Chehab 1551*577a7ad3SMauro Carvalho Chehab 1552*577a7ad3SMauro Carvalho Chehab 1553*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_HALT_FW 1554*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~ 1555*577a7ad3SMauro Carvalho Chehab 1556*577a7ad3SMauro Carvalho ChehabEnum: 195/0xC3 1557*577a7ad3SMauro Carvalho Chehab 1558*577a7ad3SMauro Carvalho ChehabDescription 1559*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1560*577a7ad3SMauro Carvalho Chehab 1561*577a7ad3SMauro Carvalho ChehabThe firmware is halted and no further API calls are serviced until the 1562*577a7ad3SMauro Carvalho Chehabfirmware is uploaded again. 1563*577a7ad3SMauro Carvalho Chehab 1564*577a7ad3SMauro Carvalho Chehab 1565*577a7ad3SMauro Carvalho Chehab 1566*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_GET_VERSION 1567*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~ 1568*577a7ad3SMauro Carvalho Chehab 1569*577a7ad3SMauro Carvalho ChehabEnum: 196/0xC4 1570*577a7ad3SMauro Carvalho Chehab 1571*577a7ad3SMauro Carvalho ChehabDescription 1572*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1573*577a7ad3SMauro Carvalho Chehab 1574*577a7ad3SMauro Carvalho ChehabReturns the version of the encoder firmware. 1575*577a7ad3SMauro Carvalho Chehab 1576*577a7ad3SMauro Carvalho ChehabResult[0] 1577*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1578*577a7ad3SMauro Carvalho Chehab 1579*577a7ad3SMauro Carvalho ChehabVersion bitmask: 1580*577a7ad3SMauro Carvalho Chehab- Bits 0:15 build 1581*577a7ad3SMauro Carvalho Chehab- Bits 16:23 minor 1582*577a7ad3SMauro Carvalho Chehab- Bits 24:31 major 1583*577a7ad3SMauro Carvalho Chehab 1584*577a7ad3SMauro Carvalho Chehab 1585*577a7ad3SMauro Carvalho Chehab 1586*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_GOP_CLOSURE 1587*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1588*577a7ad3SMauro Carvalho Chehab 1589*577a7ad3SMauro Carvalho ChehabEnum: 197/0xC5 1590*577a7ad3SMauro Carvalho Chehab 1591*577a7ad3SMauro Carvalho ChehabDescription 1592*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1593*577a7ad3SMauro Carvalho Chehab 1594*577a7ad3SMauro Carvalho ChehabAssigns the GOP open/close property. 1595*577a7ad3SMauro Carvalho Chehab 1596*577a7ad3SMauro Carvalho ChehabParam[0] 1597*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1598*577a7ad3SMauro Carvalho Chehab 1599*577a7ad3SMauro Carvalho Chehab- 0=Open 1600*577a7ad3SMauro Carvalho Chehab- 1=Closed 1601*577a7ad3SMauro Carvalho Chehab 1602*577a7ad3SMauro Carvalho Chehab 1603*577a7ad3SMauro Carvalho Chehab 1604*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_GET_SEQ_END 1605*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~ 1606*577a7ad3SMauro Carvalho Chehab 1607*577a7ad3SMauro Carvalho ChehabEnum: 198/0xC6 1608*577a7ad3SMauro Carvalho Chehab 1609*577a7ad3SMauro Carvalho ChehabDescription 1610*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1611*577a7ad3SMauro Carvalho Chehab 1612*577a7ad3SMauro Carvalho ChehabObtains the sequence end code of the encoder's buffer. When a capture 1613*577a7ad3SMauro Carvalho Chehabis started a number of interrupts are still generated, the last of 1614*577a7ad3SMauro Carvalho Chehabwhich will have Result[0] set to 1 and Result[1] will contain the size 1615*577a7ad3SMauro Carvalho Chehabof the buffer. 1616*577a7ad3SMauro Carvalho Chehab 1617*577a7ad3SMauro Carvalho ChehabResult[0] 1618*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1619*577a7ad3SMauro Carvalho Chehab 1620*577a7ad3SMauro Carvalho ChehabState of the transfer (1 if last buffer) 1621*577a7ad3SMauro Carvalho Chehab 1622*577a7ad3SMauro Carvalho ChehabResult[1] 1623*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1624*577a7ad3SMauro Carvalho Chehab 1625*577a7ad3SMauro Carvalho ChehabIf Result[0] is 1, this contains the size of the last buffer, undefined 1626*577a7ad3SMauro Carvalho Chehabotherwise. 1627*577a7ad3SMauro Carvalho Chehab 1628*577a7ad3SMauro Carvalho Chehab 1629*577a7ad3SMauro Carvalho Chehab 1630*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_PGM_INDEX_INFO 1631*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1632*577a7ad3SMauro Carvalho Chehab 1633*577a7ad3SMauro Carvalho ChehabEnum: 199/0xC7 1634*577a7ad3SMauro Carvalho Chehab 1635*577a7ad3SMauro Carvalho ChehabDescription 1636*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1637*577a7ad3SMauro Carvalho Chehab 1638*577a7ad3SMauro Carvalho ChehabSets the Program Index Information. 1639*577a7ad3SMauro Carvalho ChehabThe information is stored as follows: 1640*577a7ad3SMauro Carvalho Chehab 1641*577a7ad3SMauro Carvalho Chehab.. code-block:: c 1642*577a7ad3SMauro Carvalho Chehab 1643*577a7ad3SMauro Carvalho Chehab struct info { 1644*577a7ad3SMauro Carvalho Chehab u32 length; // Length of this frame 1645*577a7ad3SMauro Carvalho Chehab u32 offset_low; // Offset in the file of the 1646*577a7ad3SMauro Carvalho Chehab u32 offset_high; // start of this frame 1647*577a7ad3SMauro Carvalho Chehab u32 mask1; // Bits 0-2 are the type mask: 1648*577a7ad3SMauro Carvalho Chehab // 1=I, 2=P, 4=B 1649*577a7ad3SMauro Carvalho Chehab // 0=End of Program Index, other fields 1650*577a7ad3SMauro Carvalho Chehab // are invalid. 1651*577a7ad3SMauro Carvalho Chehab u32 pts; // The PTS of the frame 1652*577a7ad3SMauro Carvalho Chehab u32 mask2; // Bit 0 is bit 32 of the pts. 1653*577a7ad3SMauro Carvalho Chehab }; 1654*577a7ad3SMauro Carvalho Chehab u32 table_ptr; 1655*577a7ad3SMauro Carvalho Chehab struct info index[400]; 1656*577a7ad3SMauro Carvalho Chehab 1657*577a7ad3SMauro Carvalho ChehabThe table_ptr is the encoder memory address in the table were 1658*577a7ad3SMauro Carvalho Chehab*new* entries will be written. 1659*577a7ad3SMauro Carvalho Chehab 1660*577a7ad3SMauro Carvalho Chehab.. note:: This is a ringbuffer, so the table_ptr will wraparound. 1661*577a7ad3SMauro Carvalho Chehab 1662*577a7ad3SMauro Carvalho ChehabParam[0] 1663*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1664*577a7ad3SMauro Carvalho Chehab 1665*577a7ad3SMauro Carvalho ChehabPicture Mask: 1666*577a7ad3SMauro Carvalho Chehab- 0=No index capture 1667*577a7ad3SMauro Carvalho Chehab- 1=I frames 1668*577a7ad3SMauro Carvalho Chehab- 3=I,P frames 1669*577a7ad3SMauro Carvalho Chehab- 7=I,P,B frames 1670*577a7ad3SMauro Carvalho Chehab 1671*577a7ad3SMauro Carvalho Chehab(Seems to be ignored, it always indexes I, P and B frames) 1672*577a7ad3SMauro Carvalho Chehab 1673*577a7ad3SMauro Carvalho ChehabParam[1] 1674*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1675*577a7ad3SMauro Carvalho Chehab 1676*577a7ad3SMauro Carvalho ChehabElements requested (up to 400) 1677*577a7ad3SMauro Carvalho Chehab 1678*577a7ad3SMauro Carvalho ChehabResult[0] 1679*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1680*577a7ad3SMauro Carvalho Chehab 1681*577a7ad3SMauro Carvalho ChehabOffset in the encoder memory of the start of the table. 1682*577a7ad3SMauro Carvalho Chehab 1683*577a7ad3SMauro Carvalho ChehabResult[1] 1684*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1685*577a7ad3SMauro Carvalho Chehab 1686*577a7ad3SMauro Carvalho ChehabNumber of allocated elements up to a maximum of Param[1] 1687*577a7ad3SMauro Carvalho Chehab 1688*577a7ad3SMauro Carvalho Chehab 1689*577a7ad3SMauro Carvalho Chehab 1690*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_VBI_CONFIG 1691*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 1692*577a7ad3SMauro Carvalho Chehab 1693*577a7ad3SMauro Carvalho ChehabEnum: 200/0xC8 1694*577a7ad3SMauro Carvalho Chehab 1695*577a7ad3SMauro Carvalho ChehabDescription 1696*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1697*577a7ad3SMauro Carvalho Chehab 1698*577a7ad3SMauro Carvalho ChehabConfigure VBI settings 1699*577a7ad3SMauro Carvalho Chehab 1700*577a7ad3SMauro Carvalho ChehabParam[0] 1701*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1702*577a7ad3SMauro Carvalho Chehab 1703*577a7ad3SMauro Carvalho ChehabBitmap: 1704*577a7ad3SMauro Carvalho Chehab 1705*577a7ad3SMauro Carvalho Chehab.. code-block:: none 1706*577a7ad3SMauro Carvalho Chehab 1707*577a7ad3SMauro Carvalho Chehab 0 Mode '0' Sliced, '1' Raw 1708*577a7ad3SMauro Carvalho Chehab 1:3 Insertion: 1709*577a7ad3SMauro Carvalho Chehab '000' insert in extension & user data 1710*577a7ad3SMauro Carvalho Chehab '001' insert in private packets 1711*577a7ad3SMauro Carvalho Chehab '010' separate stream and user data 1712*577a7ad3SMauro Carvalho Chehab '111' separate stream and private data 1713*577a7ad3SMauro Carvalho Chehab 8:15 Stream ID (normally 0xBD) 1714*577a7ad3SMauro Carvalho Chehab 1715*577a7ad3SMauro Carvalho ChehabParam[1] 1716*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1717*577a7ad3SMauro Carvalho Chehab 1718*577a7ad3SMauro Carvalho ChehabFrames per interrupt (max 8). Only valid in raw mode. 1719*577a7ad3SMauro Carvalho Chehab 1720*577a7ad3SMauro Carvalho ChehabParam[2] 1721*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1722*577a7ad3SMauro Carvalho Chehab 1723*577a7ad3SMauro Carvalho ChehabTotal raw VBI frames. Only valid in raw mode. 1724*577a7ad3SMauro Carvalho Chehab 1725*577a7ad3SMauro Carvalho ChehabParam[3] 1726*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1727*577a7ad3SMauro Carvalho Chehab 1728*577a7ad3SMauro Carvalho ChehabStart codes 1729*577a7ad3SMauro Carvalho Chehab 1730*577a7ad3SMauro Carvalho ChehabParam[4] 1731*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1732*577a7ad3SMauro Carvalho Chehab 1733*577a7ad3SMauro Carvalho ChehabStop codes 1734*577a7ad3SMauro Carvalho Chehab 1735*577a7ad3SMauro Carvalho ChehabParam[5] 1736*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1737*577a7ad3SMauro Carvalho Chehab 1738*577a7ad3SMauro Carvalho ChehabLines per frame 1739*577a7ad3SMauro Carvalho Chehab 1740*577a7ad3SMauro Carvalho ChehabParam[6] 1741*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1742*577a7ad3SMauro Carvalho Chehab 1743*577a7ad3SMauro Carvalho ChehabByte per line 1744*577a7ad3SMauro Carvalho Chehab 1745*577a7ad3SMauro Carvalho ChehabResult[0] 1746*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1747*577a7ad3SMauro Carvalho Chehab 1748*577a7ad3SMauro Carvalho ChehabObserved frames per interrupt in raw mode only. Rage 1 to Param[1] 1749*577a7ad3SMauro Carvalho Chehab 1750*577a7ad3SMauro Carvalho ChehabResult[1] 1751*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1752*577a7ad3SMauro Carvalho Chehab 1753*577a7ad3SMauro Carvalho ChehabObserved number of frames in raw mode. Range 1 to Param[2] 1754*577a7ad3SMauro Carvalho Chehab 1755*577a7ad3SMauro Carvalho ChehabResult[2] 1756*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1757*577a7ad3SMauro Carvalho Chehab 1758*577a7ad3SMauro Carvalho ChehabMemory offset to start or raw VBI data 1759*577a7ad3SMauro Carvalho Chehab 1760*577a7ad3SMauro Carvalho Chehab 1761*577a7ad3SMauro Carvalho Chehab 1762*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_DMA_BLOCK_SIZE 1763*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1764*577a7ad3SMauro Carvalho Chehab 1765*577a7ad3SMauro Carvalho ChehabEnum: 201/0xC9 1766*577a7ad3SMauro Carvalho Chehab 1767*577a7ad3SMauro Carvalho ChehabDescription 1768*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1769*577a7ad3SMauro Carvalho Chehab 1770*577a7ad3SMauro Carvalho ChehabSet DMA transfer block size 1771*577a7ad3SMauro Carvalho Chehab 1772*577a7ad3SMauro Carvalho ChehabParam[0] 1773*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1774*577a7ad3SMauro Carvalho Chehab 1775*577a7ad3SMauro Carvalho ChehabDMA transfer block size in bytes or frames. When unit is bytes, 1776*577a7ad3SMauro Carvalho Chehabsupported block sizes are 2^7, 2^8 and 2^9 bytes. 1777*577a7ad3SMauro Carvalho Chehab 1778*577a7ad3SMauro Carvalho ChehabParam[1] 1779*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1780*577a7ad3SMauro Carvalho Chehab 1781*577a7ad3SMauro Carvalho ChehabUnit: 0=bytes, 1=frames 1782*577a7ad3SMauro Carvalho Chehab 1783*577a7ad3SMauro Carvalho Chehab 1784*577a7ad3SMauro Carvalho Chehab 1785*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_GET_PREV_DMA_INFO_MB_10 1786*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1787*577a7ad3SMauro Carvalho Chehab 1788*577a7ad3SMauro Carvalho ChehabEnum: 202/0xCA 1789*577a7ad3SMauro Carvalho Chehab 1790*577a7ad3SMauro Carvalho ChehabDescription 1791*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1792*577a7ad3SMauro Carvalho Chehab 1793*577a7ad3SMauro Carvalho ChehabReturns information on the previous DMA transfer in conjunction with 1794*577a7ad3SMauro Carvalho Chehabbit 27 of the interrupt mask. Uses mailbox 10. 1795*577a7ad3SMauro Carvalho Chehab 1796*577a7ad3SMauro Carvalho ChehabResult[0] 1797*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1798*577a7ad3SMauro Carvalho Chehab 1799*577a7ad3SMauro Carvalho ChehabType of stream 1800*577a7ad3SMauro Carvalho Chehab 1801*577a7ad3SMauro Carvalho ChehabResult[1] 1802*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1803*577a7ad3SMauro Carvalho Chehab 1804*577a7ad3SMauro Carvalho ChehabAddress Offset 1805*577a7ad3SMauro Carvalho Chehab 1806*577a7ad3SMauro Carvalho ChehabResult[2] 1807*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1808*577a7ad3SMauro Carvalho Chehab 1809*577a7ad3SMauro Carvalho ChehabMaximum size of transfer 1810*577a7ad3SMauro Carvalho Chehab 1811*577a7ad3SMauro Carvalho Chehab 1812*577a7ad3SMauro Carvalho Chehab 1813*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_GET_PREV_DMA_INFO_MB_9 1814*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1815*577a7ad3SMauro Carvalho Chehab 1816*577a7ad3SMauro Carvalho ChehabEnum: 203/0xCB 1817*577a7ad3SMauro Carvalho Chehab 1818*577a7ad3SMauro Carvalho ChehabDescription 1819*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1820*577a7ad3SMauro Carvalho Chehab 1821*577a7ad3SMauro Carvalho ChehabReturns information on the previous DMA transfer in conjunction with 1822*577a7ad3SMauro Carvalho Chehabbit 27 or 18 of the interrupt mask. Uses mailbox 9. 1823*577a7ad3SMauro Carvalho Chehab 1824*577a7ad3SMauro Carvalho ChehabResult[0] 1825*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1826*577a7ad3SMauro Carvalho Chehab 1827*577a7ad3SMauro Carvalho ChehabStatus bits: 1828*577a7ad3SMauro Carvalho Chehab- 0 read completed 1829*577a7ad3SMauro Carvalho Chehab- 1 write completed 1830*577a7ad3SMauro Carvalho Chehab- 2 DMA read error 1831*577a7ad3SMauro Carvalho Chehab- 3 DMA write error 1832*577a7ad3SMauro Carvalho Chehab- 4 Scatter-Gather array error 1833*577a7ad3SMauro Carvalho Chehab 1834*577a7ad3SMauro Carvalho ChehabResult[1] 1835*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1836*577a7ad3SMauro Carvalho Chehab 1837*577a7ad3SMauro Carvalho ChehabDMA type 1838*577a7ad3SMauro Carvalho Chehab 1839*577a7ad3SMauro Carvalho ChehabResult[2] 1840*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1841*577a7ad3SMauro Carvalho Chehab 1842*577a7ad3SMauro Carvalho ChehabPresentation Time Stamp bits 0..31 1843*577a7ad3SMauro Carvalho Chehab 1844*577a7ad3SMauro Carvalho ChehabResult[3] 1845*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 1846*577a7ad3SMauro Carvalho Chehab 1847*577a7ad3SMauro Carvalho ChehabPresentation Time Stamp bit 32 1848*577a7ad3SMauro Carvalho Chehab 1849*577a7ad3SMauro Carvalho Chehab 1850*577a7ad3SMauro Carvalho Chehab 1851*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SCHED_DMA_TO_HOST 1852*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1853*577a7ad3SMauro Carvalho Chehab 1854*577a7ad3SMauro Carvalho ChehabEnum: 204/0xCC 1855*577a7ad3SMauro Carvalho Chehab 1856*577a7ad3SMauro Carvalho ChehabDescription 1857*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1858*577a7ad3SMauro Carvalho Chehab 1859*577a7ad3SMauro Carvalho ChehabSetup DMA to host operation 1860*577a7ad3SMauro Carvalho Chehab 1861*577a7ad3SMauro Carvalho ChehabParam[0] 1862*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1863*577a7ad3SMauro Carvalho Chehab 1864*577a7ad3SMauro Carvalho ChehabMemory address of link list 1865*577a7ad3SMauro Carvalho Chehab 1866*577a7ad3SMauro Carvalho ChehabParam[1] 1867*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1868*577a7ad3SMauro Carvalho Chehab 1869*577a7ad3SMauro Carvalho ChehabLength of link list (wtf: what units ???) 1870*577a7ad3SMauro Carvalho Chehab 1871*577a7ad3SMauro Carvalho ChehabParam[2] 1872*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1873*577a7ad3SMauro Carvalho Chehab 1874*577a7ad3SMauro Carvalho ChehabDMA type (0=MPEG) 1875*577a7ad3SMauro Carvalho Chehab 1876*577a7ad3SMauro Carvalho Chehab 1877*577a7ad3SMauro Carvalho Chehab 1878*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_INITIALIZE_INPUT 1879*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1880*577a7ad3SMauro Carvalho Chehab 1881*577a7ad3SMauro Carvalho ChehabEnum: 205/0xCD 1882*577a7ad3SMauro Carvalho Chehab 1883*577a7ad3SMauro Carvalho ChehabDescription 1884*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1885*577a7ad3SMauro Carvalho Chehab 1886*577a7ad3SMauro Carvalho ChehabInitializes the video input 1887*577a7ad3SMauro Carvalho Chehab 1888*577a7ad3SMauro Carvalho Chehab 1889*577a7ad3SMauro Carvalho Chehab 1890*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_FRAME_DROP_RATE 1891*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1892*577a7ad3SMauro Carvalho Chehab 1893*577a7ad3SMauro Carvalho ChehabEnum: 208/0xD0 1894*577a7ad3SMauro Carvalho Chehab 1895*577a7ad3SMauro Carvalho ChehabDescription 1896*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1897*577a7ad3SMauro Carvalho Chehab 1898*577a7ad3SMauro Carvalho ChehabFor each frame captured, skip specified number of frames. 1899*577a7ad3SMauro Carvalho Chehab 1900*577a7ad3SMauro Carvalho ChehabParam[0] 1901*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1902*577a7ad3SMauro Carvalho Chehab 1903*577a7ad3SMauro Carvalho ChehabNumber of frames to skip 1904*577a7ad3SMauro Carvalho Chehab 1905*577a7ad3SMauro Carvalho Chehab 1906*577a7ad3SMauro Carvalho Chehab 1907*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_PAUSE_ENCODER 1908*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~ 1909*577a7ad3SMauro Carvalho Chehab 1910*577a7ad3SMauro Carvalho ChehabEnum: 210/0xD2 1911*577a7ad3SMauro Carvalho Chehab 1912*577a7ad3SMauro Carvalho ChehabDescription 1913*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1914*577a7ad3SMauro Carvalho Chehab 1915*577a7ad3SMauro Carvalho ChehabDuring a pause condition, all frames are dropped instead of being encoded. 1916*577a7ad3SMauro Carvalho Chehab 1917*577a7ad3SMauro Carvalho ChehabParam[0] 1918*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1919*577a7ad3SMauro Carvalho Chehab 1920*577a7ad3SMauro Carvalho Chehab- 0=Pause encoding 1921*577a7ad3SMauro Carvalho Chehab- 1=Continue encoding 1922*577a7ad3SMauro Carvalho Chehab 1923*577a7ad3SMauro Carvalho Chehab 1924*577a7ad3SMauro Carvalho Chehab 1925*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_REFRESH_INPUT 1926*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~ 1927*577a7ad3SMauro Carvalho Chehab 1928*577a7ad3SMauro Carvalho ChehabEnum: 211/0xD3 1929*577a7ad3SMauro Carvalho Chehab 1930*577a7ad3SMauro Carvalho ChehabDescription 1931*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1932*577a7ad3SMauro Carvalho Chehab 1933*577a7ad3SMauro Carvalho ChehabRefreshes the video input 1934*577a7ad3SMauro Carvalho Chehab 1935*577a7ad3SMauro Carvalho Chehab 1936*577a7ad3SMauro Carvalho Chehab 1937*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_COPYRIGHT 1938*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~ 1939*577a7ad3SMauro Carvalho Chehab 1940*577a7ad3SMauro Carvalho ChehabEnum: 212/0xD4 1941*577a7ad3SMauro Carvalho Chehab 1942*577a7ad3SMauro Carvalho ChehabDescription 1943*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1944*577a7ad3SMauro Carvalho Chehab 1945*577a7ad3SMauro Carvalho ChehabSets stream copyright property 1946*577a7ad3SMauro Carvalho Chehab 1947*577a7ad3SMauro Carvalho ChehabParam[0] 1948*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1949*577a7ad3SMauro Carvalho Chehab 1950*577a7ad3SMauro Carvalho Chehab 1951*577a7ad3SMauro Carvalho Chehab- 0=Stream is not copyrighted 1952*577a7ad3SMauro Carvalho Chehab- 1=Stream is copyrighted 1953*577a7ad3SMauro Carvalho Chehab 1954*577a7ad3SMauro Carvalho Chehab 1955*577a7ad3SMauro Carvalho Chehab 1956*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_EVENT_NOTIFICATION 1957*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1958*577a7ad3SMauro Carvalho Chehab 1959*577a7ad3SMauro Carvalho ChehabEnum: 213/0xD5 1960*577a7ad3SMauro Carvalho Chehab 1961*577a7ad3SMauro Carvalho ChehabDescription 1962*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1963*577a7ad3SMauro Carvalho Chehab 1964*577a7ad3SMauro Carvalho ChehabSetup firmware to notify the host about a particular event. Host must 1965*577a7ad3SMauro Carvalho Chehabunmask the interrupt bit. 1966*577a7ad3SMauro Carvalho Chehab 1967*577a7ad3SMauro Carvalho ChehabParam[0] 1968*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1969*577a7ad3SMauro Carvalho Chehab 1970*577a7ad3SMauro Carvalho ChehabEvent (0=refresh encoder input) 1971*577a7ad3SMauro Carvalho Chehab 1972*577a7ad3SMauro Carvalho ChehabParam[1] 1973*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1974*577a7ad3SMauro Carvalho Chehab 1975*577a7ad3SMauro Carvalho ChehabNotification 0=disabled 1=enabled 1976*577a7ad3SMauro Carvalho Chehab 1977*577a7ad3SMauro Carvalho ChehabParam[2] 1978*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1979*577a7ad3SMauro Carvalho Chehab 1980*577a7ad3SMauro Carvalho ChehabInterrupt bit 1981*577a7ad3SMauro Carvalho Chehab 1982*577a7ad3SMauro Carvalho ChehabParam[3] 1983*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 1984*577a7ad3SMauro Carvalho Chehab 1985*577a7ad3SMauro Carvalho ChehabMailbox slot, -1 if no mailbox required. 1986*577a7ad3SMauro Carvalho Chehab 1987*577a7ad3SMauro Carvalho Chehab 1988*577a7ad3SMauro Carvalho Chehab 1989*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_NUM_VSYNC_LINES 1990*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1991*577a7ad3SMauro Carvalho Chehab 1992*577a7ad3SMauro Carvalho ChehabEnum: 214/0xD6 1993*577a7ad3SMauro Carvalho Chehab 1994*577a7ad3SMauro Carvalho ChehabDescription 1995*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 1996*577a7ad3SMauro Carvalho Chehab 1997*577a7ad3SMauro Carvalho ChehabDepending on the analog video decoder used, this assigns the number 1998*577a7ad3SMauro Carvalho Chehabof lines for field 1 and 2. 1999*577a7ad3SMauro Carvalho Chehab 2000*577a7ad3SMauro Carvalho ChehabParam[0] 2001*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2002*577a7ad3SMauro Carvalho Chehab 2003*577a7ad3SMauro Carvalho ChehabField 1 number of lines: 2004*577a7ad3SMauro Carvalho Chehab- 0x00EF for SAA7114 2005*577a7ad3SMauro Carvalho Chehab- 0x00F0 for SAA7115 2006*577a7ad3SMauro Carvalho Chehab- 0x0105 for Micronas 2007*577a7ad3SMauro Carvalho Chehab 2008*577a7ad3SMauro Carvalho ChehabParam[1] 2009*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2010*577a7ad3SMauro Carvalho Chehab 2011*577a7ad3SMauro Carvalho ChehabField 2 number of lines: 2012*577a7ad3SMauro Carvalho Chehab- 0x00EF for SAA7114 2013*577a7ad3SMauro Carvalho Chehab- 0x00F0 for SAA7115 2014*577a7ad3SMauro Carvalho Chehab- 0x0106 for Micronas 2015*577a7ad3SMauro Carvalho Chehab 2016*577a7ad3SMauro Carvalho Chehab 2017*577a7ad3SMauro Carvalho Chehab 2018*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_PLACEHOLDER 2019*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2020*577a7ad3SMauro Carvalho Chehab 2021*577a7ad3SMauro Carvalho ChehabEnum: 215/0xD7 2022*577a7ad3SMauro Carvalho Chehab 2023*577a7ad3SMauro Carvalho ChehabDescription 2024*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2025*577a7ad3SMauro Carvalho Chehab 2026*577a7ad3SMauro Carvalho ChehabProvides a mechanism of inserting custom user data in the MPEG stream. 2027*577a7ad3SMauro Carvalho Chehab 2028*577a7ad3SMauro Carvalho ChehabParam[0] 2029*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2030*577a7ad3SMauro Carvalho Chehab 2031*577a7ad3SMauro Carvalho Chehab- 0=extension & user data 2032*577a7ad3SMauro Carvalho Chehab- 1=private packet with stream ID 0xBD 2033*577a7ad3SMauro Carvalho Chehab 2034*577a7ad3SMauro Carvalho ChehabParam[1] 2035*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2036*577a7ad3SMauro Carvalho Chehab 2037*577a7ad3SMauro Carvalho ChehabRate at which to insert data, in units of frames (for private packet) 2038*577a7ad3SMauro Carvalho Chehabor GOPs (for ext. & user data) 2039*577a7ad3SMauro Carvalho Chehab 2040*577a7ad3SMauro Carvalho ChehabParam[2] 2041*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2042*577a7ad3SMauro Carvalho Chehab 2043*577a7ad3SMauro Carvalho ChehabNumber of data DWORDs (below) to insert 2044*577a7ad3SMauro Carvalho Chehab 2045*577a7ad3SMauro Carvalho ChehabParam[3] 2046*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2047*577a7ad3SMauro Carvalho Chehab 2048*577a7ad3SMauro Carvalho ChehabCustom data 0 2049*577a7ad3SMauro Carvalho Chehab 2050*577a7ad3SMauro Carvalho ChehabParam[4] 2051*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2052*577a7ad3SMauro Carvalho Chehab 2053*577a7ad3SMauro Carvalho ChehabCustom data 1 2054*577a7ad3SMauro Carvalho Chehab 2055*577a7ad3SMauro Carvalho ChehabParam[5] 2056*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2057*577a7ad3SMauro Carvalho Chehab 2058*577a7ad3SMauro Carvalho ChehabCustom data 2 2059*577a7ad3SMauro Carvalho Chehab 2060*577a7ad3SMauro Carvalho ChehabParam[6] 2061*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2062*577a7ad3SMauro Carvalho Chehab 2063*577a7ad3SMauro Carvalho ChehabCustom data 3 2064*577a7ad3SMauro Carvalho Chehab 2065*577a7ad3SMauro Carvalho ChehabParam[7] 2066*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2067*577a7ad3SMauro Carvalho Chehab 2068*577a7ad3SMauro Carvalho ChehabCustom data 4 2069*577a7ad3SMauro Carvalho Chehab 2070*577a7ad3SMauro Carvalho ChehabParam[8] 2071*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2072*577a7ad3SMauro Carvalho Chehab 2073*577a7ad3SMauro Carvalho ChehabCustom data 5 2074*577a7ad3SMauro Carvalho Chehab 2075*577a7ad3SMauro Carvalho ChehabParam[9] 2076*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2077*577a7ad3SMauro Carvalho Chehab 2078*577a7ad3SMauro Carvalho ChehabCustom data 6 2079*577a7ad3SMauro Carvalho Chehab 2080*577a7ad3SMauro Carvalho ChehabParam[10] 2081*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2082*577a7ad3SMauro Carvalho Chehab 2083*577a7ad3SMauro Carvalho ChehabCustom data 7 2084*577a7ad3SMauro Carvalho Chehab 2085*577a7ad3SMauro Carvalho ChehabParam[11] 2086*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2087*577a7ad3SMauro Carvalho Chehab 2088*577a7ad3SMauro Carvalho ChehabCustom data 8 2089*577a7ad3SMauro Carvalho Chehab 2090*577a7ad3SMauro Carvalho Chehab 2091*577a7ad3SMauro Carvalho Chehab 2092*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_MUTE_VIDEO 2093*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~ 2094*577a7ad3SMauro Carvalho Chehab 2095*577a7ad3SMauro Carvalho ChehabEnum: 217/0xD9 2096*577a7ad3SMauro Carvalho Chehab 2097*577a7ad3SMauro Carvalho ChehabDescription 2098*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2099*577a7ad3SMauro Carvalho Chehab 2100*577a7ad3SMauro Carvalho ChehabVideo muting 2101*577a7ad3SMauro Carvalho Chehab 2102*577a7ad3SMauro Carvalho ChehabParam[0] 2103*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2104*577a7ad3SMauro Carvalho Chehab 2105*577a7ad3SMauro Carvalho ChehabBit usage: 2106*577a7ad3SMauro Carvalho Chehab 2107*577a7ad3SMauro Carvalho Chehab.. code-block:: none 2108*577a7ad3SMauro Carvalho Chehab 2109*577a7ad3SMauro Carvalho Chehab 0 '0'=video not muted 2110*577a7ad3SMauro Carvalho Chehab '1'=video muted, creates frames with the YUV color defined below 2111*577a7ad3SMauro Carvalho Chehab 1:7 Unused 2112*577a7ad3SMauro Carvalho Chehab 8:15 V chrominance information 2113*577a7ad3SMauro Carvalho Chehab 16:23 U chrominance information 2114*577a7ad3SMauro Carvalho Chehab 24:31 Y luminance information 2115*577a7ad3SMauro Carvalho Chehab 2116*577a7ad3SMauro Carvalho Chehab 2117*577a7ad3SMauro Carvalho Chehab 2118*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_MUTE_AUDIO 2119*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~ 2120*577a7ad3SMauro Carvalho Chehab 2121*577a7ad3SMauro Carvalho ChehabEnum: 218/0xDA 2122*577a7ad3SMauro Carvalho Chehab 2123*577a7ad3SMauro Carvalho ChehabDescription 2124*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2125*577a7ad3SMauro Carvalho Chehab 2126*577a7ad3SMauro Carvalho ChehabAudio muting 2127*577a7ad3SMauro Carvalho Chehab 2128*577a7ad3SMauro Carvalho ChehabParam[0] 2129*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2130*577a7ad3SMauro Carvalho Chehab 2131*577a7ad3SMauro Carvalho Chehab- 0=audio not muted 2132*577a7ad3SMauro Carvalho Chehab- 1=audio muted (produces silent mpeg audio stream) 2133*577a7ad3SMauro Carvalho Chehab 2134*577a7ad3SMauro Carvalho Chehab 2135*577a7ad3SMauro Carvalho Chehab 2136*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_SET_VERT_CROP_LINE 2137*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2138*577a7ad3SMauro Carvalho Chehab 2139*577a7ad3SMauro Carvalho ChehabEnum: 219/0xDB 2140*577a7ad3SMauro Carvalho Chehab 2141*577a7ad3SMauro Carvalho ChehabDescription 2142*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2143*577a7ad3SMauro Carvalho Chehab 2144*577a7ad3SMauro Carvalho ChehabSomething to do with 'Vertical Crop Line' 2145*577a7ad3SMauro Carvalho Chehab 2146*577a7ad3SMauro Carvalho ChehabParam[0] 2147*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2148*577a7ad3SMauro Carvalho Chehab 2149*577a7ad3SMauro Carvalho ChehabIf saa7114 and raw VBI capture and 60 Hz, then set to 10001. 2150*577a7ad3SMauro Carvalho ChehabElse 0. 2151*577a7ad3SMauro Carvalho Chehab 2152*577a7ad3SMauro Carvalho Chehab 2153*577a7ad3SMauro Carvalho Chehab 2154*577a7ad3SMauro Carvalho ChehabCX2341X_ENC_MISC 2155*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~ 2156*577a7ad3SMauro Carvalho Chehab 2157*577a7ad3SMauro Carvalho ChehabEnum: 220/0xDC 2158*577a7ad3SMauro Carvalho Chehab 2159*577a7ad3SMauro Carvalho ChehabDescription 2160*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2161*577a7ad3SMauro Carvalho Chehab 2162*577a7ad3SMauro Carvalho ChehabMiscellaneous actions. Not known for 100% what it does. It's really a 2163*577a7ad3SMauro Carvalho Chehabsort of ioctl call. The first parameter is a command number, the second 2164*577a7ad3SMauro Carvalho Chehabthe value. 2165*577a7ad3SMauro Carvalho Chehab 2166*577a7ad3SMauro Carvalho ChehabParam[0] 2167*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2168*577a7ad3SMauro Carvalho Chehab 2169*577a7ad3SMauro Carvalho ChehabCommand number: 2170*577a7ad3SMauro Carvalho Chehab 2171*577a7ad3SMauro Carvalho Chehab.. code-block:: none 2172*577a7ad3SMauro Carvalho Chehab 2173*577a7ad3SMauro Carvalho Chehab 1=set initial SCR value when starting encoding (works). 2174*577a7ad3SMauro Carvalho Chehab 2=set quality mode (apparently some test setting). 2175*577a7ad3SMauro Carvalho Chehab 3=setup advanced VIM protection handling. 2176*577a7ad3SMauro Carvalho Chehab Always 1 for the cx23416 and 0 for cx23415. 2177*577a7ad3SMauro Carvalho Chehab 4=generate DVD compatible PTS timestamps 2178*577a7ad3SMauro Carvalho Chehab 5=USB flush mode 2179*577a7ad3SMauro Carvalho Chehab 6=something to do with the quantization matrix 2180*577a7ad3SMauro Carvalho Chehab 7=set navigation pack insertion for DVD: adds 0xbf (private stream 2) 2181*577a7ad3SMauro Carvalho Chehab packets to the MPEG. The size of these packets is 2048 bytes (including 2182*577a7ad3SMauro Carvalho Chehab the header of 6 bytes: 0x000001bf + length). The payload is zeroed and 2183*577a7ad3SMauro Carvalho Chehab it is up to the application to fill them in. These packets are apparently 2184*577a7ad3SMauro Carvalho Chehab inserted every four frames. 2185*577a7ad3SMauro Carvalho Chehab 8=enable scene change detection (seems to be a failure) 2186*577a7ad3SMauro Carvalho Chehab 9=set history parameters of the video input module 2187*577a7ad3SMauro Carvalho Chehab 10=set input field order of VIM 2188*577a7ad3SMauro Carvalho Chehab 11=set quantization matrix 2189*577a7ad3SMauro Carvalho Chehab 12=reset audio interface after channel change or input switch (has no argument). 2190*577a7ad3SMauro Carvalho Chehab Needed for the cx2584x, not needed for the mspx4xx, but it doesn't seem to 2191*577a7ad3SMauro Carvalho Chehab do any harm calling it regardless. 2192*577a7ad3SMauro Carvalho Chehab 13=set audio volume delay 2193*577a7ad3SMauro Carvalho Chehab 14=set audio delay 2194*577a7ad3SMauro Carvalho Chehab 2195*577a7ad3SMauro Carvalho Chehab 2196*577a7ad3SMauro Carvalho ChehabParam[1] 2197*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2198*577a7ad3SMauro Carvalho Chehab 2199*577a7ad3SMauro Carvalho ChehabCommand value. 2200*577a7ad3SMauro Carvalho Chehab 2201*577a7ad3SMauro Carvalho ChehabDecoder firmware API description 2202*577a7ad3SMauro Carvalho Chehab-------------------------------- 2203*577a7ad3SMauro Carvalho Chehab 2204*577a7ad3SMauro Carvalho Chehab.. note:: this API is part of the decoder firmware, so it's cx23415 only. 2205*577a7ad3SMauro Carvalho Chehab 2206*577a7ad3SMauro Carvalho Chehab 2207*577a7ad3SMauro Carvalho Chehab 2208*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_PING_FW 2209*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~ 2210*577a7ad3SMauro Carvalho Chehab 2211*577a7ad3SMauro Carvalho ChehabEnum: 0/0x00 2212*577a7ad3SMauro Carvalho Chehab 2213*577a7ad3SMauro Carvalho ChehabDescription 2214*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2215*577a7ad3SMauro Carvalho Chehab 2216*577a7ad3SMauro Carvalho ChehabThis API call does nothing. It may be used to check if the firmware 2217*577a7ad3SMauro Carvalho Chehabis responding. 2218*577a7ad3SMauro Carvalho Chehab 2219*577a7ad3SMauro Carvalho Chehab 2220*577a7ad3SMauro Carvalho Chehab 2221*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_START_PLAYBACK 2222*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 2223*577a7ad3SMauro Carvalho Chehab 2224*577a7ad3SMauro Carvalho ChehabEnum: 1/0x01 2225*577a7ad3SMauro Carvalho Chehab 2226*577a7ad3SMauro Carvalho ChehabDescription 2227*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2228*577a7ad3SMauro Carvalho Chehab 2229*577a7ad3SMauro Carvalho ChehabBegin or resume playback. 2230*577a7ad3SMauro Carvalho Chehab 2231*577a7ad3SMauro Carvalho ChehabParam[0] 2232*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2233*577a7ad3SMauro Carvalho Chehab 2234*577a7ad3SMauro Carvalho Chehab0 based frame number in GOP to begin playback from. 2235*577a7ad3SMauro Carvalho Chehab 2236*577a7ad3SMauro Carvalho ChehabParam[1] 2237*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2238*577a7ad3SMauro Carvalho Chehab 2239*577a7ad3SMauro Carvalho ChehabSpecifies the number of muted audio frames to play before normal 2240*577a7ad3SMauro Carvalho Chehabaudio resumes. (This is not implemented in the firmware, leave at 0) 2241*577a7ad3SMauro Carvalho Chehab 2242*577a7ad3SMauro Carvalho Chehab 2243*577a7ad3SMauro Carvalho Chehab 2244*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_STOP_PLAYBACK 2245*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~ 2246*577a7ad3SMauro Carvalho Chehab 2247*577a7ad3SMauro Carvalho ChehabEnum: 2/0x02 2248*577a7ad3SMauro Carvalho Chehab 2249*577a7ad3SMauro Carvalho ChehabDescription 2250*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2251*577a7ad3SMauro Carvalho Chehab 2252*577a7ad3SMauro Carvalho ChehabEnds playback and clears all decoder buffers. If PTS is not zero, 2253*577a7ad3SMauro Carvalho Chehabplayback stops at specified PTS. 2254*577a7ad3SMauro Carvalho Chehab 2255*577a7ad3SMauro Carvalho ChehabParam[0] 2256*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2257*577a7ad3SMauro Carvalho Chehab 2258*577a7ad3SMauro Carvalho ChehabDisplay 0=last frame, 1=black 2259*577a7ad3SMauro Carvalho Chehab 2260*577a7ad3SMauro Carvalho Chehab.. note:: 2261*577a7ad3SMauro Carvalho Chehab 2262*577a7ad3SMauro Carvalho Chehab this takes effect immediately, so if you want to wait for a PTS, 2263*577a7ad3SMauro Carvalho Chehab then use '0', otherwise the screen goes to black at once. 2264*577a7ad3SMauro Carvalho Chehab You can call this later (even if there is no playback) with a 1 value 2265*577a7ad3SMauro Carvalho Chehab to set the screen to black. 2266*577a7ad3SMauro Carvalho Chehab 2267*577a7ad3SMauro Carvalho ChehabParam[1] 2268*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2269*577a7ad3SMauro Carvalho Chehab 2270*577a7ad3SMauro Carvalho ChehabPTS low 2271*577a7ad3SMauro Carvalho Chehab 2272*577a7ad3SMauro Carvalho ChehabParam[2] 2273*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2274*577a7ad3SMauro Carvalho Chehab 2275*577a7ad3SMauro Carvalho ChehabPTS high 2276*577a7ad3SMauro Carvalho Chehab 2277*577a7ad3SMauro Carvalho Chehab 2278*577a7ad3SMauro Carvalho Chehab 2279*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_SET_PLAYBACK_SPEED 2280*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2281*577a7ad3SMauro Carvalho Chehab 2282*577a7ad3SMauro Carvalho ChehabEnum: 3/0x03 2283*577a7ad3SMauro Carvalho Chehab 2284*577a7ad3SMauro Carvalho ChehabDescription 2285*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2286*577a7ad3SMauro Carvalho Chehab 2287*577a7ad3SMauro Carvalho ChehabPlayback stream at speed other than normal. There are two modes of 2288*577a7ad3SMauro Carvalho Chehaboperation: 2289*577a7ad3SMauro Carvalho Chehab 2290*577a7ad3SMauro Carvalho Chehab - Smooth: host transfers entire stream and firmware drops unused 2291*577a7ad3SMauro Carvalho Chehab frames. 2292*577a7ad3SMauro Carvalho Chehab - Coarse: host drops frames based on indexing as required to achieve 2293*577a7ad3SMauro Carvalho Chehab desired speed. 2294*577a7ad3SMauro Carvalho Chehab 2295*577a7ad3SMauro Carvalho ChehabParam[0] 2296*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2297*577a7ad3SMauro Carvalho Chehab 2298*577a7ad3SMauro Carvalho Chehab.. code-block:: none 2299*577a7ad3SMauro Carvalho Chehab 2300*577a7ad3SMauro Carvalho Chehab Bitmap: 2301*577a7ad3SMauro Carvalho Chehab 0:7 0 normal 2302*577a7ad3SMauro Carvalho Chehab 1 fast only "1.5 times" 2303*577a7ad3SMauro Carvalho Chehab n nX fast, 1/nX slow 2304*577a7ad3SMauro Carvalho Chehab 30 Framedrop: 2305*577a7ad3SMauro Carvalho Chehab '0' during 1.5 times play, every other B frame is dropped 2306*577a7ad3SMauro Carvalho Chehab '1' during 1.5 times play, stream is unchanged (bitrate 2307*577a7ad3SMauro Carvalho Chehab must not exceed 8mbps) 2308*577a7ad3SMauro Carvalho Chehab 31 Speed: 2309*577a7ad3SMauro Carvalho Chehab '0' slow 2310*577a7ad3SMauro Carvalho Chehab '1' fast 2311*577a7ad3SMauro Carvalho Chehab 2312*577a7ad3SMauro Carvalho Chehab.. note:: 2313*577a7ad3SMauro Carvalho Chehab 2314*577a7ad3SMauro Carvalho Chehab n is limited to 2. Anything higher does not result in 2315*577a7ad3SMauro Carvalho Chehab faster playback. Instead the host should start dropping frames. 2316*577a7ad3SMauro Carvalho Chehab 2317*577a7ad3SMauro Carvalho ChehabParam[1] 2318*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2319*577a7ad3SMauro Carvalho Chehab 2320*577a7ad3SMauro Carvalho ChehabDirection: 0=forward, 1=reverse 2321*577a7ad3SMauro Carvalho Chehab 2322*577a7ad3SMauro Carvalho Chehab.. note:: 2323*577a7ad3SMauro Carvalho Chehab 2324*577a7ad3SMauro Carvalho Chehab to make reverse playback work you have to write full GOPs in 2325*577a7ad3SMauro Carvalho Chehab reverse order. 2326*577a7ad3SMauro Carvalho Chehab 2327*577a7ad3SMauro Carvalho ChehabParam[2] 2328*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2329*577a7ad3SMauro Carvalho Chehab 2330*577a7ad3SMauro Carvalho Chehab.. code-block:: none 2331*577a7ad3SMauro Carvalho Chehab 2332*577a7ad3SMauro Carvalho Chehab Picture mask: 2333*577a7ad3SMauro Carvalho Chehab 1=I frames 2334*577a7ad3SMauro Carvalho Chehab 3=I, P frames 2335*577a7ad3SMauro Carvalho Chehab 7=I, P, B frames 2336*577a7ad3SMauro Carvalho Chehab 2337*577a7ad3SMauro Carvalho ChehabParam[3] 2338*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2339*577a7ad3SMauro Carvalho Chehab 2340*577a7ad3SMauro Carvalho ChehabB frames per GOP (for reverse play only) 2341*577a7ad3SMauro Carvalho Chehab 2342*577a7ad3SMauro Carvalho Chehab.. note:: 2343*577a7ad3SMauro Carvalho Chehab 2344*577a7ad3SMauro Carvalho Chehab for reverse playback the Picture Mask should be set to I or I, P. 2345*577a7ad3SMauro Carvalho Chehab Adding B frames to the mask will result in corrupt video. This field 2346*577a7ad3SMauro Carvalho Chehab has to be set to the correct value in order to keep the timing correct. 2347*577a7ad3SMauro Carvalho Chehab 2348*577a7ad3SMauro Carvalho ChehabParam[4] 2349*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2350*577a7ad3SMauro Carvalho Chehab 2351*577a7ad3SMauro Carvalho ChehabMute audio: 0=disable, 1=enable 2352*577a7ad3SMauro Carvalho Chehab 2353*577a7ad3SMauro Carvalho ChehabParam[5] 2354*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2355*577a7ad3SMauro Carvalho Chehab 2356*577a7ad3SMauro Carvalho ChehabDisplay 0=frame, 1=field 2357*577a7ad3SMauro Carvalho Chehab 2358*577a7ad3SMauro Carvalho ChehabParam[6] 2359*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2360*577a7ad3SMauro Carvalho Chehab 2361*577a7ad3SMauro Carvalho ChehabSpecifies the number of muted audio frames to play before normal audio 2362*577a7ad3SMauro Carvalho Chehabresumes. (Not implemented in the firmware, leave at 0) 2363*577a7ad3SMauro Carvalho Chehab 2364*577a7ad3SMauro Carvalho Chehab 2365*577a7ad3SMauro Carvalho Chehab 2366*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_STEP_VIDEO 2367*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~ 2368*577a7ad3SMauro Carvalho Chehab 2369*577a7ad3SMauro Carvalho ChehabEnum: 5/0x05 2370*577a7ad3SMauro Carvalho Chehab 2371*577a7ad3SMauro Carvalho ChehabDescription 2372*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2373*577a7ad3SMauro Carvalho Chehab 2374*577a7ad3SMauro Carvalho ChehabEach call to this API steps the playback to the next unit defined below 2375*577a7ad3SMauro Carvalho Chehabin the current playback direction. 2376*577a7ad3SMauro Carvalho Chehab 2377*577a7ad3SMauro Carvalho ChehabParam[0] 2378*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2379*577a7ad3SMauro Carvalho Chehab 2380*577a7ad3SMauro Carvalho Chehab0=frame, 1=top field, 2=bottom field 2381*577a7ad3SMauro Carvalho Chehab 2382*577a7ad3SMauro Carvalho Chehab 2383*577a7ad3SMauro Carvalho Chehab 2384*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_SET_DMA_BLOCK_SIZE 2385*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2386*577a7ad3SMauro Carvalho Chehab 2387*577a7ad3SMauro Carvalho ChehabEnum: 8/0x08 2388*577a7ad3SMauro Carvalho Chehab 2389*577a7ad3SMauro Carvalho ChehabDescription 2390*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2391*577a7ad3SMauro Carvalho Chehab 2392*577a7ad3SMauro Carvalho ChehabSet DMA transfer block size. Counterpart to API 0xC9 2393*577a7ad3SMauro Carvalho Chehab 2394*577a7ad3SMauro Carvalho ChehabParam[0] 2395*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2396*577a7ad3SMauro Carvalho Chehab 2397*577a7ad3SMauro Carvalho ChehabDMA transfer block size in bytes. A different size may be specified 2398*577a7ad3SMauro Carvalho Chehabwhen issuing the DMA transfer command. 2399*577a7ad3SMauro Carvalho Chehab 2400*577a7ad3SMauro Carvalho Chehab 2401*577a7ad3SMauro Carvalho Chehab 2402*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_GET_XFER_INFO 2403*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~ 2404*577a7ad3SMauro Carvalho Chehab 2405*577a7ad3SMauro Carvalho ChehabEnum: 9/0x09 2406*577a7ad3SMauro Carvalho Chehab 2407*577a7ad3SMauro Carvalho ChehabDescription 2408*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2409*577a7ad3SMauro Carvalho Chehab 2410*577a7ad3SMauro Carvalho ChehabThis API call may be used to detect an end of stream condition. 2411*577a7ad3SMauro Carvalho Chehab 2412*577a7ad3SMauro Carvalho ChehabResult[0] 2413*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2414*577a7ad3SMauro Carvalho Chehab 2415*577a7ad3SMauro Carvalho ChehabStream type 2416*577a7ad3SMauro Carvalho Chehab 2417*577a7ad3SMauro Carvalho ChehabResult[1] 2418*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2419*577a7ad3SMauro Carvalho Chehab 2420*577a7ad3SMauro Carvalho ChehabAddress offset 2421*577a7ad3SMauro Carvalho Chehab 2422*577a7ad3SMauro Carvalho ChehabResult[2] 2423*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2424*577a7ad3SMauro Carvalho Chehab 2425*577a7ad3SMauro Carvalho ChehabMaximum bytes to transfer 2426*577a7ad3SMauro Carvalho Chehab 2427*577a7ad3SMauro Carvalho ChehabResult[3] 2428*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2429*577a7ad3SMauro Carvalho Chehab 2430*577a7ad3SMauro Carvalho ChehabBuffer fullness 2431*577a7ad3SMauro Carvalho Chehab 2432*577a7ad3SMauro Carvalho Chehab 2433*577a7ad3SMauro Carvalho Chehab 2434*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_GET_DMA_STATUS 2435*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 2436*577a7ad3SMauro Carvalho Chehab 2437*577a7ad3SMauro Carvalho ChehabEnum: 10/0x0A 2438*577a7ad3SMauro Carvalho Chehab 2439*577a7ad3SMauro Carvalho ChehabDescription 2440*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2441*577a7ad3SMauro Carvalho Chehab 2442*577a7ad3SMauro Carvalho ChehabStatus of the last DMA transfer 2443*577a7ad3SMauro Carvalho Chehab 2444*577a7ad3SMauro Carvalho ChehabResult[0] 2445*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2446*577a7ad3SMauro Carvalho Chehab 2447*577a7ad3SMauro Carvalho ChehabBit 1 set means transfer complete 2448*577a7ad3SMauro Carvalho ChehabBit 2 set means DMA error 2449*577a7ad3SMauro Carvalho ChehabBit 3 set means linked list error 2450*577a7ad3SMauro Carvalho Chehab 2451*577a7ad3SMauro Carvalho ChehabResult[1] 2452*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2453*577a7ad3SMauro Carvalho Chehab 2454*577a7ad3SMauro Carvalho ChehabDMA type: 0=MPEG, 1=OSD, 2=YUV 2455*577a7ad3SMauro Carvalho Chehab 2456*577a7ad3SMauro Carvalho Chehab 2457*577a7ad3SMauro Carvalho Chehab 2458*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_SCHED_DMA_FROM_HOST 2459*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2460*577a7ad3SMauro Carvalho Chehab 2461*577a7ad3SMauro Carvalho ChehabEnum: 11/0x0B 2462*577a7ad3SMauro Carvalho Chehab 2463*577a7ad3SMauro Carvalho ChehabDescription 2464*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2465*577a7ad3SMauro Carvalho Chehab 2466*577a7ad3SMauro Carvalho ChehabSetup DMA from host operation. Counterpart to API 0xCC 2467*577a7ad3SMauro Carvalho Chehab 2468*577a7ad3SMauro Carvalho ChehabParam[0] 2469*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2470*577a7ad3SMauro Carvalho Chehab 2471*577a7ad3SMauro Carvalho ChehabMemory address of link list 2472*577a7ad3SMauro Carvalho Chehab 2473*577a7ad3SMauro Carvalho ChehabParam[1] 2474*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2475*577a7ad3SMauro Carvalho Chehab 2476*577a7ad3SMauro Carvalho ChehabTotal # of bytes to transfer 2477*577a7ad3SMauro Carvalho Chehab 2478*577a7ad3SMauro Carvalho ChehabParam[2] 2479*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2480*577a7ad3SMauro Carvalho Chehab 2481*577a7ad3SMauro Carvalho ChehabDMA type (0=MPEG, 1=OSD, 2=YUV) 2482*577a7ad3SMauro Carvalho Chehab 2483*577a7ad3SMauro Carvalho Chehab 2484*577a7ad3SMauro Carvalho Chehab 2485*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_PAUSE_PLAYBACK 2486*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 2487*577a7ad3SMauro Carvalho Chehab 2488*577a7ad3SMauro Carvalho ChehabEnum: 13/0x0D 2489*577a7ad3SMauro Carvalho Chehab 2490*577a7ad3SMauro Carvalho ChehabDescription 2491*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2492*577a7ad3SMauro Carvalho Chehab 2493*577a7ad3SMauro Carvalho ChehabFreeze playback immediately. In this mode, when internal buffers are 2494*577a7ad3SMauro Carvalho Chehabfull, no more data will be accepted and data request IRQs will be 2495*577a7ad3SMauro Carvalho Chehabmasked. 2496*577a7ad3SMauro Carvalho Chehab 2497*577a7ad3SMauro Carvalho ChehabParam[0] 2498*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2499*577a7ad3SMauro Carvalho Chehab 2500*577a7ad3SMauro Carvalho ChehabDisplay: 0=last frame, 1=black 2501*577a7ad3SMauro Carvalho Chehab 2502*577a7ad3SMauro Carvalho Chehab 2503*577a7ad3SMauro Carvalho Chehab 2504*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_HALT_FW 2505*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~ 2506*577a7ad3SMauro Carvalho Chehab 2507*577a7ad3SMauro Carvalho ChehabEnum: 14/0x0E 2508*577a7ad3SMauro Carvalho Chehab 2509*577a7ad3SMauro Carvalho ChehabDescription 2510*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2511*577a7ad3SMauro Carvalho Chehab 2512*577a7ad3SMauro Carvalho ChehabThe firmware is halted and no further API calls are serviced until 2513*577a7ad3SMauro Carvalho Chehabthe firmware is uploaded again. 2514*577a7ad3SMauro Carvalho Chehab 2515*577a7ad3SMauro Carvalho Chehab 2516*577a7ad3SMauro Carvalho Chehab 2517*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_SET_STANDARD 2518*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~ 2519*577a7ad3SMauro Carvalho Chehab 2520*577a7ad3SMauro Carvalho ChehabEnum: 16/0x10 2521*577a7ad3SMauro Carvalho Chehab 2522*577a7ad3SMauro Carvalho ChehabDescription 2523*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2524*577a7ad3SMauro Carvalho Chehab 2525*577a7ad3SMauro Carvalho ChehabSelects display standard 2526*577a7ad3SMauro Carvalho Chehab 2527*577a7ad3SMauro Carvalho ChehabParam[0] 2528*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2529*577a7ad3SMauro Carvalho Chehab 2530*577a7ad3SMauro Carvalho Chehab0=NTSC, 1=PAL 2531*577a7ad3SMauro Carvalho Chehab 2532*577a7ad3SMauro Carvalho Chehab 2533*577a7ad3SMauro Carvalho Chehab 2534*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_GET_VERSION 2535*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~ 2536*577a7ad3SMauro Carvalho Chehab 2537*577a7ad3SMauro Carvalho ChehabEnum: 17/0x11 2538*577a7ad3SMauro Carvalho Chehab 2539*577a7ad3SMauro Carvalho ChehabDescription 2540*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2541*577a7ad3SMauro Carvalho Chehab 2542*577a7ad3SMauro Carvalho ChehabReturns decoder firmware version information 2543*577a7ad3SMauro Carvalho Chehab 2544*577a7ad3SMauro Carvalho ChehabResult[0] 2545*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2546*577a7ad3SMauro Carvalho Chehab 2547*577a7ad3SMauro Carvalho ChehabVersion bitmask: 2548*577a7ad3SMauro Carvalho Chehab - Bits 0:15 build 2549*577a7ad3SMauro Carvalho Chehab - Bits 16:23 minor 2550*577a7ad3SMauro Carvalho Chehab - Bits 24:31 major 2551*577a7ad3SMauro Carvalho Chehab 2552*577a7ad3SMauro Carvalho Chehab 2553*577a7ad3SMauro Carvalho Chehab 2554*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_SET_STREAM_INPUT 2555*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2556*577a7ad3SMauro Carvalho Chehab 2557*577a7ad3SMauro Carvalho ChehabEnum: 20/0x14 2558*577a7ad3SMauro Carvalho Chehab 2559*577a7ad3SMauro Carvalho ChehabDescription 2560*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2561*577a7ad3SMauro Carvalho Chehab 2562*577a7ad3SMauro Carvalho ChehabSelect decoder stream input port 2563*577a7ad3SMauro Carvalho Chehab 2564*577a7ad3SMauro Carvalho ChehabParam[0] 2565*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2566*577a7ad3SMauro Carvalho Chehab 2567*577a7ad3SMauro Carvalho Chehab0=memory (default), 1=streaming 2568*577a7ad3SMauro Carvalho Chehab 2569*577a7ad3SMauro Carvalho Chehab 2570*577a7ad3SMauro Carvalho Chehab 2571*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_GET_TIMING_INFO 2572*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2573*577a7ad3SMauro Carvalho Chehab 2574*577a7ad3SMauro Carvalho ChehabEnum: 21/0x15 2575*577a7ad3SMauro Carvalho Chehab 2576*577a7ad3SMauro Carvalho ChehabDescription 2577*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2578*577a7ad3SMauro Carvalho Chehab 2579*577a7ad3SMauro Carvalho ChehabReturns timing information from start of playback 2580*577a7ad3SMauro Carvalho Chehab 2581*577a7ad3SMauro Carvalho ChehabResult[0] 2582*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2583*577a7ad3SMauro Carvalho Chehab 2584*577a7ad3SMauro Carvalho ChehabFrame count by decode order 2585*577a7ad3SMauro Carvalho Chehab 2586*577a7ad3SMauro Carvalho ChehabResult[1] 2587*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2588*577a7ad3SMauro Carvalho Chehab 2589*577a7ad3SMauro Carvalho ChehabVideo PTS bits 0:31 by display order 2590*577a7ad3SMauro Carvalho Chehab 2591*577a7ad3SMauro Carvalho ChehabResult[2] 2592*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2593*577a7ad3SMauro Carvalho Chehab 2594*577a7ad3SMauro Carvalho ChehabVideo PTS bit 32 by display order 2595*577a7ad3SMauro Carvalho Chehab 2596*577a7ad3SMauro Carvalho ChehabResult[3] 2597*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2598*577a7ad3SMauro Carvalho Chehab 2599*577a7ad3SMauro Carvalho ChehabSCR bits 0:31 by display order 2600*577a7ad3SMauro Carvalho Chehab 2601*577a7ad3SMauro Carvalho ChehabResult[4] 2602*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2603*577a7ad3SMauro Carvalho Chehab 2604*577a7ad3SMauro Carvalho ChehabSCR bit 32 by display order 2605*577a7ad3SMauro Carvalho Chehab 2606*577a7ad3SMauro Carvalho Chehab 2607*577a7ad3SMauro Carvalho Chehab 2608*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_SET_AUDIO_MODE 2609*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 2610*577a7ad3SMauro Carvalho Chehab 2611*577a7ad3SMauro Carvalho ChehabEnum: 22/0x16 2612*577a7ad3SMauro Carvalho Chehab 2613*577a7ad3SMauro Carvalho ChehabDescription 2614*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2615*577a7ad3SMauro Carvalho Chehab 2616*577a7ad3SMauro Carvalho ChehabSelect audio mode 2617*577a7ad3SMauro Carvalho Chehab 2618*577a7ad3SMauro Carvalho ChehabParam[0] 2619*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2620*577a7ad3SMauro Carvalho Chehab 2621*577a7ad3SMauro Carvalho ChehabDual mono mode action 2622*577a7ad3SMauro Carvalho Chehab 0=Stereo, 1=Left, 2=Right, 3=Mono, 4=Swap, -1=Unchanged 2623*577a7ad3SMauro Carvalho Chehab 2624*577a7ad3SMauro Carvalho ChehabParam[1] 2625*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2626*577a7ad3SMauro Carvalho Chehab 2627*577a7ad3SMauro Carvalho ChehabStereo mode action: 2628*577a7ad3SMauro Carvalho Chehab 0=Stereo, 1=Left, 2=Right, 3=Mono, 4=Swap, -1=Unchanged 2629*577a7ad3SMauro Carvalho Chehab 2630*577a7ad3SMauro Carvalho Chehab 2631*577a7ad3SMauro Carvalho Chehab 2632*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_SET_EVENT_NOTIFICATION 2633*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2634*577a7ad3SMauro Carvalho Chehab 2635*577a7ad3SMauro Carvalho ChehabEnum: 23/0x17 2636*577a7ad3SMauro Carvalho Chehab 2637*577a7ad3SMauro Carvalho ChehabDescription 2638*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2639*577a7ad3SMauro Carvalho Chehab 2640*577a7ad3SMauro Carvalho ChehabSetup firmware to notify the host about a particular event. 2641*577a7ad3SMauro Carvalho ChehabCounterpart to API 0xD5 2642*577a7ad3SMauro Carvalho Chehab 2643*577a7ad3SMauro Carvalho ChehabParam[0] 2644*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2645*577a7ad3SMauro Carvalho Chehab 2646*577a7ad3SMauro Carvalho ChehabEvent: 2647*577a7ad3SMauro Carvalho Chehab - 0=Audio mode change between mono, (joint) stereo and dual channel. 2648*577a7ad3SMauro Carvalho Chehab - 3=Decoder started 2649*577a7ad3SMauro Carvalho Chehab - 4=Unknown: goes off 10-15 times per second while decoding. 2650*577a7ad3SMauro Carvalho Chehab - 5=Some sync event: goes off once per frame. 2651*577a7ad3SMauro Carvalho Chehab 2652*577a7ad3SMauro Carvalho ChehabParam[1] 2653*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2654*577a7ad3SMauro Carvalho Chehab 2655*577a7ad3SMauro Carvalho ChehabNotification 0=disabled, 1=enabled 2656*577a7ad3SMauro Carvalho Chehab 2657*577a7ad3SMauro Carvalho ChehabParam[2] 2658*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2659*577a7ad3SMauro Carvalho Chehab 2660*577a7ad3SMauro Carvalho ChehabInterrupt bit 2661*577a7ad3SMauro Carvalho Chehab 2662*577a7ad3SMauro Carvalho ChehabParam[3] 2663*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2664*577a7ad3SMauro Carvalho Chehab 2665*577a7ad3SMauro Carvalho ChehabMailbox slot, -1 if no mailbox required. 2666*577a7ad3SMauro Carvalho Chehab 2667*577a7ad3SMauro Carvalho Chehab 2668*577a7ad3SMauro Carvalho Chehab 2669*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_SET_DISPLAY_BUFFERS 2670*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2671*577a7ad3SMauro Carvalho Chehab 2672*577a7ad3SMauro Carvalho ChehabEnum: 24/0x18 2673*577a7ad3SMauro Carvalho Chehab 2674*577a7ad3SMauro Carvalho ChehabDescription 2675*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2676*577a7ad3SMauro Carvalho Chehab 2677*577a7ad3SMauro Carvalho ChehabNumber of display buffers. To decode all frames in reverse playback you 2678*577a7ad3SMauro Carvalho Chehabmust use nine buffers. 2679*577a7ad3SMauro Carvalho Chehab 2680*577a7ad3SMauro Carvalho ChehabParam[0] 2681*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2682*577a7ad3SMauro Carvalho Chehab 2683*577a7ad3SMauro Carvalho Chehab0=six buffers, 1=nine buffers 2684*577a7ad3SMauro Carvalho Chehab 2685*577a7ad3SMauro Carvalho Chehab 2686*577a7ad3SMauro Carvalho Chehab 2687*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_EXTRACT_VBI 2688*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~ 2689*577a7ad3SMauro Carvalho Chehab 2690*577a7ad3SMauro Carvalho ChehabEnum: 25/0x19 2691*577a7ad3SMauro Carvalho Chehab 2692*577a7ad3SMauro Carvalho ChehabDescription 2693*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2694*577a7ad3SMauro Carvalho Chehab 2695*577a7ad3SMauro Carvalho ChehabExtracts VBI data 2696*577a7ad3SMauro Carvalho Chehab 2697*577a7ad3SMauro Carvalho ChehabParam[0] 2698*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2699*577a7ad3SMauro Carvalho Chehab 2700*577a7ad3SMauro Carvalho Chehab0=extract from extension & user data, 1=extract from private packets 2701*577a7ad3SMauro Carvalho Chehab 2702*577a7ad3SMauro Carvalho ChehabResult[0] 2703*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2704*577a7ad3SMauro Carvalho Chehab 2705*577a7ad3SMauro Carvalho ChehabVBI table location 2706*577a7ad3SMauro Carvalho Chehab 2707*577a7ad3SMauro Carvalho ChehabResult[1] 2708*577a7ad3SMauro Carvalho Chehab^^^^^^^^^ 2709*577a7ad3SMauro Carvalho Chehab 2710*577a7ad3SMauro Carvalho ChehabVBI table size 2711*577a7ad3SMauro Carvalho Chehab 2712*577a7ad3SMauro Carvalho Chehab 2713*577a7ad3SMauro Carvalho Chehab 2714*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_SET_DECODER_SOURCE 2715*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2716*577a7ad3SMauro Carvalho Chehab 2717*577a7ad3SMauro Carvalho ChehabEnum: 26/0x1A 2718*577a7ad3SMauro Carvalho Chehab 2719*577a7ad3SMauro Carvalho ChehabDescription 2720*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2721*577a7ad3SMauro Carvalho Chehab 2722*577a7ad3SMauro Carvalho ChehabSelects decoder source. Ensure that the parameters passed to this 2723*577a7ad3SMauro Carvalho ChehabAPI match the encoder settings. 2724*577a7ad3SMauro Carvalho Chehab 2725*577a7ad3SMauro Carvalho ChehabParam[0] 2726*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2727*577a7ad3SMauro Carvalho Chehab 2728*577a7ad3SMauro Carvalho ChehabMode: 0=MPEG from host, 1=YUV from encoder, 2=YUV from host 2729*577a7ad3SMauro Carvalho Chehab 2730*577a7ad3SMauro Carvalho ChehabParam[1] 2731*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2732*577a7ad3SMauro Carvalho Chehab 2733*577a7ad3SMauro Carvalho ChehabYUV picture width 2734*577a7ad3SMauro Carvalho Chehab 2735*577a7ad3SMauro Carvalho ChehabParam[2] 2736*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2737*577a7ad3SMauro Carvalho Chehab 2738*577a7ad3SMauro Carvalho ChehabYUV picture height 2739*577a7ad3SMauro Carvalho Chehab 2740*577a7ad3SMauro Carvalho ChehabParam[3] 2741*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2742*577a7ad3SMauro Carvalho Chehab 2743*577a7ad3SMauro Carvalho ChehabBitmap: see Param[0] of API 0xBD 2744*577a7ad3SMauro Carvalho Chehab 2745*577a7ad3SMauro Carvalho Chehab 2746*577a7ad3SMauro Carvalho Chehab 2747*577a7ad3SMauro Carvalho ChehabCX2341X_DEC_SET_PREBUFFERING 2748*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2749*577a7ad3SMauro Carvalho Chehab 2750*577a7ad3SMauro Carvalho ChehabEnum: 30/0x1E 2751*577a7ad3SMauro Carvalho Chehab 2752*577a7ad3SMauro Carvalho ChehabDescription 2753*577a7ad3SMauro Carvalho Chehab^^^^^^^^^^^ 2754*577a7ad3SMauro Carvalho Chehab 2755*577a7ad3SMauro Carvalho ChehabDecoder prebuffering, when enabled up to 128KB are buffered for 2756*577a7ad3SMauro Carvalho Chehabstreams <8mpbs or 640KB for streams >8mbps 2757*577a7ad3SMauro Carvalho Chehab 2758*577a7ad3SMauro Carvalho ChehabParam[0] 2759*577a7ad3SMauro Carvalho Chehab^^^^^^^^ 2760*577a7ad3SMauro Carvalho Chehab 2761*577a7ad3SMauro Carvalho Chehab0=off, 1=on 2762*577a7ad3SMauro Carvalho Chehab 2763*577a7ad3SMauro Carvalho ChehabPVR350 Video decoder registers 0x02002800 -> 0x02002B00 2764*577a7ad3SMauro Carvalho Chehab------------------------------------------------------- 2765*577a7ad3SMauro Carvalho Chehab 2766*577a7ad3SMauro Carvalho ChehabAuthor: Ian Armstrong <ian@iarmst.demon.co.uk> 2767*577a7ad3SMauro Carvalho Chehab 2768*577a7ad3SMauro Carvalho ChehabVersion: v0.4 2769*577a7ad3SMauro Carvalho Chehab 2770*577a7ad3SMauro Carvalho ChehabDate: 12 March 2007 2771*577a7ad3SMauro Carvalho Chehab 2772*577a7ad3SMauro Carvalho Chehab 2773*577a7ad3SMauro Carvalho ChehabThis list has been worked out through trial and error. There will be mistakes 2774*577a7ad3SMauro Carvalho Chehaband omissions. Some registers have no obvious effect so it's hard to say what 2775*577a7ad3SMauro Carvalho Chehabthey do, while others interact with each other, or require a certain load 2776*577a7ad3SMauro Carvalho Chehabsequence. Horizontal filter setup is one example, with six registers working 2777*577a7ad3SMauro Carvalho Chehabin unison and requiring a certain load sequence to correctly configure. The 2778*577a7ad3SMauro Carvalho Chehabindexed colour palette is much easier to set at just two registers, but again 2779*577a7ad3SMauro Carvalho Chehabit requires a certain load sequence. 2780*577a7ad3SMauro Carvalho Chehab 2781*577a7ad3SMauro Carvalho ChehabSome registers are fussy about what they are set to. Load in a bad value & the 2782*577a7ad3SMauro Carvalho Chehabdecoder will fail. A firmware reload will often recover, but sometimes a reset 2783*577a7ad3SMauro Carvalho Chehabis required. For registers containing size information, setting them to 0 is 2784*577a7ad3SMauro Carvalho Chehabgenerally a bad idea. For other control registers i.e. 2878, you'll only find 2785*577a7ad3SMauro Carvalho Chehabout what values are bad when it hangs. 2786*577a7ad3SMauro Carvalho Chehab 2787*577a7ad3SMauro Carvalho Chehab.. code-block:: none 2788*577a7ad3SMauro Carvalho Chehab 2789*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 2790*577a7ad3SMauro Carvalho Chehab 2800 2791*577a7ad3SMauro Carvalho Chehab bit 0 2792*577a7ad3SMauro Carvalho Chehab Decoder enable 2793*577a7ad3SMauro Carvalho Chehab 0 = disable 2794*577a7ad3SMauro Carvalho Chehab 1 = enable 2795*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 2796*577a7ad3SMauro Carvalho Chehab 2804 2797*577a7ad3SMauro Carvalho Chehab bits 0:31 2798*577a7ad3SMauro Carvalho Chehab Decoder horizontal Y alias register 1 2799*577a7ad3SMauro Carvalho Chehab --------------- 2800*577a7ad3SMauro Carvalho Chehab 2808 2801*577a7ad3SMauro Carvalho Chehab bits 0:31 2802*577a7ad3SMauro Carvalho Chehab Decoder horizontal Y alias register 2 2803*577a7ad3SMauro Carvalho Chehab --------------- 2804*577a7ad3SMauro Carvalho Chehab 280C 2805*577a7ad3SMauro Carvalho Chehab bits 0:31 2806*577a7ad3SMauro Carvalho Chehab Decoder horizontal Y alias register 3 2807*577a7ad3SMauro Carvalho Chehab --------------- 2808*577a7ad3SMauro Carvalho Chehab 2810 2809*577a7ad3SMauro Carvalho Chehab bits 0:31 2810*577a7ad3SMauro Carvalho Chehab Decoder horizontal Y alias register 4 2811*577a7ad3SMauro Carvalho Chehab --------------- 2812*577a7ad3SMauro Carvalho Chehab 2814 2813*577a7ad3SMauro Carvalho Chehab bits 0:31 2814*577a7ad3SMauro Carvalho Chehab Decoder horizontal Y alias register 5 2815*577a7ad3SMauro Carvalho Chehab --------------- 2816*577a7ad3SMauro Carvalho Chehab 2818 2817*577a7ad3SMauro Carvalho Chehab bits 0:31 2818*577a7ad3SMauro Carvalho Chehab Decoder horizontal Y alias trigger 2819*577a7ad3SMauro Carvalho Chehab 2820*577a7ad3SMauro Carvalho Chehab These six registers control the horizontal aliasing filter for the Y plane. 2821*577a7ad3SMauro Carvalho Chehab The first five registers must all be loaded before accessing the trigger 2822*577a7ad3SMauro Carvalho Chehab (2818), as this register actually clocks the data through for the first 2823*577a7ad3SMauro Carvalho Chehab five. 2824*577a7ad3SMauro Carvalho Chehab 2825*577a7ad3SMauro Carvalho Chehab To correctly program set the filter, this whole procedure must be done 16 2826*577a7ad3SMauro Carvalho Chehab times. The actual register contents are copied from a lookup-table in the 2827*577a7ad3SMauro Carvalho Chehab firmware which contains 4 different filter settings. 2828*577a7ad3SMauro Carvalho Chehab 2829*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 2830*577a7ad3SMauro Carvalho Chehab 281C 2831*577a7ad3SMauro Carvalho Chehab bits 0:31 2832*577a7ad3SMauro Carvalho Chehab Decoder horizontal UV alias register 1 2833*577a7ad3SMauro Carvalho Chehab --------------- 2834*577a7ad3SMauro Carvalho Chehab 2820 2835*577a7ad3SMauro Carvalho Chehab bits 0:31 2836*577a7ad3SMauro Carvalho Chehab Decoder horizontal UV alias register 2 2837*577a7ad3SMauro Carvalho Chehab --------------- 2838*577a7ad3SMauro Carvalho Chehab 2824 2839*577a7ad3SMauro Carvalho Chehab bits 0:31 2840*577a7ad3SMauro Carvalho Chehab Decoder horizontal UV alias register 3 2841*577a7ad3SMauro Carvalho Chehab --------------- 2842*577a7ad3SMauro Carvalho Chehab 2828 2843*577a7ad3SMauro Carvalho Chehab bits 0:31 2844*577a7ad3SMauro Carvalho Chehab Decoder horizontal UV alias register 4 2845*577a7ad3SMauro Carvalho Chehab --------------- 2846*577a7ad3SMauro Carvalho Chehab 282C 2847*577a7ad3SMauro Carvalho Chehab bits 0:31 2848*577a7ad3SMauro Carvalho Chehab Decoder horizontal UV alias register 5 2849*577a7ad3SMauro Carvalho Chehab --------------- 2850*577a7ad3SMauro Carvalho Chehab 2830 2851*577a7ad3SMauro Carvalho Chehab bits 0:31 2852*577a7ad3SMauro Carvalho Chehab Decoder horizontal UV alias trigger 2853*577a7ad3SMauro Carvalho Chehab 2854*577a7ad3SMauro Carvalho Chehab These six registers control the horizontal aliasing for the UV plane. 2855*577a7ad3SMauro Carvalho Chehab Operation is the same as the Y filter, with 2830 being the trigger 2856*577a7ad3SMauro Carvalho Chehab register. 2857*577a7ad3SMauro Carvalho Chehab 2858*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 2859*577a7ad3SMauro Carvalho Chehab 2834 2860*577a7ad3SMauro Carvalho Chehab bits 0:15 2861*577a7ad3SMauro Carvalho Chehab Decoder Y source width in pixels 2862*577a7ad3SMauro Carvalho Chehab 2863*577a7ad3SMauro Carvalho Chehab bits 16:31 2864*577a7ad3SMauro Carvalho Chehab Decoder Y destination width in pixels 2865*577a7ad3SMauro Carvalho Chehab --------------- 2866*577a7ad3SMauro Carvalho Chehab 2838 2867*577a7ad3SMauro Carvalho Chehab bits 0:15 2868*577a7ad3SMauro Carvalho Chehab Decoder UV source width in pixels 2869*577a7ad3SMauro Carvalho Chehab 2870*577a7ad3SMauro Carvalho Chehab bits 16:31 2871*577a7ad3SMauro Carvalho Chehab Decoder UV destination width in pixels 2872*577a7ad3SMauro Carvalho Chehab 2873*577a7ad3SMauro Carvalho Chehab NOTE: For both registers, the resulting image must be fully visible on 2874*577a7ad3SMauro Carvalho Chehab screen. If the image exceeds the right edge both the source and destination 2875*577a7ad3SMauro Carvalho Chehab size must be adjusted to reflect the visible portion. For the source width, 2876*577a7ad3SMauro Carvalho Chehab you must take into account the scaling when calculating the new value. 2877*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 2878*577a7ad3SMauro Carvalho Chehab 2879*577a7ad3SMauro Carvalho Chehab 283C 2880*577a7ad3SMauro Carvalho Chehab bits 0:31 2881*577a7ad3SMauro Carvalho Chehab Decoder Y horizontal scaling 2882*577a7ad3SMauro Carvalho Chehab Normally = Reg 2854 >> 2 2883*577a7ad3SMauro Carvalho Chehab --------------- 2884*577a7ad3SMauro Carvalho Chehab 2840 2885*577a7ad3SMauro Carvalho Chehab bits 0:31 2886*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown - horizontal scaling 2887*577a7ad3SMauro Carvalho Chehab Usually 0x00080514 2888*577a7ad3SMauro Carvalho Chehab --------------- 2889*577a7ad3SMauro Carvalho Chehab 2844 2890*577a7ad3SMauro Carvalho Chehab bits 0:31 2891*577a7ad3SMauro Carvalho Chehab Decoder UV horizontal scaling 2892*577a7ad3SMauro Carvalho Chehab Normally = Reg 2854 >> 2 2893*577a7ad3SMauro Carvalho Chehab --------------- 2894*577a7ad3SMauro Carvalho Chehab 2848 2895*577a7ad3SMauro Carvalho Chehab bits 0:31 2896*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown - horizontal scaling 2897*577a7ad3SMauro Carvalho Chehab Usually 0x00100514 2898*577a7ad3SMauro Carvalho Chehab --------------- 2899*577a7ad3SMauro Carvalho Chehab 284C 2900*577a7ad3SMauro Carvalho Chehab bits 0:31 2901*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown - Y plane 2902*577a7ad3SMauro Carvalho Chehab Usually 0x00200020 2903*577a7ad3SMauro Carvalho Chehab --------------- 2904*577a7ad3SMauro Carvalho Chehab 2850 2905*577a7ad3SMauro Carvalho Chehab bits 0:31 2906*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown - UV plane 2907*577a7ad3SMauro Carvalho Chehab Usually 0x00200020 2908*577a7ad3SMauro Carvalho Chehab --------------- 2909*577a7ad3SMauro Carvalho Chehab 2854 2910*577a7ad3SMauro Carvalho Chehab bits 0:31 2911*577a7ad3SMauro Carvalho Chehab Decoder 'master' value for horizontal scaling 2912*577a7ad3SMauro Carvalho Chehab --------------- 2913*577a7ad3SMauro Carvalho Chehab 2858 2914*577a7ad3SMauro Carvalho Chehab bits 0:31 2915*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown 2916*577a7ad3SMauro Carvalho Chehab Usually 0 2917*577a7ad3SMauro Carvalho Chehab --------------- 2918*577a7ad3SMauro Carvalho Chehab 285C 2919*577a7ad3SMauro Carvalho Chehab bits 0:31 2920*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown 2921*577a7ad3SMauro Carvalho Chehab Normally = Reg 2854 >> 1 2922*577a7ad3SMauro Carvalho Chehab --------------- 2923*577a7ad3SMauro Carvalho Chehab 2860 2924*577a7ad3SMauro Carvalho Chehab bits 0:31 2925*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown 2926*577a7ad3SMauro Carvalho Chehab Usually 0 2927*577a7ad3SMauro Carvalho Chehab --------------- 2928*577a7ad3SMauro Carvalho Chehab 2864 2929*577a7ad3SMauro Carvalho Chehab bits 0:31 2930*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown 2931*577a7ad3SMauro Carvalho Chehab Normally = Reg 2854 >> 1 2932*577a7ad3SMauro Carvalho Chehab --------------- 2933*577a7ad3SMauro Carvalho Chehab 2868 2934*577a7ad3SMauro Carvalho Chehab bits 0:31 2935*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown 2936*577a7ad3SMauro Carvalho Chehab Usually 0 2937*577a7ad3SMauro Carvalho Chehab 2938*577a7ad3SMauro Carvalho Chehab Most of these registers either control horizontal scaling, or appear linked 2939*577a7ad3SMauro Carvalho Chehab to it in some way. Register 2854 contains the 'master' value & the other 2940*577a7ad3SMauro Carvalho Chehab registers can be calculated from that one. You must also remember to 2941*577a7ad3SMauro Carvalho Chehab correctly set the divider in Reg 2874. 2942*577a7ad3SMauro Carvalho Chehab 2943*577a7ad3SMauro Carvalho Chehab To enlarge: 2944*577a7ad3SMauro Carvalho Chehab Reg 2854 = (source_width * 0x00200000) / destination_width 2945*577a7ad3SMauro Carvalho Chehab Reg 2874 = No divide 2946*577a7ad3SMauro Carvalho Chehab 2947*577a7ad3SMauro Carvalho Chehab To reduce from full size down to half size: 2948*577a7ad3SMauro Carvalho Chehab Reg 2854 = (source_width/2 * 0x00200000) / destination width 2949*577a7ad3SMauro Carvalho Chehab Reg 2874 = Divide by 2 2950*577a7ad3SMauro Carvalho Chehab 2951*577a7ad3SMauro Carvalho Chehab To reduce from half size down to quarter size: 2952*577a7ad3SMauro Carvalho Chehab Reg 2854 = (source_width/4 * 0x00200000) / destination width 2953*577a7ad3SMauro Carvalho Chehab Reg 2874 = Divide by 4 2954*577a7ad3SMauro Carvalho Chehab 2955*577a7ad3SMauro Carvalho Chehab The result is always rounded up. 2956*577a7ad3SMauro Carvalho Chehab 2957*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 2958*577a7ad3SMauro Carvalho Chehab 286C 2959*577a7ad3SMauro Carvalho Chehab bits 0:15 2960*577a7ad3SMauro Carvalho Chehab Decoder horizontal Y buffer offset 2961*577a7ad3SMauro Carvalho Chehab 2962*577a7ad3SMauro Carvalho Chehab bits 15:31 2963*577a7ad3SMauro Carvalho Chehab Decoder horizontal UV buffer offset 2964*577a7ad3SMauro Carvalho Chehab 2965*577a7ad3SMauro Carvalho Chehab Offset into the video image buffer. If the offset is gradually incremented, 2966*577a7ad3SMauro Carvalho Chehab the on screen image will move left & wrap around higher up on the right. 2967*577a7ad3SMauro Carvalho Chehab 2968*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 2969*577a7ad3SMauro Carvalho Chehab 2870 2970*577a7ad3SMauro Carvalho Chehab bits 0:15 2971*577a7ad3SMauro Carvalho Chehab Decoder horizontal Y output offset 2972*577a7ad3SMauro Carvalho Chehab 2973*577a7ad3SMauro Carvalho Chehab bits 16:31 2974*577a7ad3SMauro Carvalho Chehab Decoder horizontal UV output offset 2975*577a7ad3SMauro Carvalho Chehab 2976*577a7ad3SMauro Carvalho Chehab Offsets the actual video output. Controls output alignment of the Y & UV 2977*577a7ad3SMauro Carvalho Chehab planes. The higher the value, the greater the shift to the left. Use 2978*577a7ad3SMauro Carvalho Chehab reg 2890 to move the image right. 2979*577a7ad3SMauro Carvalho Chehab 2980*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 2981*577a7ad3SMauro Carvalho Chehab 2874 2982*577a7ad3SMauro Carvalho Chehab bits 0:1 2983*577a7ad3SMauro Carvalho Chehab Decoder horizontal Y output size divider 2984*577a7ad3SMauro Carvalho Chehab 00 = No divide 2985*577a7ad3SMauro Carvalho Chehab 01 = Divide by 2 2986*577a7ad3SMauro Carvalho Chehab 10 = Divide by 3 2987*577a7ad3SMauro Carvalho Chehab 2988*577a7ad3SMauro Carvalho Chehab bits 4:5 2989*577a7ad3SMauro Carvalho Chehab Decoder horizontal UV output size divider 2990*577a7ad3SMauro Carvalho Chehab 00 = No divide 2991*577a7ad3SMauro Carvalho Chehab 01 = Divide by 2 2992*577a7ad3SMauro Carvalho Chehab 10 = Divide by 3 2993*577a7ad3SMauro Carvalho Chehab 2994*577a7ad3SMauro Carvalho Chehab bit 8 2995*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown 2996*577a7ad3SMauro Carvalho Chehab 0 = Normal 2997*577a7ad3SMauro Carvalho Chehab 1 = Affects video output levels 2998*577a7ad3SMauro Carvalho Chehab 2999*577a7ad3SMauro Carvalho Chehab bit 16 3000*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown 3001*577a7ad3SMauro Carvalho Chehab 0 = Normal 3002*577a7ad3SMauro Carvalho Chehab 1 = Disable horizontal filter 3003*577a7ad3SMauro Carvalho Chehab 3004*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3005*577a7ad3SMauro Carvalho Chehab 2878 3006*577a7ad3SMauro Carvalho Chehab bit 0 3007*577a7ad3SMauro Carvalho Chehab ?? unknown 3008*577a7ad3SMauro Carvalho Chehab 3009*577a7ad3SMauro Carvalho Chehab bit 1 3010*577a7ad3SMauro Carvalho Chehab osd on/off 3011*577a7ad3SMauro Carvalho Chehab 0 = osd off 3012*577a7ad3SMauro Carvalho Chehab 1 = osd on 3013*577a7ad3SMauro Carvalho Chehab 3014*577a7ad3SMauro Carvalho Chehab bit 2 3015*577a7ad3SMauro Carvalho Chehab Decoder + osd video timing 3016*577a7ad3SMauro Carvalho Chehab 0 = NTSC 3017*577a7ad3SMauro Carvalho Chehab 1 = PAL 3018*577a7ad3SMauro Carvalho Chehab 3019*577a7ad3SMauro Carvalho Chehab bits 3:4 3020*577a7ad3SMauro Carvalho Chehab ?? unknown 3021*577a7ad3SMauro Carvalho Chehab 3022*577a7ad3SMauro Carvalho Chehab bit 5 3023*577a7ad3SMauro Carvalho Chehab Decoder + osd 3024*577a7ad3SMauro Carvalho Chehab Swaps upper & lower fields 3025*577a7ad3SMauro Carvalho Chehab 3026*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3027*577a7ad3SMauro Carvalho Chehab 287C 3028*577a7ad3SMauro Carvalho Chehab bits 0:10 3029*577a7ad3SMauro Carvalho Chehab Decoder & osd ?? unknown 3030*577a7ad3SMauro Carvalho Chehab Moves entire screen horizontally. Starts at 0x005 with the screen 3031*577a7ad3SMauro Carvalho Chehab shifted heavily to the right. Incrementing in steps of 0x004 will 3032*577a7ad3SMauro Carvalho Chehab gradually shift the screen to the left. 3033*577a7ad3SMauro Carvalho Chehab 3034*577a7ad3SMauro Carvalho Chehab bits 11:31 3035*577a7ad3SMauro Carvalho Chehab ?? unknown 3036*577a7ad3SMauro Carvalho Chehab 3037*577a7ad3SMauro Carvalho Chehab Normally contents are 0x00101111 (NTSC) or 0x1010111d (PAL) 3038*577a7ad3SMauro Carvalho Chehab 3039*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3040*577a7ad3SMauro Carvalho Chehab 2880 -------- ?? unknown 3041*577a7ad3SMauro Carvalho Chehab 2884 -------- ?? unknown 3042*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3043*577a7ad3SMauro Carvalho Chehab 2888 3044*577a7ad3SMauro Carvalho Chehab bit 0 3045*577a7ad3SMauro Carvalho Chehab Decoder + osd ?? unknown 3046*577a7ad3SMauro Carvalho Chehab 0 = Normal 3047*577a7ad3SMauro Carvalho Chehab 1 = Misaligned fields (Correctable through 289C & 28A4) 3048*577a7ad3SMauro Carvalho Chehab 3049*577a7ad3SMauro Carvalho Chehab bit 4 3050*577a7ad3SMauro Carvalho Chehab ?? unknown 3051*577a7ad3SMauro Carvalho Chehab 3052*577a7ad3SMauro Carvalho Chehab bit 8 3053*577a7ad3SMauro Carvalho Chehab ?? unknown 3054*577a7ad3SMauro Carvalho Chehab 3055*577a7ad3SMauro Carvalho Chehab Warning: Bad values will require a firmware reload to recover. 3056*577a7ad3SMauro Carvalho Chehab Known to be bad are 0x000,0x011,0x100,0x111 3057*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3058*577a7ad3SMauro Carvalho Chehab 288C 3059*577a7ad3SMauro Carvalho Chehab bits 0:15 3060*577a7ad3SMauro Carvalho Chehab osd ?? unknown 3061*577a7ad3SMauro Carvalho Chehab Appears to affect the osd position stability. The higher the value the 3062*577a7ad3SMauro Carvalho Chehab more unstable it becomes. Decoder output remains stable. 3063*577a7ad3SMauro Carvalho Chehab 3064*577a7ad3SMauro Carvalho Chehab bits 16:31 3065*577a7ad3SMauro Carvalho Chehab osd ?? unknown 3066*577a7ad3SMauro Carvalho Chehab Same as bits 0:15 3067*577a7ad3SMauro Carvalho Chehab 3068*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3069*577a7ad3SMauro Carvalho Chehab 2890 3070*577a7ad3SMauro Carvalho Chehab bits 0:11 3071*577a7ad3SMauro Carvalho Chehab Decoder output horizontal offset. 3072*577a7ad3SMauro Carvalho Chehab 3073*577a7ad3SMauro Carvalho Chehab Horizontal offset moves the video image right. A small left shift is 3074*577a7ad3SMauro Carvalho Chehab possible, but it's better to use reg 2870 for that due to its greater 3075*577a7ad3SMauro Carvalho Chehab range. 3076*577a7ad3SMauro Carvalho Chehab 3077*577a7ad3SMauro Carvalho Chehab NOTE: Video corruption will occur if video window is shifted off the right 3078*577a7ad3SMauro Carvalho Chehab edge. To avoid this read the notes for 2834 & 2838. 3079*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3080*577a7ad3SMauro Carvalho Chehab 2894 3081*577a7ad3SMauro Carvalho Chehab bits 0:23 3082*577a7ad3SMauro Carvalho Chehab Decoder output video surround colour. 3083*577a7ad3SMauro Carvalho Chehab 3084*577a7ad3SMauro Carvalho Chehab Contains the colour (in yuv) used to fill the screen when the video is 3085*577a7ad3SMauro Carvalho Chehab running in a window. 3086*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3087*577a7ad3SMauro Carvalho Chehab 2898 3088*577a7ad3SMauro Carvalho Chehab bits 0:23 3089*577a7ad3SMauro Carvalho Chehab Decoder video window colour 3090*577a7ad3SMauro Carvalho Chehab Contains the colour (in yuv) used to fill the video window when the 3091*577a7ad3SMauro Carvalho Chehab video is turned off. 3092*577a7ad3SMauro Carvalho Chehab 3093*577a7ad3SMauro Carvalho Chehab bit 24 3094*577a7ad3SMauro Carvalho Chehab Decoder video output 3095*577a7ad3SMauro Carvalho Chehab 0 = Video on 3096*577a7ad3SMauro Carvalho Chehab 1 = Video off 3097*577a7ad3SMauro Carvalho Chehab 3098*577a7ad3SMauro Carvalho Chehab bit 28 3099*577a7ad3SMauro Carvalho Chehab Decoder plane order 3100*577a7ad3SMauro Carvalho Chehab 0 = Y,UV 3101*577a7ad3SMauro Carvalho Chehab 1 = UV,Y 3102*577a7ad3SMauro Carvalho Chehab 3103*577a7ad3SMauro Carvalho Chehab bit 29 3104*577a7ad3SMauro Carvalho Chehab Decoder second plane byte order 3105*577a7ad3SMauro Carvalho Chehab 0 = Normal (UV) 3106*577a7ad3SMauro Carvalho Chehab 1 = Swapped (VU) 3107*577a7ad3SMauro Carvalho Chehab 3108*577a7ad3SMauro Carvalho Chehab In normal usage, the first plane is Y & the second plane is UV. Though the 3109*577a7ad3SMauro Carvalho Chehab order of the planes can be swapped, only the byte order of the second plane 3110*577a7ad3SMauro Carvalho Chehab can be swapped. This isn't much use for the Y plane, but can be useful for 3111*577a7ad3SMauro Carvalho Chehab the UV plane. 3112*577a7ad3SMauro Carvalho Chehab 3113*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3114*577a7ad3SMauro Carvalho Chehab 289C 3115*577a7ad3SMauro Carvalho Chehab bits 0:15 3116*577a7ad3SMauro Carvalho Chehab Decoder vertical field offset 1 3117*577a7ad3SMauro Carvalho Chehab 3118*577a7ad3SMauro Carvalho Chehab bits 16:31 3119*577a7ad3SMauro Carvalho Chehab Decoder vertical field offset 2 3120*577a7ad3SMauro Carvalho Chehab 3121*577a7ad3SMauro Carvalho Chehab Controls field output vertical alignment. The higher the number, the lower 3122*577a7ad3SMauro Carvalho Chehab the image on screen. Known starting values are 0x011E0017 (NTSC) & 3123*577a7ad3SMauro Carvalho Chehab 0x01500017 (PAL) 3124*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3125*577a7ad3SMauro Carvalho Chehab 28A0 3126*577a7ad3SMauro Carvalho Chehab bits 0:15 3127*577a7ad3SMauro Carvalho Chehab Decoder & osd width in pixels 3128*577a7ad3SMauro Carvalho Chehab 3129*577a7ad3SMauro Carvalho Chehab bits 16:31 3130*577a7ad3SMauro Carvalho Chehab Decoder & osd height in pixels 3131*577a7ad3SMauro Carvalho Chehab 3132*577a7ad3SMauro Carvalho Chehab All output from the decoder & osd are disabled beyond this area. Decoder 3133*577a7ad3SMauro Carvalho Chehab output will simply go black outside of this region. If the osd tries to 3134*577a7ad3SMauro Carvalho Chehab exceed this area it will become corrupt. 3135*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3136*577a7ad3SMauro Carvalho Chehab 28A4 3137*577a7ad3SMauro Carvalho Chehab bits 0:11 3138*577a7ad3SMauro Carvalho Chehab osd left shift. 3139*577a7ad3SMauro Carvalho Chehab 3140*577a7ad3SMauro Carvalho Chehab Has a range of 0x770->0x7FF. With the exception of 0, any value outside of 3141*577a7ad3SMauro Carvalho Chehab this range corrupts the osd. 3142*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3143*577a7ad3SMauro Carvalho Chehab 28A8 3144*577a7ad3SMauro Carvalho Chehab bits 0:15 3145*577a7ad3SMauro Carvalho Chehab osd vertical field offset 1 3146*577a7ad3SMauro Carvalho Chehab 3147*577a7ad3SMauro Carvalho Chehab bits 16:31 3148*577a7ad3SMauro Carvalho Chehab osd vertical field offset 2 3149*577a7ad3SMauro Carvalho Chehab 3150*577a7ad3SMauro Carvalho Chehab Controls field output vertical alignment. The higher the number, the lower 3151*577a7ad3SMauro Carvalho Chehab the image on screen. Known starting values are 0x011E0017 (NTSC) & 3152*577a7ad3SMauro Carvalho Chehab 0x01500017 (PAL) 3153*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3154*577a7ad3SMauro Carvalho Chehab 28AC -------- ?? unknown 3155*577a7ad3SMauro Carvalho Chehab | 3156*577a7ad3SMauro Carvalho Chehab V 3157*577a7ad3SMauro Carvalho Chehab 28BC -------- ?? unknown 3158*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3159*577a7ad3SMauro Carvalho Chehab 28C0 3160*577a7ad3SMauro Carvalho Chehab bit 0 3161*577a7ad3SMauro Carvalho Chehab Current output field 3162*577a7ad3SMauro Carvalho Chehab 0 = first field 3163*577a7ad3SMauro Carvalho Chehab 1 = second field 3164*577a7ad3SMauro Carvalho Chehab 3165*577a7ad3SMauro Carvalho Chehab bits 16:31 3166*577a7ad3SMauro Carvalho Chehab Current scanline 3167*577a7ad3SMauro Carvalho Chehab The scanline counts from the top line of the first field 3168*577a7ad3SMauro Carvalho Chehab through to the last line of the second field. 3169*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3170*577a7ad3SMauro Carvalho Chehab 28C4 -------- ?? unknown 3171*577a7ad3SMauro Carvalho Chehab | 3172*577a7ad3SMauro Carvalho Chehab V 3173*577a7ad3SMauro Carvalho Chehab 28F8 -------- ?? unknown 3174*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3175*577a7ad3SMauro Carvalho Chehab 28FC 3176*577a7ad3SMauro Carvalho Chehab bit 0 3177*577a7ad3SMauro Carvalho Chehab ?? unknown 3178*577a7ad3SMauro Carvalho Chehab 0 = Normal 3179*577a7ad3SMauro Carvalho Chehab 1 = Breaks decoder & osd output 3180*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3181*577a7ad3SMauro Carvalho Chehab 2900 3182*577a7ad3SMauro Carvalho Chehab bits 0:31 3183*577a7ad3SMauro Carvalho Chehab Decoder vertical Y alias register 1 3184*577a7ad3SMauro Carvalho Chehab --------------- 3185*577a7ad3SMauro Carvalho Chehab 2904 3186*577a7ad3SMauro Carvalho Chehab bits 0:31 3187*577a7ad3SMauro Carvalho Chehab Decoder vertical Y alias register 2 3188*577a7ad3SMauro Carvalho Chehab --------------- 3189*577a7ad3SMauro Carvalho Chehab 2908 3190*577a7ad3SMauro Carvalho Chehab bits 0:31 3191*577a7ad3SMauro Carvalho Chehab Decoder vertical Y alias trigger 3192*577a7ad3SMauro Carvalho Chehab 3193*577a7ad3SMauro Carvalho Chehab These three registers control the vertical aliasing filter for the Y plane. 3194*577a7ad3SMauro Carvalho Chehab Operation is similar to the horizontal Y filter (2804). The only real 3195*577a7ad3SMauro Carvalho Chehab difference is that there are only two registers to set before accessing 3196*577a7ad3SMauro Carvalho Chehab the trigger register (2908). As for the horizontal filter, the values are 3197*577a7ad3SMauro Carvalho Chehab taken from a lookup table in the firmware, and the procedure must be 3198*577a7ad3SMauro Carvalho Chehab repeated 16 times to fully program the filter. 3199*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3200*577a7ad3SMauro Carvalho Chehab 290C 3201*577a7ad3SMauro Carvalho Chehab bits 0:31 3202*577a7ad3SMauro Carvalho Chehab Decoder vertical UV alias register 1 3203*577a7ad3SMauro Carvalho Chehab --------------- 3204*577a7ad3SMauro Carvalho Chehab 2910 3205*577a7ad3SMauro Carvalho Chehab bits 0:31 3206*577a7ad3SMauro Carvalho Chehab Decoder vertical UV alias register 2 3207*577a7ad3SMauro Carvalho Chehab --------------- 3208*577a7ad3SMauro Carvalho Chehab 2914 3209*577a7ad3SMauro Carvalho Chehab bits 0:31 3210*577a7ad3SMauro Carvalho Chehab Decoder vertical UV alias trigger 3211*577a7ad3SMauro Carvalho Chehab 3212*577a7ad3SMauro Carvalho Chehab These three registers control the vertical aliasing filter for the UV 3213*577a7ad3SMauro Carvalho Chehab plane. Operation is the same as the Y filter, with 2914 being the trigger. 3214*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3215*577a7ad3SMauro Carvalho Chehab 2918 3216*577a7ad3SMauro Carvalho Chehab bits 0:15 3217*577a7ad3SMauro Carvalho Chehab Decoder Y source height in pixels 3218*577a7ad3SMauro Carvalho Chehab 3219*577a7ad3SMauro Carvalho Chehab bits 16:31 3220*577a7ad3SMauro Carvalho Chehab Decoder Y destination height in pixels 3221*577a7ad3SMauro Carvalho Chehab --------------- 3222*577a7ad3SMauro Carvalho Chehab 291C 3223*577a7ad3SMauro Carvalho Chehab bits 0:15 3224*577a7ad3SMauro Carvalho Chehab Decoder UV source height in pixels divided by 2 3225*577a7ad3SMauro Carvalho Chehab 3226*577a7ad3SMauro Carvalho Chehab bits 16:31 3227*577a7ad3SMauro Carvalho Chehab Decoder UV destination height in pixels 3228*577a7ad3SMauro Carvalho Chehab 3229*577a7ad3SMauro Carvalho Chehab NOTE: For both registers, the resulting image must be fully visible on 3230*577a7ad3SMauro Carvalho Chehab screen. If the image exceeds the bottom edge both the source and 3231*577a7ad3SMauro Carvalho Chehab destination size must be adjusted to reflect the visible portion. For the 3232*577a7ad3SMauro Carvalho Chehab source height, you must take into account the scaling when calculating the 3233*577a7ad3SMauro Carvalho Chehab new value. 3234*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3235*577a7ad3SMauro Carvalho Chehab 2920 3236*577a7ad3SMauro Carvalho Chehab bits 0:31 3237*577a7ad3SMauro Carvalho Chehab Decoder Y vertical scaling 3238*577a7ad3SMauro Carvalho Chehab Normally = Reg 2930 >> 2 3239*577a7ad3SMauro Carvalho Chehab --------------- 3240*577a7ad3SMauro Carvalho Chehab 2924 3241*577a7ad3SMauro Carvalho Chehab bits 0:31 3242*577a7ad3SMauro Carvalho Chehab Decoder Y vertical scaling 3243*577a7ad3SMauro Carvalho Chehab Normally = Reg 2920 + 0x514 3244*577a7ad3SMauro Carvalho Chehab --------------- 3245*577a7ad3SMauro Carvalho Chehab 2928 3246*577a7ad3SMauro Carvalho Chehab bits 0:31 3247*577a7ad3SMauro Carvalho Chehab Decoder UV vertical scaling 3248*577a7ad3SMauro Carvalho Chehab When enlarging = Reg 2930 >> 2 3249*577a7ad3SMauro Carvalho Chehab When reducing = Reg 2930 >> 3 3250*577a7ad3SMauro Carvalho Chehab --------------- 3251*577a7ad3SMauro Carvalho Chehab 292C 3252*577a7ad3SMauro Carvalho Chehab bits 0:31 3253*577a7ad3SMauro Carvalho Chehab Decoder UV vertical scaling 3254*577a7ad3SMauro Carvalho Chehab Normally = Reg 2928 + 0x514 3255*577a7ad3SMauro Carvalho Chehab --------------- 3256*577a7ad3SMauro Carvalho Chehab 2930 3257*577a7ad3SMauro Carvalho Chehab bits 0:31 3258*577a7ad3SMauro Carvalho Chehab Decoder 'master' value for vertical scaling 3259*577a7ad3SMauro Carvalho Chehab --------------- 3260*577a7ad3SMauro Carvalho Chehab 2934 3261*577a7ad3SMauro Carvalho Chehab bits 0:31 3262*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown - Y vertical scaling 3263*577a7ad3SMauro Carvalho Chehab --------------- 3264*577a7ad3SMauro Carvalho Chehab 2938 3265*577a7ad3SMauro Carvalho Chehab bits 0:31 3266*577a7ad3SMauro Carvalho Chehab Decoder Y vertical scaling 3267*577a7ad3SMauro Carvalho Chehab Normally = Reg 2930 3268*577a7ad3SMauro Carvalho Chehab --------------- 3269*577a7ad3SMauro Carvalho Chehab 293C 3270*577a7ad3SMauro Carvalho Chehab bits 0:31 3271*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown - Y vertical scaling 3272*577a7ad3SMauro Carvalho Chehab --------------- 3273*577a7ad3SMauro Carvalho Chehab 2940 3274*577a7ad3SMauro Carvalho Chehab bits 0:31 3275*577a7ad3SMauro Carvalho Chehab Decoder UV vertical scaling 3276*577a7ad3SMauro Carvalho Chehab When enlarging = Reg 2930 >> 1 3277*577a7ad3SMauro Carvalho Chehab When reducing = Reg 2930 3278*577a7ad3SMauro Carvalho Chehab --------------- 3279*577a7ad3SMauro Carvalho Chehab 2944 3280*577a7ad3SMauro Carvalho Chehab bits 0:31 3281*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown - UV vertical scaling 3282*577a7ad3SMauro Carvalho Chehab --------------- 3283*577a7ad3SMauro Carvalho Chehab 2948 3284*577a7ad3SMauro Carvalho Chehab bits 0:31 3285*577a7ad3SMauro Carvalho Chehab Decoder UV vertical scaling 3286*577a7ad3SMauro Carvalho Chehab Normally = Reg 2940 3287*577a7ad3SMauro Carvalho Chehab --------------- 3288*577a7ad3SMauro Carvalho Chehab 294C 3289*577a7ad3SMauro Carvalho Chehab bits 0:31 3290*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown - UV vertical scaling 3291*577a7ad3SMauro Carvalho Chehab 3292*577a7ad3SMauro Carvalho Chehab Most of these registers either control vertical scaling, or appear linked 3293*577a7ad3SMauro Carvalho Chehab to it in some way. Register 2930 contains the 'master' value & all other 3294*577a7ad3SMauro Carvalho Chehab registers can be calculated from that one. You must also remember to 3295*577a7ad3SMauro Carvalho Chehab correctly set the divider in Reg 296C 3296*577a7ad3SMauro Carvalho Chehab 3297*577a7ad3SMauro Carvalho Chehab To enlarge: 3298*577a7ad3SMauro Carvalho Chehab Reg 2930 = (source_height * 0x00200000) / destination_height 3299*577a7ad3SMauro Carvalho Chehab Reg 296C = No divide 3300*577a7ad3SMauro Carvalho Chehab 3301*577a7ad3SMauro Carvalho Chehab To reduce from full size down to half size: 3302*577a7ad3SMauro Carvalho Chehab Reg 2930 = (source_height/2 * 0x00200000) / destination height 3303*577a7ad3SMauro Carvalho Chehab Reg 296C = Divide by 2 3304*577a7ad3SMauro Carvalho Chehab 3305*577a7ad3SMauro Carvalho Chehab To reduce from half down to quarter. 3306*577a7ad3SMauro Carvalho Chehab Reg 2930 = (source_height/4 * 0x00200000) / destination height 3307*577a7ad3SMauro Carvalho Chehab Reg 296C = Divide by 4 3308*577a7ad3SMauro Carvalho Chehab 3309*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3310*577a7ad3SMauro Carvalho Chehab 2950 3311*577a7ad3SMauro Carvalho Chehab bits 0:15 3312*577a7ad3SMauro Carvalho Chehab Decoder Y line index into display buffer, first field 3313*577a7ad3SMauro Carvalho Chehab 3314*577a7ad3SMauro Carvalho Chehab bits 16:31 3315*577a7ad3SMauro Carvalho Chehab Decoder Y vertical line skip, first field 3316*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3317*577a7ad3SMauro Carvalho Chehab 2954 3318*577a7ad3SMauro Carvalho Chehab bits 0:15 3319*577a7ad3SMauro Carvalho Chehab Decoder Y line index into display buffer, second field 3320*577a7ad3SMauro Carvalho Chehab 3321*577a7ad3SMauro Carvalho Chehab bits 16:31 3322*577a7ad3SMauro Carvalho Chehab Decoder Y vertical line skip, second field 3323*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3324*577a7ad3SMauro Carvalho Chehab 2958 3325*577a7ad3SMauro Carvalho Chehab bits 0:15 3326*577a7ad3SMauro Carvalho Chehab Decoder UV line index into display buffer, first field 3327*577a7ad3SMauro Carvalho Chehab 3328*577a7ad3SMauro Carvalho Chehab bits 16:31 3329*577a7ad3SMauro Carvalho Chehab Decoder UV vertical line skip, first field 3330*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3331*577a7ad3SMauro Carvalho Chehab 295C 3332*577a7ad3SMauro Carvalho Chehab bits 0:15 3333*577a7ad3SMauro Carvalho Chehab Decoder UV line index into display buffer, second field 3334*577a7ad3SMauro Carvalho Chehab 3335*577a7ad3SMauro Carvalho Chehab bits 16:31 3336*577a7ad3SMauro Carvalho Chehab Decoder UV vertical line skip, second field 3337*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3338*577a7ad3SMauro Carvalho Chehab 2960 3339*577a7ad3SMauro Carvalho Chehab bits 0:15 3340*577a7ad3SMauro Carvalho Chehab Decoder destination height minus 1 3341*577a7ad3SMauro Carvalho Chehab 3342*577a7ad3SMauro Carvalho Chehab bits 16:31 3343*577a7ad3SMauro Carvalho Chehab Decoder destination height divided by 2 3344*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3345*577a7ad3SMauro Carvalho Chehab 2964 3346*577a7ad3SMauro Carvalho Chehab bits 0:15 3347*577a7ad3SMauro Carvalho Chehab Decoder Y vertical offset, second field 3348*577a7ad3SMauro Carvalho Chehab 3349*577a7ad3SMauro Carvalho Chehab bits 16:31 3350*577a7ad3SMauro Carvalho Chehab Decoder Y vertical offset, first field 3351*577a7ad3SMauro Carvalho Chehab 3352*577a7ad3SMauro Carvalho Chehab These two registers shift the Y plane up. The higher the number, the 3353*577a7ad3SMauro Carvalho Chehab greater the shift. 3354*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3355*577a7ad3SMauro Carvalho Chehab 2968 3356*577a7ad3SMauro Carvalho Chehab bits 0:15 3357*577a7ad3SMauro Carvalho Chehab Decoder UV vertical offset, second field 3358*577a7ad3SMauro Carvalho Chehab 3359*577a7ad3SMauro Carvalho Chehab bits 16:31 3360*577a7ad3SMauro Carvalho Chehab Decoder UV vertical offset, first field 3361*577a7ad3SMauro Carvalho Chehab 3362*577a7ad3SMauro Carvalho Chehab These two registers shift the UV plane up. The higher the number, the 3363*577a7ad3SMauro Carvalho Chehab greater the shift. 3364*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3365*577a7ad3SMauro Carvalho Chehab 296C 3366*577a7ad3SMauro Carvalho Chehab bits 0:1 3367*577a7ad3SMauro Carvalho Chehab Decoder vertical Y output size divider 3368*577a7ad3SMauro Carvalho Chehab 00 = No divide 3369*577a7ad3SMauro Carvalho Chehab 01 = Divide by 2 3370*577a7ad3SMauro Carvalho Chehab 10 = Divide by 4 3371*577a7ad3SMauro Carvalho Chehab 3372*577a7ad3SMauro Carvalho Chehab bits 8:9 3373*577a7ad3SMauro Carvalho Chehab Decoder vertical UV output size divider 3374*577a7ad3SMauro Carvalho Chehab 00 = No divide 3375*577a7ad3SMauro Carvalho Chehab 01 = Divide by 2 3376*577a7ad3SMauro Carvalho Chehab 10 = Divide by 4 3377*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3378*577a7ad3SMauro Carvalho Chehab 2970 3379*577a7ad3SMauro Carvalho Chehab bit 0 3380*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown 3381*577a7ad3SMauro Carvalho Chehab 0 = Normal 3382*577a7ad3SMauro Carvalho Chehab 1 = Affect video output levels 3383*577a7ad3SMauro Carvalho Chehab 3384*577a7ad3SMauro Carvalho Chehab bit 16 3385*577a7ad3SMauro Carvalho Chehab Decoder ?? unknown 3386*577a7ad3SMauro Carvalho Chehab 0 = Normal 3387*577a7ad3SMauro Carvalho Chehab 1 = Disable vertical filter 3388*577a7ad3SMauro Carvalho Chehab 3389*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3390*577a7ad3SMauro Carvalho Chehab 2974 -------- ?? unknown 3391*577a7ad3SMauro Carvalho Chehab | 3392*577a7ad3SMauro Carvalho Chehab V 3393*577a7ad3SMauro Carvalho Chehab 29EF -------- ?? unknown 3394*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3395*577a7ad3SMauro Carvalho Chehab 2A00 3396*577a7ad3SMauro Carvalho Chehab bits 0:2 3397*577a7ad3SMauro Carvalho Chehab osd colour mode 3398*577a7ad3SMauro Carvalho Chehab 000 = 8 bit indexed 3399*577a7ad3SMauro Carvalho Chehab 001 = 16 bit (565) 3400*577a7ad3SMauro Carvalho Chehab 010 = 15 bit (555) 3401*577a7ad3SMauro Carvalho Chehab 011 = 12 bit (444) 3402*577a7ad3SMauro Carvalho Chehab 100 = 32 bit (8888) 3403*577a7ad3SMauro Carvalho Chehab 3404*577a7ad3SMauro Carvalho Chehab bits 4:5 3405*577a7ad3SMauro Carvalho Chehab osd display bpp 3406*577a7ad3SMauro Carvalho Chehab 01 = 8 bit 3407*577a7ad3SMauro Carvalho Chehab 10 = 16 bit 3408*577a7ad3SMauro Carvalho Chehab 11 = 32 bit 3409*577a7ad3SMauro Carvalho Chehab 3410*577a7ad3SMauro Carvalho Chehab bit 8 3411*577a7ad3SMauro Carvalho Chehab osd global alpha 3412*577a7ad3SMauro Carvalho Chehab 0 = Off 3413*577a7ad3SMauro Carvalho Chehab 1 = On 3414*577a7ad3SMauro Carvalho Chehab 3415*577a7ad3SMauro Carvalho Chehab bit 9 3416*577a7ad3SMauro Carvalho Chehab osd local alpha 3417*577a7ad3SMauro Carvalho Chehab 0 = Off 3418*577a7ad3SMauro Carvalho Chehab 1 = On 3419*577a7ad3SMauro Carvalho Chehab 3420*577a7ad3SMauro Carvalho Chehab bit 10 3421*577a7ad3SMauro Carvalho Chehab osd colour key 3422*577a7ad3SMauro Carvalho Chehab 0 = Off 3423*577a7ad3SMauro Carvalho Chehab 1 = On 3424*577a7ad3SMauro Carvalho Chehab 3425*577a7ad3SMauro Carvalho Chehab bit 11 3426*577a7ad3SMauro Carvalho Chehab osd ?? unknown 3427*577a7ad3SMauro Carvalho Chehab Must be 1 3428*577a7ad3SMauro Carvalho Chehab 3429*577a7ad3SMauro Carvalho Chehab bit 13 3430*577a7ad3SMauro Carvalho Chehab osd colour space 3431*577a7ad3SMauro Carvalho Chehab 0 = ARGB 3432*577a7ad3SMauro Carvalho Chehab 1 = AYVU 3433*577a7ad3SMauro Carvalho Chehab 3434*577a7ad3SMauro Carvalho Chehab bits 16:31 3435*577a7ad3SMauro Carvalho Chehab osd ?? unknown 3436*577a7ad3SMauro Carvalho Chehab Must be 0x001B (some kind of buffer pointer ?) 3437*577a7ad3SMauro Carvalho Chehab 3438*577a7ad3SMauro Carvalho Chehab When the bits-per-pixel is set to 8, the colour mode is ignored and 3439*577a7ad3SMauro Carvalho Chehab assumed to be 8 bit indexed. For 16 & 32 bits-per-pixel the colour depth 3440*577a7ad3SMauro Carvalho Chehab is honoured, and when using a colour depth that requires fewer bytes than 3441*577a7ad3SMauro Carvalho Chehab allocated the extra bytes are used as padding. So for a 32 bpp with 8 bit 3442*577a7ad3SMauro Carvalho Chehab index colour, there are 3 padding bytes per pixel. It's also possible to 3443*577a7ad3SMauro Carvalho Chehab select 16bpp with a 32 bit colour mode. This results in the pixel width 3444*577a7ad3SMauro Carvalho Chehab being doubled, but the color key will not work as expected in this mode. 3445*577a7ad3SMauro Carvalho Chehab 3446*577a7ad3SMauro Carvalho Chehab Colour key is as it suggests. You designate a colour which will become 3447*577a7ad3SMauro Carvalho Chehab completely transparent. When using 565, 555 or 444 colour modes, the 3448*577a7ad3SMauro Carvalho Chehab colour key is always 16 bits wide. The colour to key on is set in Reg 2A18. 3449*577a7ad3SMauro Carvalho Chehab 3450*577a7ad3SMauro Carvalho Chehab Local alpha works differently depending on the colour mode. For 32bpp & 8 3451*577a7ad3SMauro Carvalho Chehab bit indexed, local alpha is a per-pixel 256 step transparency, with 0 being 3452*577a7ad3SMauro Carvalho Chehab transparent and 255 being solid. For the 16bpp modes 555 & 444, the unused 3453*577a7ad3SMauro Carvalho Chehab bit(s) act as a simple transparency switch, with 0 being solid & 1 being 3454*577a7ad3SMauro Carvalho Chehab fully transparent. There is no local alpha support for 16bit 565. 3455*577a7ad3SMauro Carvalho Chehab 3456*577a7ad3SMauro Carvalho Chehab Global alpha is a 256 step transparency that applies to the entire osd, 3457*577a7ad3SMauro Carvalho Chehab with 0 being transparent & 255 being solid. 3458*577a7ad3SMauro Carvalho Chehab 3459*577a7ad3SMauro Carvalho Chehab It's possible to combine colour key, local alpha & global alpha. 3460*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3461*577a7ad3SMauro Carvalho Chehab 2A04 3462*577a7ad3SMauro Carvalho Chehab bits 0:15 3463*577a7ad3SMauro Carvalho Chehab osd x coord for left edge 3464*577a7ad3SMauro Carvalho Chehab 3465*577a7ad3SMauro Carvalho Chehab bits 16:31 3466*577a7ad3SMauro Carvalho Chehab osd y coord for top edge 3467*577a7ad3SMauro Carvalho Chehab --------------- 3468*577a7ad3SMauro Carvalho Chehab 2A08 3469*577a7ad3SMauro Carvalho Chehab bits 0:15 3470*577a7ad3SMauro Carvalho Chehab osd x coord for right edge 3471*577a7ad3SMauro Carvalho Chehab 3472*577a7ad3SMauro Carvalho Chehab bits 16:31 3473*577a7ad3SMauro Carvalho Chehab osd y coord for bottom edge 3474*577a7ad3SMauro Carvalho Chehab 3475*577a7ad3SMauro Carvalho Chehab For both registers, (0,0) = top left corner of the display area. These 3476*577a7ad3SMauro Carvalho Chehab registers do not control the osd size, only where it's positioned & how 3477*577a7ad3SMauro Carvalho Chehab much is visible. The visible osd area cannot exceed the right edge of the 3478*577a7ad3SMauro Carvalho Chehab display, otherwise the osd will become corrupt. See reg 2A10 for 3479*577a7ad3SMauro Carvalho Chehab setting osd width. 3480*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3481*577a7ad3SMauro Carvalho Chehab 2A0C 3482*577a7ad3SMauro Carvalho Chehab bits 0:31 3483*577a7ad3SMauro Carvalho Chehab osd buffer index 3484*577a7ad3SMauro Carvalho Chehab 3485*577a7ad3SMauro Carvalho Chehab An index into the osd buffer. Slowly incrementing this moves the osd left, 3486*577a7ad3SMauro Carvalho Chehab wrapping around onto the right edge 3487*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3488*577a7ad3SMauro Carvalho Chehab 2A10 3489*577a7ad3SMauro Carvalho Chehab bits 0:11 3490*577a7ad3SMauro Carvalho Chehab osd buffer 32 bit word width 3491*577a7ad3SMauro Carvalho Chehab 3492*577a7ad3SMauro Carvalho Chehab Contains the width of the osd measured in 32 bit words. This means that all 3493*577a7ad3SMauro Carvalho Chehab colour modes are restricted to a byte width which is divisible by 4. 3494*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3495*577a7ad3SMauro Carvalho Chehab 2A14 3496*577a7ad3SMauro Carvalho Chehab bits 0:15 3497*577a7ad3SMauro Carvalho Chehab osd height in pixels 3498*577a7ad3SMauro Carvalho Chehab 3499*577a7ad3SMauro Carvalho Chehab bits 16:32 3500*577a7ad3SMauro Carvalho Chehab osd line index into buffer 3501*577a7ad3SMauro Carvalho Chehab osd will start displaying from this line. 3502*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3503*577a7ad3SMauro Carvalho Chehab 2A18 3504*577a7ad3SMauro Carvalho Chehab bits 0:31 3505*577a7ad3SMauro Carvalho Chehab osd colour key 3506*577a7ad3SMauro Carvalho Chehab 3507*577a7ad3SMauro Carvalho Chehab Contains the colour value which will be transparent. 3508*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3509*577a7ad3SMauro Carvalho Chehab 2A1C 3510*577a7ad3SMauro Carvalho Chehab bits 0:7 3511*577a7ad3SMauro Carvalho Chehab osd global alpha 3512*577a7ad3SMauro Carvalho Chehab 3513*577a7ad3SMauro Carvalho Chehab Contains the global alpha value (equiv ivtvfbctl --alpha XX) 3514*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3515*577a7ad3SMauro Carvalho Chehab 2A20 -------- ?? unknown 3516*577a7ad3SMauro Carvalho Chehab | 3517*577a7ad3SMauro Carvalho Chehab V 3518*577a7ad3SMauro Carvalho Chehab 2A2C -------- ?? unknown 3519*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3520*577a7ad3SMauro Carvalho Chehab 2A30 3521*577a7ad3SMauro Carvalho Chehab bits 0:7 3522*577a7ad3SMauro Carvalho Chehab osd colour to change in indexed palette 3523*577a7ad3SMauro Carvalho Chehab --------------- 3524*577a7ad3SMauro Carvalho Chehab 2A34 3525*577a7ad3SMauro Carvalho Chehab bits 0:31 3526*577a7ad3SMauro Carvalho Chehab osd colour for indexed palette 3527*577a7ad3SMauro Carvalho Chehab 3528*577a7ad3SMauro Carvalho Chehab To set the new palette, first load the index of the colour to change into 3529*577a7ad3SMauro Carvalho Chehab 2A30, then load the new colour into 2A34. The full palette is 256 colours, 3530*577a7ad3SMauro Carvalho Chehab so the index range is 0x00-0xFF 3531*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3532*577a7ad3SMauro Carvalho Chehab 2A38 -------- ?? unknown 3533*577a7ad3SMauro Carvalho Chehab 2A3C -------- ?? unknown 3534*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3535*577a7ad3SMauro Carvalho Chehab 2A40 3536*577a7ad3SMauro Carvalho Chehab bits 0:31 3537*577a7ad3SMauro Carvalho Chehab osd ?? unknown 3538*577a7ad3SMauro Carvalho Chehab 3539*577a7ad3SMauro Carvalho Chehab Affects overall brightness, wrapping around to black 3540*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3541*577a7ad3SMauro Carvalho Chehab 2A44 3542*577a7ad3SMauro Carvalho Chehab bits 0:31 3543*577a7ad3SMauro Carvalho Chehab osd ?? unknown 3544*577a7ad3SMauro Carvalho Chehab 3545*577a7ad3SMauro Carvalho Chehab Green tint 3546*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3547*577a7ad3SMauro Carvalho Chehab 2A48 3548*577a7ad3SMauro Carvalho Chehab bits 0:31 3549*577a7ad3SMauro Carvalho Chehab osd ?? unknown 3550*577a7ad3SMauro Carvalho Chehab 3551*577a7ad3SMauro Carvalho Chehab Red tint 3552*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3553*577a7ad3SMauro Carvalho Chehab 2A4C 3554*577a7ad3SMauro Carvalho Chehab bits 0:31 3555*577a7ad3SMauro Carvalho Chehab osd ?? unknown 3556*577a7ad3SMauro Carvalho Chehab 3557*577a7ad3SMauro Carvalho Chehab Affects overall brightness, wrapping around to black 3558*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3559*577a7ad3SMauro Carvalho Chehab 2A50 3560*577a7ad3SMauro Carvalho Chehab bits 0:31 3561*577a7ad3SMauro Carvalho Chehab osd ?? unknown 3562*577a7ad3SMauro Carvalho Chehab 3563*577a7ad3SMauro Carvalho Chehab Colour shift 3564*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3565*577a7ad3SMauro Carvalho Chehab 2A54 3566*577a7ad3SMauro Carvalho Chehab bits 0:31 3567*577a7ad3SMauro Carvalho Chehab osd ?? unknown 3568*577a7ad3SMauro Carvalho Chehab 3569*577a7ad3SMauro Carvalho Chehab Colour shift 3570*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3571*577a7ad3SMauro Carvalho Chehab 2A58 -------- ?? unknown 3572*577a7ad3SMauro Carvalho Chehab | 3573*577a7ad3SMauro Carvalho Chehab V 3574*577a7ad3SMauro Carvalho Chehab 2AFC -------- ?? unknown 3575*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3576*577a7ad3SMauro Carvalho Chehab 2B00 3577*577a7ad3SMauro Carvalho Chehab bit 0 3578*577a7ad3SMauro Carvalho Chehab osd filter control 3579*577a7ad3SMauro Carvalho Chehab 0 = filter off 3580*577a7ad3SMauro Carvalho Chehab 1 = filter on 3581*577a7ad3SMauro Carvalho Chehab 3582*577a7ad3SMauro Carvalho Chehab bits 1:4 3583*577a7ad3SMauro Carvalho Chehab osd ?? unknown 3584*577a7ad3SMauro Carvalho Chehab 3585*577a7ad3SMauro Carvalho Chehab -------------------------------------------------------------------------------- 3586*577a7ad3SMauro Carvalho Chehab 3587*577a7ad3SMauro Carvalho ChehabThe cx231xx DMA engine 3588*577a7ad3SMauro Carvalho Chehab---------------------- 3589*577a7ad3SMauro Carvalho Chehab 3590*577a7ad3SMauro Carvalho Chehab 3591*577a7ad3SMauro Carvalho ChehabThis page describes the structures and procedures used by the cx2341x DMA 3592*577a7ad3SMauro Carvalho Chehabengine. 3593*577a7ad3SMauro Carvalho Chehab 3594*577a7ad3SMauro Carvalho ChehabIntroduction 3595*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~ 3596*577a7ad3SMauro Carvalho Chehab 3597*577a7ad3SMauro Carvalho ChehabThe cx2341x PCI interface is busmaster capable. This means it has a DMA 3598*577a7ad3SMauro Carvalho Chehabengine to efficiently transfer large volumes of data between the card and main 3599*577a7ad3SMauro Carvalho Chehabmemory without requiring help from a CPU. Like most hardware, it must operate 3600*577a7ad3SMauro Carvalho Chehabon contiguous physical memory. This is difficult to come by in large quantities 3601*577a7ad3SMauro Carvalho Chehabon virtual memory machines. 3602*577a7ad3SMauro Carvalho Chehab 3603*577a7ad3SMauro Carvalho ChehabTherefore, it also supports a technique called "scatter-gather". The card can 3604*577a7ad3SMauro Carvalho Chehabtransfer multiple buffers in one operation. Instead of allocating one large 3605*577a7ad3SMauro Carvalho Chehabcontiguous buffer, the driver can allocate several smaller buffers. 3606*577a7ad3SMauro Carvalho Chehab 3607*577a7ad3SMauro Carvalho ChehabIn practice, I've seen the average transfer to be roughly 80K, but transfers 3608*577a7ad3SMauro Carvalho Chehababove 128K were not uncommon, particularly at startup. The 128K figure is 3609*577a7ad3SMauro Carvalho Chehabimportant, because that is the largest block that the kernel can normally 3610*577a7ad3SMauro Carvalho Chehaballocate. Even still, 128K blocks are hard to come by, so the driver writer is 3611*577a7ad3SMauro Carvalho Chehaburged to choose a smaller block size and learn the scatter-gather technique. 3612*577a7ad3SMauro Carvalho Chehab 3613*577a7ad3SMauro Carvalho ChehabMailbox #10 is reserved for DMA transfer information. 3614*577a7ad3SMauro Carvalho Chehab 3615*577a7ad3SMauro Carvalho ChehabNote: the hardware expects little-endian data ('intel format'). 3616*577a7ad3SMauro Carvalho Chehab 3617*577a7ad3SMauro Carvalho ChehabFlow 3618*577a7ad3SMauro Carvalho Chehab~~~~ 3619*577a7ad3SMauro Carvalho Chehab 3620*577a7ad3SMauro Carvalho ChehabThis section describes, in general, the order of events when handling DMA 3621*577a7ad3SMauro Carvalho Chehabtransfers. Detailed information follows this section. 3622*577a7ad3SMauro Carvalho Chehab 3623*577a7ad3SMauro Carvalho Chehab- The card raises the Encoder interrupt. 3624*577a7ad3SMauro Carvalho Chehab- The driver reads the transfer type, offset and size from Mailbox #10. 3625*577a7ad3SMauro Carvalho Chehab- The driver constructs the scatter-gather array from enough free dma buffers 3626*577a7ad3SMauro Carvalho Chehab to cover the size. 3627*577a7ad3SMauro Carvalho Chehab- The driver schedules the DMA transfer via the ScheduleDMAtoHost API call. 3628*577a7ad3SMauro Carvalho Chehab- The card raises the DMA Complete interrupt. 3629*577a7ad3SMauro Carvalho Chehab- The driver checks the DMA status register for any errors. 3630*577a7ad3SMauro Carvalho Chehab- The driver post-processes the newly transferred buffers. 3631*577a7ad3SMauro Carvalho Chehab 3632*577a7ad3SMauro Carvalho ChehabNOTE! It is possible that the Encoder and DMA Complete interrupts get raised 3633*577a7ad3SMauro Carvalho Chehabsimultaneously. (End of the last, start of the next, etc.) 3634*577a7ad3SMauro Carvalho Chehab 3635*577a7ad3SMauro Carvalho ChehabMailbox #10 3636*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~ 3637*577a7ad3SMauro Carvalho Chehab 3638*577a7ad3SMauro Carvalho ChehabThe Flags, Command, Return Value and Timeout fields are ignored. 3639*577a7ad3SMauro Carvalho Chehab 3640*577a7ad3SMauro Carvalho Chehab- Name: Mailbox #10 3641*577a7ad3SMauro Carvalho Chehab- Results[0]: Type: 0: MPEG. 3642*577a7ad3SMauro Carvalho Chehab- Results[1]: Offset: The position relative to the card's memory space. 3643*577a7ad3SMauro Carvalho Chehab- Results[2]: Size: The exact number of bytes to transfer. 3644*577a7ad3SMauro Carvalho Chehab 3645*577a7ad3SMauro Carvalho ChehabMy speculation is that since the StartCapture API has a capture type of "RAW" 3646*577a7ad3SMauro Carvalho Chehabavailable, that the type field will have other values that correspond to YUV 3647*577a7ad3SMauro Carvalho Chehaband PCM data. 3648*577a7ad3SMauro Carvalho Chehab 3649*577a7ad3SMauro Carvalho ChehabScatter-Gather Array 3650*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~ 3651*577a7ad3SMauro Carvalho Chehab 3652*577a7ad3SMauro Carvalho ChehabThe scatter-gather array is a contiguously allocated block of memory that 3653*577a7ad3SMauro Carvalho Chehabtells the card the source and destination of each data-block to transfer. 3654*577a7ad3SMauro Carvalho ChehabCard "addresses" are derived from the offset supplied by Mailbox #10. Host 3655*577a7ad3SMauro Carvalho Chehabaddresses are the physical memory location of the target DMA buffer. 3656*577a7ad3SMauro Carvalho Chehab 3657*577a7ad3SMauro Carvalho ChehabEach S-G array element is a struct of three 32-bit words. The first word is 3658*577a7ad3SMauro Carvalho Chehabthe source address, the second is the destination address. Both take up the 3659*577a7ad3SMauro Carvalho Chehabentire 32 bits. The lowest 18 bits of the third word is the transfer byte 3660*577a7ad3SMauro Carvalho Chehabcount. The high-bit of the third word is the "last" flag. The last-flag tells 3661*577a7ad3SMauro Carvalho Chehabthe card to raise the DMA_DONE interrupt. From hard personal experience, if 3662*577a7ad3SMauro Carvalho Chehabyou forget to set this bit, the card will still "work" but the stream will 3663*577a7ad3SMauro Carvalho Chehabmost likely get corrupted. 3664*577a7ad3SMauro Carvalho Chehab 3665*577a7ad3SMauro Carvalho ChehabThe transfer count must be a multiple of 256. Therefore, the driver will need 3666*577a7ad3SMauro Carvalho Chehabto track how much data in the target buffer is valid and deal with it 3667*577a7ad3SMauro Carvalho Chehabaccordingly. 3668*577a7ad3SMauro Carvalho Chehab 3669*577a7ad3SMauro Carvalho ChehabArray Element: 3670*577a7ad3SMauro Carvalho Chehab 3671*577a7ad3SMauro Carvalho Chehab- 32-bit Source Address 3672*577a7ad3SMauro Carvalho Chehab- 32-bit Destination Address 3673*577a7ad3SMauro Carvalho Chehab- 14-bit reserved (high bit is the last flag) 3674*577a7ad3SMauro Carvalho Chehab- 18-bit byte count 3675*577a7ad3SMauro Carvalho Chehab 3676*577a7ad3SMauro Carvalho ChehabDMA Transfer Status 3677*577a7ad3SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~ 3678*577a7ad3SMauro Carvalho Chehab 3679*577a7ad3SMauro Carvalho ChehabRegister 0x0004 holds the DMA Transfer Status: 3680*577a7ad3SMauro Carvalho Chehab 3681*577a7ad3SMauro Carvalho Chehab- bit 0: read completed 3682*577a7ad3SMauro Carvalho Chehab- bit 1: write completed 3683*577a7ad3SMauro Carvalho Chehab- bit 2: DMA read error 3684*577a7ad3SMauro Carvalho Chehab- bit 3: DMA write error 3685*577a7ad3SMauro Carvalho Chehab- bit 4: Scatter-Gather array error 3686