Based on kernel version 4.7.2. Page generated on 2016-08-22 22:48 EST.
1 Decoder firmware API description 2 ================================ 3 4 Note: this API is part of the decoder firmware, so it's cx23415 only. 5 6 ------------------------------------------------------------------------------- 7 8 Name CX2341X_DEC_PING_FW 9 Enum 0/0x00 10 Description 11 This API call does nothing. It may be used to check if the firmware 12 is responding. 13 14 ------------------------------------------------------------------------------- 15 16 Name CX2341X_DEC_START_PLAYBACK 17 Enum 1/0x01 18 Description 19 Begin or resume playback. 20 Param[0] 21 0 based frame number in GOP to begin playback from. 22 Param[1] 23 Specifies the number of muted audio frames to play before normal 24 audio resumes. (This is not implemented in the firmware, leave at 0) 25 26 ------------------------------------------------------------------------------- 27 28 Name CX2341X_DEC_STOP_PLAYBACK 29 Enum 2/0x02 30 Description 31 Ends playback and clears all decoder buffers. If PTS is not zero, 32 playback stops at specified PTS. 33 Param[0] 34 Display 0=last frame, 1=black 35 Note: this takes effect immediately, so if you want to wait for a PTS, 36 then use '0', otherwise the screen goes to black at once. 37 You can call this later (even if there is no playback) with a 1 value 38 to set the screen to black. 39 Param[1] 40 PTS low 41 Param[2] 42 PTS high 43 44 ------------------------------------------------------------------------------- 45 46 Name CX2341X_DEC_SET_PLAYBACK_SPEED 47 Enum 3/0x03 48 Description 49 Playback stream at speed other than normal. There are two modes of 50 operation: 51 Smooth: host transfers entire stream and firmware drops unused 52 frames. 53 Coarse: host drops frames based on indexing as required to achieve 54 desired speed. 55 Param[0] 56 Bitmap: 57 0:7 0 normal 58 1 fast only "1.5 times" 59 n nX fast, 1/nX slow 60 30 Framedrop: 61 '0' during 1.5 times play, every other B frame is dropped 62 '1' during 1.5 times play, stream is unchanged (bitrate 63 must not exceed 8mbps) 64 31 Speed: 65 '0' slow 66 '1' fast 67 Note: n is limited to 2. Anything higher does not result in 68 faster playback. Instead the host should start dropping frames. 69 Param[1] 70 Direction: 0=forward, 1=reverse 71 Note: to make reverse playback work you have to write full GOPs in 72 reverse order. 73 Param[2] 74 Picture mask: 75 1=I frames 76 3=I, P frames 77 7=I, P, B frames 78 Param[3] 79 B frames per GOP (for reverse play only) 80 Note: for reverse playback the Picture Mask should be set to I or I, P. 81 Adding B frames to the mask will result in corrupt video. This field 82 has to be set to the correct value in order to keep the timing correct. 83 Param[4] 84 Mute audio: 0=disable, 1=enable 85 Param[5] 86 Display 0=frame, 1=field 87 Param[6] 88 Specifies the number of muted audio frames to play before normal audio 89 resumes. (Not implemented in the firmware, leave at 0) 90 91 ------------------------------------------------------------------------------- 92 93 Name CX2341X_DEC_STEP_VIDEO 94 Enum 5/0x05 95 Description 96 Each call to this API steps the playback to the next unit defined below 97 in the current playback direction. 98 Param[0] 99 0=frame, 1=top field, 2=bottom field 100 101 ------------------------------------------------------------------------------- 102 103 Name CX2341X_DEC_SET_DMA_BLOCK_SIZE 104 Enum 8/0x08 105 Description 106 Set DMA transfer block size. Counterpart to API 0xC9 107 Param[0] 108 DMA transfer block size in bytes. A different size may be specified 109 when issuing the DMA transfer command. 110 111 ------------------------------------------------------------------------------- 112 113 Name CX2341X_DEC_GET_XFER_INFO 114 Enum 9/0x09 115 Description 116 This API call may be used to detect an end of stream condition. 117 Result[0] 118 Stream type 119 Result[1] 120 Address offset 121 Result[2] 122 Maximum bytes to transfer 123 Result[3] 124 Buffer fullness 125 126 ------------------------------------------------------------------------------- 127 128 Name CX2341X_DEC_GET_DMA_STATUS 129 Enum 10/0x0A 130 Description 131 Status of the last DMA transfer 132 Result[0] 133 Bit 1 set means transfer complete 134 Bit 2 set means DMA error 135 Bit 3 set means linked list error 136 Result[1] 137 DMA type: 0=MPEG, 1=OSD, 2=YUV 138 139 ------------------------------------------------------------------------------- 140 141 Name CX2341X_DEC_SCHED_DMA_FROM_HOST 142 Enum 11/0x0B 143 Description 144 Setup DMA from host operation. Counterpart to API 0xCC 145 Param[0] 146 Memory address of link list 147 Param[1] 148 Total # of bytes to transfer 149 Param[2] 150 DMA type (0=MPEG, 1=OSD, 2=YUV) 151 152 ------------------------------------------------------------------------------- 153 154 Name CX2341X_DEC_PAUSE_PLAYBACK 155 Enum 13/0x0D 156 Description 157 Freeze playback immediately. In this mode, when internal buffers are 158 full, no more data will be accepted and data request IRQs will be 159 masked. 160 Param[0] 161 Display: 0=last frame, 1=black 162 163 ------------------------------------------------------------------------------- 164 165 Name CX2341X_DEC_HALT_FW 166 Enum 14/0x0E 167 Description 168 The firmware is halted and no further API calls are serviced until 169 the firmware is uploaded again. 170 171 ------------------------------------------------------------------------------- 172 173 Name CX2341X_DEC_SET_STANDARD 174 Enum 16/0x10 175 Description 176 Selects display standard 177 Param[0] 178 0=NTSC, 1=PAL 179 180 ------------------------------------------------------------------------------- 181 182 Name CX2341X_DEC_GET_VERSION 183 Enum 17/0x11 184 Description 185 Returns decoder firmware version information 186 Result[0] 187 Version bitmask: 188 Bits 0:15 build 189 Bits 16:23 minor 190 Bits 24:31 major 191 192 ------------------------------------------------------------------------------- 193 194 Name CX2341X_DEC_SET_STREAM_INPUT 195 Enum 20/0x14 196 Description 197 Select decoder stream input port 198 Param[0] 199 0=memory (default), 1=streaming 200 201 ------------------------------------------------------------------------------- 202 203 Name CX2341X_DEC_GET_TIMING_INFO 204 Enum 21/0x15 205 Description 206 Returns timing information from start of playback 207 Result[0] 208 Frame count by decode order 209 Result[1] 210 Video PTS bits 0:31 by display order 211 Result[2] 212 Video PTS bit 32 by display order 213 Result[3] 214 SCR bits 0:31 by display order 215 Result[4] 216 SCR bit 32 by display order 217 218 ------------------------------------------------------------------------------- 219 220 Name CX2341X_DEC_SET_AUDIO_MODE 221 Enum 22/0x16 222 Description 223 Select audio mode 224 Param[0] 225 Dual mono mode action 226 0=Stereo, 1=Left, 2=Right, 3=Mono, 4=Swap, -1=Unchanged 227 Param[1] 228 Stereo mode action: 229 0=Stereo, 1=Left, 2=Right, 3=Mono, 4=Swap, -1=Unchanged 230 231 ------------------------------------------------------------------------------- 232 233 Name CX2341X_DEC_SET_EVENT_NOTIFICATION 234 Enum 23/0x17 235 Description 236 Setup firmware to notify the host about a particular event. 237 Counterpart to API 0xD5 238 Param[0] 239 Event: 0=Audio mode change between mono, (joint) stereo and dual channel. 240 Event: 3=Decoder started 241 Event: 4=Unknown: goes off 10-15 times per second while decoding. 242 Event: 5=Some sync event: goes off once per frame. 243 Param[1] 244 Notification 0=disabled, 1=enabled 245 Param[2] 246 Interrupt bit 247 Param[3] 248 Mailbox slot, -1 if no mailbox required. 249 250 ------------------------------------------------------------------------------- 251 252 Name CX2341X_DEC_SET_DISPLAY_BUFFERS 253 Enum 24/0x18 254 Description 255 Number of display buffers. To decode all frames in reverse playback you 256 must use nine buffers. 257 Param[0] 258 0=six buffers, 1=nine buffers 259 260 ------------------------------------------------------------------------------- 261 262 Name CX2341X_DEC_EXTRACT_VBI 263 Enum 25/0x19 264 Description 265 Extracts VBI data 266 Param[0] 267 0=extract from extension & user data, 1=extract from private packets 268 Result[0] 269 VBI table location 270 Result[1] 271 VBI table size 272 273 ------------------------------------------------------------------------------- 274 275 Name CX2341X_DEC_SET_DECODER_SOURCE 276 Enum 26/0x1A 277 Description 278 Selects decoder source. Ensure that the parameters passed to this 279 API match the encoder settings. 280 Param[0] 281 Mode: 0=MPEG from host, 1=YUV from encoder, 2=YUV from host 282 Param[1] 283 YUV picture width 284 Param[2] 285 YUV picture height 286 Param[3] 287 Bitmap: see Param[0] of API 0xBD 288 289 ------------------------------------------------------------------------------- 290 291 Name CX2341X_DEC_SET_PREBUFFERING 292 Enum 30/0x1E 293 Description 294 Decoder prebuffering, when enabled up to 128KB are buffered for 295 streams <8mpbs or 640KB for streams >8mbps 296 Param[0] 297 0=off, 1=on