Based on kernel version 4.7.2. Page generated on 2016-08-22 22:48 EST.
1 OSD 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_OSD_GET_FRAMEBUFFER 9 Enum 65/0x41 10 Description 11 Return base and length of contiguous OSD memory. 12 Result[0] 13 OSD base address 14 Result[1] 15 OSD length 16 17 ------------------------------------------------------------------------------- 18 19 Name CX2341X_OSD_GET_PIXEL_FORMAT 20 Enum 66/0x42 21 Description 22 Query OSD format 23 Result[0] 24 0=8bit index 25 1=16bit RGB 5:6:5 26 2=16bit ARGB 1:5:5:5 27 3=16bit ARGB 1:4:4:4 28 4=32bit ARGB 8:8:8:8 29 30 ------------------------------------------------------------------------------- 31 32 Name CX2341X_OSD_SET_PIXEL_FORMAT 33 Enum 67/0x43 34 Description 35 Assign pixel format 36 Param[0] 37 0=8bit index 38 1=16bit RGB 5:6:5 39 2=16bit ARGB 1:5:5:5 40 3=16bit ARGB 1:4:4:4 41 4=32bit ARGB 8:8:8:8 42 43 ------------------------------------------------------------------------------- 44 45 Name CX2341X_OSD_GET_STATE 46 Enum 68/0x44 47 Description 48 Query OSD state 49 Result[0] 50 Bit 0 0=off, 1=on 51 Bits 1:2 alpha control 52 Bits 3:5 pixel format 53 54 ------------------------------------------------------------------------------- 55 56 Name CX2341X_OSD_SET_STATE 57 Enum 69/0x45 58 Description 59 OSD switch 60 Param[0] 61 0=off, 1=on 62 63 ------------------------------------------------------------------------------- 64 65 Name CX2341X_OSD_GET_OSD_COORDS 66 Enum 70/0x46 67 Description 68 Retrieve coordinates of OSD area blended with video 69 Result[0] 70 OSD buffer address 71 Result[1] 72 Stride in pixels 73 Result[2] 74 Lines in OSD buffer 75 Result[3] 76 Horizontal offset in buffer 77 Result[4] 78 Vertical offset in buffer 79 80 ------------------------------------------------------------------------------- 81 82 Name CX2341X_OSD_SET_OSD_COORDS 83 Enum 71/0x47 84 Description 85 Assign the coordinates of the OSD area to blend with video 86 Param[0] 87 buffer address 88 Param[1] 89 buffer stride in pixels 90 Param[2] 91 lines in buffer 92 Param[3] 93 horizontal offset 94 Param[4] 95 vertical offset 96 97 ------------------------------------------------------------------------------- 98 99 Name CX2341X_OSD_GET_SCREEN_COORDS 100 Enum 72/0x48 101 Description 102 Retrieve OSD screen area coordinates 103 Result[0] 104 top left horizontal offset 105 Result[1] 106 top left vertical offset 107 Result[2] 108 bottom right horizontal offset 109 Result[3] 110 bottom right vertical offset 111 112 ------------------------------------------------------------------------------- 113 114 Name CX2341X_OSD_SET_SCREEN_COORDS 115 Enum 73/0x49 116 Description 117 Assign the coordinates of the screen area to blend with video 118 Param[0] 119 top left horizontal offset 120 Param[1] 121 top left vertical offset 122 Param[2] 123 bottom left horizontal offset 124 Param[3] 125 bottom left vertical offset 126 127 ------------------------------------------------------------------------------- 128 129 Name CX2341X_OSD_GET_GLOBAL_ALPHA 130 Enum 74/0x4A 131 Description 132 Retrieve OSD global alpha 133 Result[0] 134 global alpha: 0=off, 1=on 135 Result[1] 136 bits 0:7 global alpha 137 138 ------------------------------------------------------------------------------- 139 140 Name CX2341X_OSD_SET_GLOBAL_ALPHA 141 Enum 75/0x4B 142 Description 143 Update global alpha 144 Param[0] 145 global alpha: 0=off, 1=on 146 Param[1] 147 global alpha (8 bits) 148 Param[2] 149 local alpha: 0=on, 1=off 150 151 ------------------------------------------------------------------------------- 152 153 Name CX2341X_OSD_SET_BLEND_COORDS 154 Enum 78/0x4C 155 Description 156 Move start of blending area within display buffer 157 Param[0] 158 horizontal offset in buffer 159 Param[1] 160 vertical offset in buffer 161 162 ------------------------------------------------------------------------------- 163 164 Name CX2341X_OSD_GET_FLICKER_STATE 165 Enum 79/0x4F 166 Description 167 Retrieve flicker reduction module state 168 Result[0] 169 flicker state: 0=off, 1=on 170 171 ------------------------------------------------------------------------------- 172 173 Name CX2341X_OSD_SET_FLICKER_STATE 174 Enum 80/0x50 175 Description 176 Set flicker reduction module state 177 Param[0] 178 State: 0=off, 1=on 179 180 ------------------------------------------------------------------------------- 181 182 Name CX2341X_OSD_BLT_COPY 183 Enum 82/0x52 184 Description 185 BLT copy 186 Param[0] 187 '0000' zero 188 '0001' ~destination AND ~source 189 '0010' ~destination AND source 190 '0011' ~destination 191 '0100' destination AND ~source 192 '0101' ~source 193 '0110' destination XOR source 194 '0111' ~destination OR ~source 195 '1000' ~destination AND ~source 196 '1001' destination XNOR source 197 '1010' source 198 '1011' ~destination OR source 199 '1100' destination 200 '1101' destination OR ~source 201 '1110' destination OR source 202 '1111' one 203 204 Param[1] 205 Resulting alpha blending 206 '01' source_alpha 207 '10' destination_alpha 208 '11' source_alpha*destination_alpha+1 209 (zero if both source and destination alpha are zero) 210 Param[2] 211 '00' output_pixel = source_pixel 212 213 '01' if source_alpha=0: 214 output_pixel = destination_pixel 215 if 256 > source_alpha > 1: 216 output_pixel = ((source_alpha + 1)*source_pixel + 217 (255 - source_alpha)*destination_pixel)/256 218 219 '10' if destination_alpha=0: 220 output_pixel = source_pixel 221 if 255 > destination_alpha > 0: 222 output_pixel = ((255 - destination_alpha)*source_pixel + 223 (destination_alpha + 1)*destination_pixel)/256 224 225 '11' if source_alpha=0: 226 source_temp = 0 227 if source_alpha=255: 228 source_temp = source_pixel*256 229 if 255 > source_alpha > 0: 230 source_temp = source_pixel*(source_alpha + 1) 231 if destination_alpha=0: 232 destination_temp = 0 233 if destination_alpha=255: 234 destination_temp = destination_pixel*256 235 if 255 > destination_alpha > 0: 236 destination_temp = destination_pixel*(destination_alpha + 1) 237 output_pixel = (source_temp + destination_temp)/256 238 Param[3] 239 width 240 Param[4] 241 height 242 Param[5] 243 destination pixel mask 244 Param[6] 245 destination rectangle start address 246 Param[7] 247 destination stride in dwords 248 Param[8] 249 source stride in dwords 250 Param[9] 251 source rectangle start address 252 253 ------------------------------------------------------------------------------- 254 255 Name CX2341X_OSD_BLT_FILL 256 Enum 83/0x53 257 Description 258 BLT fill color 259 Param[0] 260 Same as Param[0] on API 0x52 261 Param[1] 262 Same as Param[1] on API 0x52 263 Param[2] 264 Same as Param[2] on API 0x52 265 Param[3] 266 width 267 Param[4] 268 height 269 Param[5] 270 destination pixel mask 271 Param[6] 272 destination rectangle start address 273 Param[7] 274 destination stride in dwords 275 Param[8] 276 color fill value 277 278 ------------------------------------------------------------------------------- 279 280 Name CX2341X_OSD_BLT_TEXT 281 Enum 84/0x54 282 Description 283 BLT for 8 bit alpha text source 284 Param[0] 285 Same as Param[0] on API 0x52 286 Param[1] 287 Same as Param[1] on API 0x52 288 Param[2] 289 Same as Param[2] on API 0x52 290 Param[3] 291 width 292 Param[4] 293 height 294 Param[5] 295 destination pixel mask 296 Param[6] 297 destination rectangle start address 298 Param[7] 299 destination stride in dwords 300 Param[8] 301 source stride in dwords 302 Param[9] 303 source rectangle start address 304 Param[10] 305 color fill value 306 307 ------------------------------------------------------------------------------- 308 309 Name CX2341X_OSD_SET_FRAMEBUFFER_WINDOW 310 Enum 86/0x56 311 Description 312 Positions the main output window on the screen. The coordinates must be 313 such that the entire window fits on the screen. 314 Param[0] 315 window width 316 Param[1] 317 window height 318 Param[2] 319 top left window corner horizontal offset 320 Param[3] 321 top left window corner vertical offset 322 323 ------------------------------------------------------------------------------- 324 325 Name CX2341X_OSD_SET_CHROMA_KEY 326 Enum 96/0x60 327 Description 328 Chroma key switch and color 329 Param[0] 330 state: 0=off, 1=on 331 Param[1] 332 color 333 334 ------------------------------------------------------------------------------- 335 336 Name CX2341X_OSD_GET_ALPHA_CONTENT_INDEX 337 Enum 97/0x61 338 Description 339 Retrieve alpha content index 340 Result[0] 341 alpha content index, Range 0:15 342 343 ------------------------------------------------------------------------------- 344 345 Name CX2341X_OSD_SET_ALPHA_CONTENT_INDEX 346 Enum 98/0x62 347 Description 348 Assign alpha content index 349 Param[0] 350 alpha content index, range 0:15