| 1 | /*************************************************************************** |
|---|
| 2 | * Copyright (c) 2003-2009, Broadcom Corporation |
|---|
| 3 | * All Rights Reserved |
|---|
| 4 | * Confidential Property of Broadcom Corporation |
|---|
| 5 | * |
|---|
| 6 | * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE |
|---|
| 7 | * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR |
|---|
| 8 | * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. |
|---|
| 9 | * |
|---|
| 10 | * $brcm_Workfile: bsettop_display.h $ |
|---|
| 11 | * $brcm_Revision: 42 $ |
|---|
| 12 | * $brcm_Date: 8/4/09 12:41p $ |
|---|
| 13 | * |
|---|
| 14 | * Module Description: |
|---|
| 15 | * |
|---|
| 16 | * Revision History: |
|---|
| 17 | * |
|---|
| 18 | * $brcm_Log: /BSEAV/api/include/bsettop_display.h $ |
|---|
| 19 | * |
|---|
| 20 | * 42 8/4/09 12:41p vsilyaev |
|---|
| 21 | * PR49558: Add support to control av mute delay before and after format |
|---|
| 22 | * change separately. |
|---|
| 23 | * |
|---|
| 24 | * PR49558/1 8/4/09 12:25p vle |
|---|
| 25 | * PR49558: Add support to control av mute delay before and after format |
|---|
| 26 | * change separately. |
|---|
| 27 | * |
|---|
| 28 | * 41 5/11/09 3:35p vsilyaev |
|---|
| 29 | * PR53373: Add HDMI 1.3a support, deep color, to Brutus/nexus |
|---|
| 30 | * |
|---|
| 31 | * PR53373_DeepColor/1 4/16/09 3:56p vle |
|---|
| 32 | * PR53373: Add HDMI 1.3a support, deep color, to Brutus/nexus |
|---|
| 33 | * |
|---|
| 34 | * 40 2/20/09 1:39p jgarrett |
|---|
| 35 | * PR 52355: Adding ANR |
|---|
| 36 | * |
|---|
| 37 | * 39 9/17/08 4:16p jgarrett |
|---|
| 38 | * PR 47061: Adding audio transcode options |
|---|
| 39 | * |
|---|
| 40 | * 38 8/13/08 4:28p vsilyaev |
|---|
| 41 | * PR 44168: Add new API allowing application to put enable CEC core to |
|---|
| 42 | * receive messages. |
|---|
| 43 | * |
|---|
| 44 | * PR44168/1 8/13/08 3:47p vle |
|---|
| 45 | * PR 44168: Add new API allowing application to put enable CEC core to |
|---|
| 46 | * receive messages. |
|---|
| 47 | * |
|---|
| 48 | * 37 4/3/08 11:34a vsilyaev |
|---|
| 49 | * PR32279: Rework splitscreen demo mode |
|---|
| 50 | * |
|---|
| 51 | * PR32279/2 4/2/08 4:33p jtna |
|---|
| 52 | * PR32279: Rework splitscreen demo mode |
|---|
| 53 | * |
|---|
| 54 | * PR32279/1 4/2/08 11:42a jtna |
|---|
| 55 | * PR32279: Rework splitscreen demo mode |
|---|
| 56 | * |
|---|
| 57 | * 36 3/28/08 2:47p vsilyaev |
|---|
| 58 | * PR41000: PR41000: Add hdcp_disable_blue_screen variable |
|---|
| 59 | * PR41000: Add Simplay test mode and additional HDCP error state. |
|---|
| 60 | * |
|---|
| 61 | * PR41000/2 3/28/08 11:23a vle |
|---|
| 62 | * PR41000: Add hdcp_disable_blue_screen variable |
|---|
| 63 | * |
|---|
| 64 | * PR41000/1 3/27/08 6:18p vle |
|---|
| 65 | * PR41000: Add Simplay test mode and additional HDCP error state. |
|---|
| 66 | * |
|---|
| 67 | * 35 3/14/08 10:16a jgarrett |
|---|
| 68 | * PR 37781: Merging to main branch |
|---|
| 69 | * |
|---|
| 70 | * PR37781/3 3/13/08 9:51p vle |
|---|
| 71 | * PR 37781: Update naming convention on function prototype. |
|---|
| 72 | * Pass parameter as pointer, not by reference |
|---|
| 73 | * |
|---|
| 74 | * PR37781/2 3/12/08 3:23p vle |
|---|
| 75 | * PR 37781: Update naming conventions |
|---|
| 76 | * |
|---|
| 77 | * PR37781/1 3/11/08 6:44p vle |
|---|
| 78 | * PR 37781: Add framework for CEC support |
|---|
| 79 | * |
|---|
| 80 | * 34 2/28/08 2:08p vsilyaev |
|---|
| 81 | * PR 34858: 30616, 37945: Fixed typo |
|---|
| 82 | * |
|---|
| 83 | * 33 2/21/08 1:37p vsilyaev |
|---|
| 84 | * PR 34858: 30616, 37945: Added boutput_spdif_channel_status |
|---|
| 85 | * |
|---|
| 86 | * 32 12/4/07 5:39p vsilyaev |
|---|
| 87 | * PR 33367: Added audio delay settings |
|---|
| 88 | * |
|---|
| 89 | * 31 11/28/07 4:38p vsilyaev |
|---|
| 90 | * PR 36971: Add Brutus configuration delay after AVMute and before |
|---|
| 91 | * AVUnmute. |
|---|
| 92 | * |
|---|
| 93 | * PR36971/1 11/28/07 3:37p vle |
|---|
| 94 | * PR 36971: Add Brutus configuration delay after AVMute and before |
|---|
| 95 | * AVUnmute. |
|---|
| 96 | * |
|---|
| 97 | * 30 10/29/07 10:46a vsilyaev |
|---|
| 98 | * PR 36308: Added copyright and catagory code |
|---|
| 99 | * |
|---|
| 100 | * 29 9/14/07 3:30p jgarrett |
|---|
| 101 | * PR30689: PR30689: Add second CVBS output support in one display on |
|---|
| 102 | * 7400. |
|---|
| 103 | * |
|---|
| 104 | * PR30689/1 9/13/07 6:41p mward |
|---|
| 105 | * PR30689: Add second CVBS output support in one display on 7400. |
|---|
| 106 | * |
|---|
| 107 | * 28 8/22/07 5:29p jgarrett |
|---|
| 108 | * PR 32044: Merging to main branch |
|---|
| 109 | * |
|---|
| 110 | * 7405_pip_support/1 8/21/07 2:38p katrep |
|---|
| 111 | * PR34204: Added mosaic mode support for 7405. |
|---|
| 112 | * |
|---|
| 113 | * PR32044/1 6/26/07 5:54p jgarrett |
|---|
| 114 | * PR 32044: Adding Mosaic Mode APIs |
|---|
| 115 | * |
|---|
| 116 | * 27 6/20/07 5:30p jgarrett |
|---|
| 117 | * PR 26474: Adding boutput_hdmi_status and hdcp_status_callback |
|---|
| 118 | * |
|---|
| 119 | * 26 6/14/07 10:11a jgarrett |
|---|
| 120 | * PR 32123: Adding boutput_hdmi_xxx |
|---|
| 121 | * |
|---|
| 122 | * PR32123/1 6/13/07 4:30p vle |
|---|
| 123 | * PR 32123: Rename HDMI API's name |
|---|
| 124 | * |
|---|
| 125 | * 25 5/16/07 3:13p vsilyaev |
|---|
| 126 | * PR 30807: Fixed typo |
|---|
| 127 | * |
|---|
| 128 | * 24 5/16/07 3:10p vsilyaev |
|---|
| 129 | * PR30807: Need an API to read HDMI device tree physical address |
|---|
| 130 | * |
|---|
| 131 | * PR30807/1 5/16/07 1:48p dlwin |
|---|
| 132 | * PR 30807: Need an API to read HDMI device tree physical address |
|---|
| 133 | * |
|---|
| 134 | * 23 5/3/07 5:24p vsilyaev |
|---|
| 135 | * PR 24374: Fixed description of bdecode_window_open and |
|---|
| 136 | * bdecode_window_clone functions |
|---|
| 137 | * |
|---|
| 138 | * 22 4/26/07 5:48p vsilyaev |
|---|
| 139 | * PR 29929: Added background color for video compositor |
|---|
| 140 | * |
|---|
| 141 | * PR26747_Plugfest8/1 4/16/07 8:28p vle |
|---|
| 142 | * PR 26747: Added feature to report HDCP info/failures using on screen |
|---|
| 143 | * graphics |
|---|
| 144 | * |
|---|
| 145 | * 21 4/11/07 4:28p vsilyaev |
|---|
| 146 | * PR 29145: Added DCS type |
|---|
| 147 | * |
|---|
| 148 | * 20 2/23/07 3:41p jgarrett |
|---|
| 149 | * PR 28036: Adding LAB/CAB adjustments |
|---|
| 150 | * |
|---|
| 151 | * 19 2/8/07 4:44p jgarrett |
|---|
| 152 | * PR 27131: Fixing comment text |
|---|
| 153 | * |
|---|
| 154 | * 18 1/23/07 4:20p vsilyaev |
|---|
| 155 | * PR25913: Added country code for the RF configuration |
|---|
| 156 | * |
|---|
| 157 | * 17 12/14/06 6:31p bandrews |
|---|
| 158 | * PR24597: Deprecated refresh_rate; added frame_rate |
|---|
| 159 | * |
|---|
| 160 | * 16 11/30/06 7:20p jgarrett |
|---|
| 161 | * PR 24698: Revising DNR control to allow separate configs for |
|---|
| 162 | * MNR,BNR,DCR. |
|---|
| 163 | * |
|---|
| 164 | * 15 10/20/06 2:05p erickson |
|---|
| 165 | * PR24374: clarify bdecode_window_settings.cliprect docs. |
|---|
| 166 | * |
|---|
| 167 | * 14 6/19/06 5:07p rgreen |
|---|
| 168 | * PR20869, PR20866: |
|---|
| 169 | * Add Settop API option for HDMI Pre-Emphasis ; disabled by default |
|---|
| 170 | * Add Settop API option for HDMI HDCP Pj Checking ; enabled by default |
|---|
| 171 | * Add Settop API option to specify retry delay between HDCP |
|---|
| 172 | * Authentications attempts |
|---|
| 173 | * Use HDMI vs DVI in comments |
|---|
| 174 | * |
|---|
| 175 | * Use HDMI vs DVI in comments |
|---|
| 176 | * |
|---|
| 177 | * 13 5/23/06 4:50p erickson |
|---|
| 178 | * PR21004: boutput_rf_set_audio_volume should only set mute. audio volume |
|---|
| 179 | * is set via the DAC's which feed into RFM. |
|---|
| 180 | * |
|---|
| 181 | * 12 5/10/06 12:03p jgarrett |
|---|
| 182 | * PR 17747: Allowing app to set HDMI audio mode |
|---|
| 183 | * |
|---|
| 184 | * 11 5/4/06 8:08p bandrews |
|---|
| 185 | * PR21233: Added copyright and category code to spdif settings |
|---|
| 186 | * |
|---|
| 187 | * 10 5/2/06 2:45p jgarrett |
|---|
| 188 | * PR 21291: Adding boutput_dvi_get_capabilities() |
|---|
| 189 | * |
|---|
| 190 | * 9 4/4/06 9:21p erickson |
|---|
| 191 | * PR17108: rename to DNR |
|---|
| 192 | * |
|---|
| 193 | * 8 12/8/05 3:55p jrubio |
|---|
| 194 | * PR18442: Added Digital Contour Removal structure |
|---|
| 195 | * |
|---|
| 196 | * 7 9/14/05 6:32p rgreen |
|---|
| 197 | * PR16538,PR12828: Prevent failure of bdisplay_set when display format |
|---|
| 198 | * not supported by attached DVI/HDMI monitor. |
|---|
| 199 | * |
|---|
| 200 | * Implement HDMI AvMute in SettopAPI |
|---|
| 201 | * |
|---|
| 202 | * 6 9/8/05 5:18p mphillip |
|---|
| 203 | * PR16870: bdisplay_settings changes to support this |
|---|
| 204 | * |
|---|
| 205 | * 5 4/20/05 3:54p rgreen |
|---|
| 206 | * PR 12953: Force EDID preferred format on HDMI HotPlug Event |
|---|
| 207 | * Add callback to dvi settings to support |
|---|
| 208 | * |
|---|
| 209 | * 4 4/1/05 4:21p rgreen |
|---|
| 210 | * PR12560: Add support for computer (VESA) formata |
|---|
| 211 | * |
|---|
| 212 | * 3 3/29/05 6:27p ikizyan |
|---|
| 213 | * PR14646: Adding a sharpness control |
|---|
| 214 | * |
|---|
| 215 | * 2 3/23/05 1:30p erickson |
|---|
| 216 | * PR12769: added nonlinear scale option |
|---|
| 217 | * |
|---|
| 218 | * 1 2/7/05 7:05p dlwin |
|---|
| 219 | * Merge down for release 2005_REFSW_MERGETOMAIN: |
|---|
| 220 | * |
|---|
| 221 | * Irvine_BSEAVSW_Devel/46 12/17/04 9:23a erickson |
|---|
| 222 | * PR12290: update clone docs |
|---|
| 223 | * |
|---|
| 224 | * Irvine_BSEAVSW_Devel/45 12/3/04 3:28p erickson |
|---|
| 225 | * PR12388: added support for vesa video format settings |
|---|
| 226 | * |
|---|
| 227 | * Irvine_BSEAVSW_Devel/44 11/23/04 9:41a erickson |
|---|
| 228 | * PR13336: added color space conversion parameters for decode_window |
|---|
| 229 | * |
|---|
| 230 | * Irvine_BSEAVSW_Devel/43 10/28/04 2:36p rgreen |
|---|
| 231 | * PR 12953: Move edid_preferred_format from display settings to dvi |
|---|
| 232 | * settings |
|---|
| 233 | * Move code to retrieve preferred EDID format from bdisplay_get to |
|---|
| 234 | * boutput_dvi_get |
|---|
| 235 | * |
|---|
| 236 | * Irvine_BSEAVSW_Devel/42 10/27/04 12:18p erickson |
|---|
| 237 | * PR13096: added bdisplay_settings.mpaa_enabled option |
|---|
| 238 | * |
|---|
| 239 | * Irvine_BSEAVSW_Devel/41 10/8/04 5:30p rgreen |
|---|
| 240 | * PR 12953: Initialize display format to preferred EDID format when |
|---|
| 241 | * DVI/HDMI Rx connected |
|---|
| 242 | * |
|---|
| 243 | * Irvine_BSEAVSW_Devel/40 9/16/04 3:36p erickson |
|---|
| 244 | * PR11081: added box_detect and deinterlacer to bdecode_window_settings |
|---|
| 245 | * and comb_filter to banalog_params |
|---|
| 246 | * |
|---|
| 247 | * Irvine_BSEAVSW_Devel/39 9/13/04 1:58p erickson |
|---|
| 248 | * PR11081: added interlacer option for bdisplay |
|---|
| 249 | * |
|---|
| 250 | * Irvine_BSEAVSW_Devel/38 6/2/04 2:43p erickson |
|---|
| 251 | * PR11204: changed/removed deprecated settop api functions |
|---|
| 252 | * |
|---|
| 253 | * Irvine_BSEAVSW_Devel/36 5/17/04 11:03a erickson |
|---|
| 254 | * PR11135: extended settop api with normalized get/set functions for |
|---|
| 255 | * boutput |
|---|
| 256 | * |
|---|
| 257 | * Irvine_BSEAVSW_Devel/35 12/19/03 4:38p vsilyaev |
|---|
| 258 | * PR 8850: Fixing build of legacy code after merge. |
|---|
| 259 | * |
|---|
| 260 | * Irvine_BSEAVSW_Devel/Irvine_BSEAVSW_Devel_7038/1 12/4/03 1:27p erickson |
|---|
| 261 | * PR8850: initial Brutus support on 7038 |
|---|
| 262 | * |
|---|
| 263 | * Irvine_BSEAVSW_Devel/31 11/11/03 4:55p erickson |
|---|
| 264 | * PR8600: added note about disabling graphics when bdisplay_set is called |
|---|
| 265 | * |
|---|
| 266 | * Irvine_BSEAVSW_Devel/30 11/11/03 11:30a erickson |
|---|
| 267 | * PR8596: add note to api regarding volume control for PCM data only |
|---|
| 268 | * |
|---|
| 269 | * Irvine_BSEAVSW_Devel/29 11/7/03 4:28p erickson |
|---|
| 270 | * PR8583: removing, fixing or implementing TODO's |
|---|
| 271 | * |
|---|
| 272 | * Irvine_BSEAVSW_Devel/28 11/5/03 9:44a erickson |
|---|
| 273 | * no more is_hd, is_pal. use real metrics like interlaced and |
|---|
| 274 | * refresh_rate |
|---|
| 275 | * |
|---|
| 276 | * Irvine_BSEAVSW_Devel/27 11/4/03 2:42p erickson |
|---|
| 277 | * documentation changes |
|---|
| 278 | * |
|---|
| 279 | * Irvine_BSEAVSW_Devel/26 11/4/03 9:01a erickson |
|---|
| 280 | * unpacked some struct definitions in order to work with docjet |
|---|
| 281 | * |
|---|
| 282 | * Irvine_BSEAVSW_Devel/25 11/3/03 12:22p erickson |
|---|
| 283 | * reversed logic on spdif pass_through. still a boolean. |
|---|
| 284 | * |
|---|
| 285 | * Irvine_BSEAVSW_Devel/24 10/31/03 11:58a erickson |
|---|
| 286 | * settop api changes after internal review |
|---|
| 287 | * |
|---|
| 288 | * Irvine_BSEAVSW_Devel/23 10/30/03 9:47a erickson |
|---|
| 289 | * Copied dbg interface so that we can compile out BRCM_DBG_MSG |
|---|
| 290 | * |
|---|
| 291 | * Irvine_BSEAVSW_Devel/22 10/29/03 5:04p erickson |
|---|
| 292 | * PR8253: enable spdif volume contorl |
|---|
| 293 | * |
|---|
| 294 | * Irvine_BSEAVSW_Devel/21 10/28/03 11:26a erickson |
|---|
| 295 | * settop api reworks after internal design view |
|---|
| 296 | * |
|---|
| 297 | * Irvine_BSEAVSW_Devel/20 10/23/03 2:58p erickson |
|---|
| 298 | * added comments regarding aspect ratio |
|---|
| 299 | * |
|---|
| 300 | * Irvine_BSEAVSW_Devel/19 10/22/03 3:23p erickson |
|---|
| 301 | * edited comment for bdecode_window_settings.cliprect |
|---|
| 302 | * |
|---|
| 303 | * Irvine_BSEAVSW_Devel/18 10/22/03 11:22a erickson |
|---|
| 304 | * settop api pass-through type conversion |
|---|
| 305 | * |
|---|
| 306 | * Irvine_BSEAVSW_Devel/17 10/15/03 10:55a erickson |
|---|
| 307 | * added bdisplay_get_format_settings to return more information about an |
|---|
| 308 | * EDisplayFmt |
|---|
| 309 | * |
|---|
| 310 | * Irvine_BSEAVSW_Devel/16 10/1/03 3:01p erickson |
|---|
| 311 | * added bdisplay_lookup_size and some TODO notes |
|---|
| 312 | * |
|---|
| 313 | * Irvine_BSEAVSW_Devel/15 9/30/03 1:13a erickson |
|---|
| 314 | * updated docjet documentation |
|---|
| 315 | * |
|---|
| 316 | * Irvine_BSEAVSW_Devel/14 9/17/03 5:04p erickson |
|---|
| 317 | * updated documentation for DocJet |
|---|
| 318 | * |
|---|
| 319 | * Irvine_BSEAVSW_Devel/13 8/12/03 9:42a erickson |
|---|
| 320 | * changes after pre-review meeting |
|---|
| 321 | * |
|---|
| 322 | * Irvine_BSEAVSW_Devel/12 7/30/03 2:41p erickson |
|---|
| 323 | * boutput_xxx objects no longer have public bobject_id's. |
|---|
| 324 | * |
|---|
| 325 | * Irvine_BSEAVSW_Devel/11 7/30/03 2:08p erickson |
|---|
| 326 | * removed all return value comments because we're standardized and they |
|---|
| 327 | * add nothing |
|---|
| 328 | * |
|---|
| 329 | * Irvine_BSEAVSW_Devel/10 7/30/03 12:14p erickson |
|---|
| 330 | * static allocation of boutput's and default outputs for a display |
|---|
| 331 | * removed decode_window_attach/dettach in favor of clone |
|---|
| 332 | * |
|---|
| 333 | * Irvine_BSEAVSW_Devel/9 7/30/03 10:20a erickson |
|---|
| 334 | * some comments and TODO's |
|---|
| 335 | * |
|---|
| 336 | * Irvine_BSEAVSW_Devel/8 7/29/03 6:03p erickson |
|---|
| 337 | * more rework |
|---|
| 338 | * |
|---|
| 339 | * Irvine_BSEAVSW_Devel/7 7/28/03 4:43p erickson |
|---|
| 340 | * more comment work |
|---|
| 341 | * |
|---|
| 342 | * Irvine_BSEAVSW_Devel/6 7/25/03 8:13p vsilyaev |
|---|
| 343 | * Added component output, fixed compilation errors. |
|---|
| 344 | * |
|---|
| 345 | * Irvine_BSEAVSW_Devel/5 7/25/03 4:22p erickson |
|---|
| 346 | * in the middle of rework, does not compile |
|---|
| 347 | * |
|---|
| 348 | * Irvine_BSEAVSW_Devel/4 7/24/03 4:37p vsilyaev |
|---|
| 349 | * Added support for multiple channels and implemented decode window API. |
|---|
| 350 | * |
|---|
| 351 | * Irvine_BSEAVSW_Devel/3 7/9/03 5:19p erickson |
|---|
| 352 | * rework for new bband_t model |
|---|
| 353 | * |
|---|
| 354 | * Irvine_BSEAVSW_Devel/2 6/26/03 3:59p vsilyaev |
|---|
| 355 | * Declare enum for the component output types. |
|---|
| 356 | * |
|---|
| 357 | * Irvine_BSEAVSW_Devel/1 6/13/03 3:08p vsilyaev |
|---|
| 358 | * SetTop reference API. |
|---|
| 359 | * |
|---|
| 360 | * |
|---|
| 361 | ***************************************************************************/ |
|---|
| 362 | #ifndef BSETTOP_DISPLAY_H__ |
|---|
| 363 | #define BSETTOP_DISPLAY_H__ |
|---|
| 364 | |
|---|
| 365 | #ifdef __cplusplus |
|---|
| 366 | extern "C" |
|---|
| 367 | { |
|---|
| 368 | #endif |
|---|
| 369 | |
|---|
| 370 | /*=******************************************* |
|---|
| 371 | A display is a coordinated set of video/audio outputs that are usually sent |
|---|
| 372 | to one TV set. |
|---|
| 373 | Each display may have multiple outputs (e.g. svideo, composite), but each |
|---|
| 374 | output will carry the same content. |
|---|
| 375 | |
|---|
| 376 | Decode windows are boxes of video content on a display. You control decode |
|---|
| 377 | windows and audio volume through the display API. |
|---|
| 378 | |
|---|
| 379 | Some chips support more than one display (7038, 7320 and Venom2). |
|---|
| 380 | For these systems, you will open two bdisplay_t handles and have one bdecode_window_t handle |
|---|
| 381 | created for each display. |
|---|
| 382 | **********************************************/ |
|---|
| 383 | |
|---|
| 384 | #define boutput_hdmi_cec_max_transmit_length 15 /* + 1 for CEC header length */ |
|---|
| 385 | #define boutput_hdmi_cec_broadcast_address 0xF /* CEC Broadcast address */ |
|---|
| 386 | |
|---|
| 387 | /* |
|---|
| 388 | Summary: |
|---|
| 389 | Open a display. |
|---|
| 390 | Description: |
|---|
| 391 | The new display object will already have default outputs configured. |
|---|
| 392 | You can change the configuration by calling bdisplay_get, making changes, |
|---|
| 393 | then calling bdisplay_set. |
|---|
| 394 | */ |
|---|
| 395 | bdisplay_t bdisplay_open( |
|---|
| 396 | bobject_t display_id /* handle used to identify a particular display */ |
|---|
| 397 | ); |
|---|
| 398 | |
|---|
| 399 | /* |
|---|
| 400 | Summary: |
|---|
| 401 | Close a display. |
|---|
| 402 | Description: |
|---|
| 403 | All decode windows opened or cloned for this display should have already been closed, |
|---|
| 404 | otherwise you get an inconsistent state. |
|---|
| 405 | */ |
|---|
| 406 | void bdisplay_close( |
|---|
| 407 | bdisplay_t display /* handle returned by bdisplay_open */ |
|---|
| 408 | ); |
|---|
| 409 | |
|---|
| 410 | /* |
|---|
| 411 | Summary: |
|---|
| 412 | svideo output handle returned by boutput_svideo_open() |
|---|
| 413 | */ |
|---|
| 414 | typedef struct boutput_svideo *boutput_svideo_t; |
|---|
| 415 | |
|---|
| 416 | /* |
|---|
| 417 | Summary: |
|---|
| 418 | composite output handle returned by boutput_composite_open() |
|---|
| 419 | */ |
|---|
| 420 | typedef struct boutput_composite *boutput_composite_t; |
|---|
| 421 | |
|---|
| 422 | /* |
|---|
| 423 | Summary: |
|---|
| 424 | RF modulator output handle returned by boutput_rf_open() |
|---|
| 425 | */ |
|---|
| 426 | typedef struct boutput_rf *boutput_rf_t; |
|---|
| 427 | |
|---|
| 428 | /** |
|---|
| 429 | Summary: |
|---|
| 430 | Settings for RF output |
|---|
| 431 | **/ |
|---|
| 432 | typedef struct boutput_rf_settings { |
|---|
| 433 | unsigned channel; /* Channel 3 or 4 */ |
|---|
| 434 | char country[2]; /* 2 letter iso3166 country code */ |
|---|
| 435 | } boutput_rf_settings; |
|---|
| 436 | |
|---|
| 437 | /** |
|---|
| 438 | Summary: |
|---|
| 439 | Set new RF settings. |
|---|
| 440 | Description: |
|---|
| 441 | These settings will not be applied until bdisplay_set is called with the |
|---|
| 442 | RF handle assigned. |
|---|
| 443 | **/ |
|---|
| 444 | bresult boutput_rf_set(boutput_rf_t rf, |
|---|
| 445 | const boutput_rf_settings *settings); |
|---|
| 446 | |
|---|
| 447 | /** |
|---|
| 448 | Summary: |
|---|
| 449 | Get the current RF settings. |
|---|
| 450 | **/ |
|---|
| 451 | void boutput_rf_get(boutput_rf_t rf, |
|---|
| 452 | boutput_rf_settings *settings /* [out] */ |
|---|
| 453 | ); |
|---|
| 454 | |
|---|
| 455 | /* |
|---|
| 456 | Summary: |
|---|
| 457 | HDMI output handle returned by boutput_hdmi_open() |
|---|
| 458 | */ |
|---|
| 459 | typedef struct boutput_hdmi *boutput_hdmi_t; |
|---|
| 460 | |
|---|
| 461 | |
|---|
| 462 | /** |
|---|
| 463 | Summary: |
|---|
| 464 | Settings for SPDIF output |
|---|
| 465 | **/ |
|---|
| 466 | typedef struct boutput_spdif_channel_status { |
|---|
| 467 | bool professional_mode; /* [0:0] The professional mode flag. |
|---|
| 468 | TRUE: Professional mode. Other user |
|---|
| 469 | options will not be considered. |
|---|
| 470 | FALSE: Consumer mode. - Read Only*/ |
|---|
| 471 | |
|---|
| 472 | bool pcm; /* [1:1] For output Linear bLinear_PCM=true, |
|---|
| 473 | If output is Compressed bLinear_PCM=false - Read Only */ |
|---|
| 474 | |
|---|
| 475 | bool copyright; /* [2:2] Software CopyRight assert. |
|---|
| 476 | TRUE: CopyRight is asserted |
|---|
| 477 | FALSE: CopyRight is not asserted */ |
|---|
| 478 | |
|---|
| 479 | uint8_t pre_emphasis; /*[3:5] pre-emphasis */ |
|---|
| 480 | |
|---|
| 481 | uint8_t channel_status_mode;/* [6:7] Gives channel status - Read Only*/ |
|---|
| 482 | |
|---|
| 483 | uint8_t category_code; /* [8:15] Category code in spdif channel status, including L-bit */ |
|---|
| 484 | |
|---|
| 485 | uint8_t source_number; /*[16:19] Source number*/ |
|---|
| 486 | |
|---|
| 487 | bool channel_num; /*[20:23] TRUE: Left channel num = 0000 |
|---|
| 488 | Right Channel Num = 0000 |
|---|
| 489 | FALSE: Left channel num = 1000 |
|---|
| 490 | Right Channel Num = 0100 */ |
|---|
| 491 | |
|---|
| 492 | uint8_t sampling_frequency; /*[24:27]Sampling frequency - Read Only*/ |
|---|
| 493 | |
|---|
| 494 | uint8_t clock_accuracy; /* [28:29] Clock Accuracy */ |
|---|
| 495 | |
|---|
| 496 | bool max_word_length; /* [32:32] For setting of 32bit of Channel Status |
|---|
| 497 | Bit 32 0 Maximum audio sample word length is 20 bits |
|---|
| 498 | 1 Maximum audio sample word length is 24 bits */ |
|---|
| 499 | |
|---|
| 500 | uint8_t sample_word_length; /* [33:35] Sample word length */ |
|---|
| 501 | |
|---|
| 502 | uint8_t original_sampling_frequency;/* [36:39] Original sampling frequency*/ |
|---|
| 503 | |
|---|
| 504 | uint8_t cgms_a; /* [40:41] */ |
|---|
| 505 | } boutput_spdif_channel_status; |
|---|
| 506 | |
|---|
| 507 | /* |
|---|
| 508 | Summary: |
|---|
| 509 | Settings returned by bdisplay_get_format_settings |
|---|
| 510 | */ |
|---|
| 511 | typedef struct bvideo_format_settings { |
|---|
| 512 | unsigned width; /* height of video format in pixels */ |
|---|
| 513 | unsigned height; /* width of video format in lines */ |
|---|
| 514 | unsigned refresh_rate; /* 20061213 DEPRECATED -- refresh rate of video format in Hz */ |
|---|
| 515 | bvideo_frame_rate frame_rate; /* 20061213 bandrews - replaces refresh_rate */ |
|---|
| 516 | bool interlaced; |
|---|
| 517 | } bvideo_format_settings; |
|---|
| 518 | |
|---|
| 519 | /* |
|---|
| 520 | Summary: |
|---|
| 521 | HDMI HDCP Status |
|---|
| 522 | */ |
|---|
| 523 | typedef enum boutput_hdmi_hdcp_state |
|---|
| 524 | { |
|---|
| 525 | boutput_hdmi_hdcp_state_internal_err, |
|---|
| 526 | boutput_hdmi_hdcp_state_disabled, |
|---|
| 527 | boutput_hdmi_hdcp_state_init, |
|---|
| 528 | boutput_hdmi_hdcp_state_auth_fail, |
|---|
| 529 | |
|---|
| 530 | boutput_hdmi_hdcp_state_ri_fail, |
|---|
| 531 | boutput_hdmi_hdcp_state_pj_fail, |
|---|
| 532 | boutput_hdmi_hdcp_state_repeater_fail, |
|---|
| 533 | |
|---|
| 534 | boutput_hdmi_hdcp_state_enabled |
|---|
| 535 | } boutput_hdmi_hdcp_state; |
|---|
| 536 | |
|---|
| 537 | /* |
|---|
| 538 | Summary: |
|---|
| 539 | HDMI CEC message type |
|---|
| 540 | */ |
|---|
| 541 | typedef enum boutput_hdmi_cec_message_type |
|---|
| 542 | { |
|---|
| 543 | boutput_hdmi_cec_message_type_transmit = 0, |
|---|
| 544 | boutput_hdmi_cec_message_type_receive = 1 |
|---|
| 545 | } boutput_hdmi_cec_message_type ; |
|---|
| 546 | |
|---|
| 547 | /* |
|---|
| 548 | Summary: |
|---|
| 549 | All information from a received CEC message or to |
|---|
| 550 | transmit a CEC message |
|---|
| 551 | */ |
|---|
| 552 | typedef struct boutput_hdmi_cec_message_data |
|---|
| 553 | { |
|---|
| 554 | boutput_hdmi_cec_message_type message_type; |
|---|
| 555 | uint8_t initiator_addr; |
|---|
| 556 | uint8_t destination_addr; |
|---|
| 557 | uint8_t opcode; |
|---|
| 558 | uint8_t message_buffer[boutput_hdmi_cec_max_transmit_length]; |
|---|
| 559 | uint8_t message_length; |
|---|
| 560 | } boutput_hdmi_cec_message_data; |
|---|
| 561 | |
|---|
| 562 | /* |
|---|
| 563 | Summary: |
|---|
| 564 | All CEC related information from the device. |
|---|
| 565 | */ |
|---|
| 566 | typedef struct boutput_hdmi_cec_configuration |
|---|
| 567 | { |
|---|
| 568 | uint8_t logical_address; |
|---|
| 569 | uint8_t physical_address[2]; |
|---|
| 570 | uint8_t device_type; |
|---|
| 571 | } boutput_hdmi_cec_configuration; |
|---|
| 572 | |
|---|
| 573 | /* |
|---|
| 574 | Summary: |
|---|
| 575 | HDMI deep color mode enum |
|---|
| 576 | */ |
|---|
| 577 | typedef enum boutput_hdmi_color_depth |
|---|
| 578 | { |
|---|
| 579 | boutput_hdmi_color_depth_8bit, |
|---|
| 580 | boutput_hdmi_color_depth_10bit, |
|---|
| 581 | boutput_hdmi_color_depth_12bit, |
|---|
| 582 | boutput_hdmi_color_depth_16bit |
|---|
| 583 | } boutput_hdmi_color_depth; |
|---|
| 584 | |
|---|
| 585 | /** |
|---|
| 586 | Summary: |
|---|
| 587 | Settings for HDMI output |
|---|
| 588 | **/ |
|---|
| 589 | typedef struct boutput_hdmi_settings { |
|---|
| 590 | bvideo_format edid_preferred_format ; /* format preferred by attached DVI/HDMI device */ |
|---|
| 591 | bvideo_format_settings vesa_settings ; /* if format == bvideo_format_vesa, |
|---|
| 592 | then these settings are used. */ |
|---|
| 593 | |
|---|
| 594 | bool hdcp ; |
|---|
| 595 | uint16_t hdcp_failure_retry_delay ; |
|---|
| 596 | bool hdcp_pj_checking_enable ; |
|---|
| 597 | bool preemphasis_support ; |
|---|
| 598 | bool hdcp_disable_blue_screen; /* If true, upon HDCP failure, a OSD message will be displayed on HDMI |
|---|
| 599 | instead of blue screen */ |
|---|
| 600 | bool validate_edid_format; /* If true, bdisplay_set will only accept formats |
|---|
| 601 | that are valid in the attached device's EDID data. */ |
|---|
| 602 | unsigned hdmi_avmute_delay_pre_format_change; /* Delay (in ms) after sending AVMute and before the format change */ |
|---|
| 603 | unsigned hdmi_avmute_delay_post_format_change; /* Delay (in ms) before sending AVUnMute and after the format change */ |
|---|
| 604 | bsettop_callback hdmi_hotplug_callback; /* Called when a device connects */ |
|---|
| 605 | bsettop_callback hdmi_disconnect_callback; /* Called when a device disconnects */ |
|---|
| 606 | bsettop_callback hdmi_hdcp_status_callback; /* Called when HDCP status changes */ |
|---|
| 607 | bsettop_callback hdmi_cec_message_callback; /* Called when a CEC message is received */ |
|---|
| 608 | void *callback_context; /* all callbacks share this context */ |
|---|
| 609 | |
|---|
| 610 | boutput_hdmi_audio_mode hdmi_audio_mode; /* Audio mode for HDMI */ |
|---|
| 611 | baudio_format compressed_audio_format; /* compressed output format. If hdmi_audio_mode = compressed and this is |
|---|
| 612 | set to a valid format (e.g. baudio_format_dts), output will be |
|---|
| 613 | transcoded to that format. By default this is baudio_format_unknown, |
|---|
| 614 | which will leave the compressed data in the original format. */ |
|---|
| 615 | boutput_spdif_channel_status hdmi_spdif_channel_status; /* HDMI's Spdif audio output's Channel status */ |
|---|
| 616 | unsigned audio_delay; /* delay, in ms, applied to the HDMI audio output */ |
|---|
| 617 | boutput_hdmi_color_depth hdmi_color_depth; /* color depth settings 8, 10, 12, or 16bits */ |
|---|
| 618 | } boutput_hdmi_settings; |
|---|
| 619 | |
|---|
| 620 | /** |
|---|
| 621 | Summary: |
|---|
| 622 | Set new HDMI settings. |
|---|
| 623 | Description: |
|---|
| 624 | These settings will not be applied until bdisplay_set is called with the |
|---|
| 625 | HDMI handle assigned. |
|---|
| 626 | **/ |
|---|
| 627 | bresult boutput_hdmi_set(boutput_hdmi_t dvi, |
|---|
| 628 | const boutput_hdmi_settings *settings); |
|---|
| 629 | |
|---|
| 630 | /** |
|---|
| 631 | Summary: |
|---|
| 632 | Get the current HDMI settings. |
|---|
| 633 | **/ |
|---|
| 634 | void boutput_hdmi_get(boutput_hdmi_t dvi, |
|---|
| 635 | boutput_hdmi_settings *settings /* [out] */ |
|---|
| 636 | ); |
|---|
| 637 | |
|---|
| 638 | /** |
|---|
| 639 | Summary: |
|---|
| 640 | DVI/HDMI device capabilities |
|---|
| 641 | **/ |
|---|
| 642 | typedef struct boutput_hdmi_capabilities |
|---|
| 643 | { |
|---|
| 644 | bvideo_format preferred_video_format; |
|---|
| 645 | bool video_format_is_supported[bvideo_format_count]; |
|---|
| 646 | |
|---|
| 647 | boutput_hdmi_audio_mode preferred_audio_mode; |
|---|
| 648 | bool audio_mode_is_supported[boutput_hdmi_audio_mode_count]; |
|---|
| 649 | |
|---|
| 650 | bool hdmi; /* True if HDMI, false if DVI */ |
|---|
| 651 | boutput_hdmi_rx_edid_info rx_edid_info; /* contians HDMI Rx EDID info. */ |
|---|
| 652 | } boutput_hdmi_capabilities; |
|---|
| 653 | |
|---|
| 654 | /** |
|---|
| 655 | Summary: |
|---|
| 656 | Get the current HDMI device capabilities. |
|---|
| 657 | **/ |
|---|
| 658 | bresult boutput_hdmi_get_capabilities(boutput_hdmi_t dvi, |
|---|
| 659 | boutput_hdmi_capabilities *caps /* [out] */ |
|---|
| 660 | ); |
|---|
| 661 | |
|---|
| 662 | /** |
|---|
| 663 | Summary: |
|---|
| 664 | The current HDMI status |
|---|
| 665 | **/ |
|---|
| 666 | typedef struct boutput_hdmi_status |
|---|
| 667 | { |
|---|
| 668 | boutput_hdmi_hdcp_state hdcp_state; |
|---|
| 669 | } boutput_hdmi_status; |
|---|
| 670 | |
|---|
| 671 | /** |
|---|
| 672 | Summary: |
|---|
| 673 | Get the current HDCP status |
|---|
| 674 | **/ |
|---|
| 675 | bresult boutput_hdmi_get_status(boutput_hdmi_t dvi, |
|---|
| 676 | boutput_hdmi_status *status /* [out] */ |
|---|
| 677 | ); |
|---|
| 678 | |
|---|
| 679 | /** |
|---|
| 680 | Summary: |
|---|
| 681 | Get the received CEC message |
|---|
| 682 | **/ |
|---|
| 683 | bresult boutput_hdmi_cec_get_message(boutput_hdmi_t dvi, |
|---|
| 684 | boutput_hdmi_cec_message_data *cec_message_data /* [out] */ |
|---|
| 685 | ); |
|---|
| 686 | |
|---|
| 687 | /** |
|---|
| 688 | Summary: |
|---|
| 689 | Send CEC message |
|---|
| 690 | **/ |
|---|
| 691 | bresult boutput_hdmi_cec_send_message(boutput_hdmi_t dvi, |
|---|
| 692 | const boutput_hdmi_cec_message_data *cec_message_data |
|---|
| 693 | ); |
|---|
| 694 | |
|---|
| 695 | /** |
|---|
| 696 | Summary: |
|---|
| 697 | Get the CEC configuration from the device |
|---|
| 698 | **/ |
|---|
| 699 | bresult boutput_hdmi_cec_get_configuration(boutput_hdmi_t dvi, |
|---|
| 700 | boutput_hdmi_cec_configuration *cec_configuration /* [out] */ |
|---|
| 701 | ); |
|---|
| 702 | |
|---|
| 703 | /** |
|---|
| 704 | Summary: |
|---|
| 705 | Check the current status of the device |
|---|
| 706 | **/ |
|---|
| 707 | bool boutput_hdmi_cec_is_device_ready(boutput_hdmi_t dvi); |
|---|
| 708 | |
|---|
| 709 | /** |
|---|
| 710 | Summary: |
|---|
| 711 | Enable CEC core to receive CEC messages |
|---|
| 712 | **/ |
|---|
| 713 | bresult boutput_hdmi_cec_enable_receive(boutput_hdmi_t dvi); |
|---|
| 714 | |
|---|
| 715 | /* |
|---|
| 716 | Summary: |
|---|
| 717 | Component output handle returned by boutput_component_open() |
|---|
| 718 | */ |
|---|
| 719 | typedef struct boutput_component *boutput_component_t; |
|---|
| 720 | |
|---|
| 721 | /* |
|---|
| 722 | Summary: |
|---|
| 723 | Color format of the component output. |
|---|
| 724 | */ |
|---|
| 725 | typedef enum boutput_component_type { |
|---|
| 726 | boutput_component_type_rgb, /* RGB output */ |
|---|
| 727 | boutput_component_type_yprpb /* YPrPb output */ |
|---|
| 728 | } boutput_component_type; |
|---|
| 729 | |
|---|
| 730 | /** |
|---|
| 731 | Summary: |
|---|
| 732 | Settings for Component output |
|---|
| 733 | **/ |
|---|
| 734 | typedef struct boutput_component_settings { |
|---|
| 735 | boutput_component_type type; /* color space of the component video */ |
|---|
| 736 | } boutput_component_settings; |
|---|
| 737 | |
|---|
| 738 | /** |
|---|
| 739 | Summary: |
|---|
| 740 | Set new Component settings. |
|---|
| 741 | Description: |
|---|
| 742 | These settings will not be applied until bdisplay_set is called with the |
|---|
| 743 | Component handle assigned. |
|---|
| 744 | **/ |
|---|
| 745 | bresult boutput_component_set(boutput_component_t component, |
|---|
| 746 | const boutput_component_settings *settings); |
|---|
| 747 | |
|---|
| 748 | /** |
|---|
| 749 | Summary: |
|---|
| 750 | Get the current Component settings. |
|---|
| 751 | **/ |
|---|
| 752 | void boutput_component_get(boutput_component_t component, |
|---|
| 753 | boutput_component_settings *settings /* [out] */ |
|---|
| 754 | ); |
|---|
| 755 | |
|---|
| 756 | /* |
|---|
| 757 | Summary: |
|---|
| 758 | SPDIF audio handle returned by boutput_spdif_open() |
|---|
| 759 | */ |
|---|
| 760 | typedef struct boutput_spdif *boutput_spdif_t; |
|---|
| 761 | |
|---|
| 762 | /** |
|---|
| 763 | Summary: |
|---|
| 764 | Settings for SPDIF output |
|---|
| 765 | **/ |
|---|
| 766 | typedef struct boutput_spdif_settings { |
|---|
| 767 | bool pcm; /* If true, always send PCM audio to SPDIF output. If the format |
|---|
| 768 | is not supported by the chip, you will get no audio output. |
|---|
| 769 | If false, the audio will be passed-through if supported |
|---|
| 770 | by SPDIF, otherwise it is decoded by the chip. |
|---|
| 771 | |
|---|
| 772 | Specifics: |
|---|
| 773 | MPEG audio (layer 1/2) will always be decoded and PCM |
|---|
| 774 | will be sent to SPDIF. |
|---|
| 775 | We cannot decode any audio format other than MPEG audio. |
|---|
| 776 | On pre-7038 chips, we can pass-through AC3. |
|---|
| 777 | On 7110/7315 B0, we can pass-through DTS. |
|---|
| 778 | On 7038, we can also pass-through MP3 and AAC.*/ |
|---|
| 779 | |
|---|
| 780 | boutput_spdif_channel_status spdif_channel_status; /* Spdif Channel status */ |
|---|
| 781 | unsigned audio_delay; /* delay, in ms, applied to the SPDIF output */ |
|---|
| 782 | baudio_format compressed_audio_format; /* compressed output format. If pcm = false and this format is |
|---|
| 783 | set to a valid format (e.g. baudio_format_dts), output will be |
|---|
| 784 | transcoded to that format. By default this is baudio_format_unknown, |
|---|
| 785 | which will leave the compressed data in the original format. */ |
|---|
| 786 | } boutput_spdif_settings; |
|---|
| 787 | |
|---|
| 788 | /** |
|---|
| 789 | Summary: |
|---|
| 790 | Set new SPDIF settings. |
|---|
| 791 | Description: |
|---|
| 792 | These settings will not be applied until bdisplay_set is called with the |
|---|
| 793 | SPDIF handle assigned. |
|---|
| 794 | **/ |
|---|
| 795 | bresult boutput_spdif_set(boutput_spdif_t spdif, |
|---|
| 796 | const boutput_spdif_settings *settings); |
|---|
| 797 | |
|---|
| 798 | /** |
|---|
| 799 | Summary: |
|---|
| 800 | Get the current SPDIF settings. |
|---|
| 801 | **/ |
|---|
| 802 | void boutput_spdif_get(boutput_spdif_t spdif, |
|---|
| 803 | boutput_spdif_settings *settings /* [out] */ |
|---|
| 804 | ); |
|---|
| 805 | |
|---|
| 806 | /* |
|---|
| 807 | Summary: |
|---|
| 808 | Open a SPDIF audio output. |
|---|
| 809 | Description: |
|---|
| 810 | It must be assigned to a display. |
|---|
| 811 | */ |
|---|
| 812 | boutput_spdif_t |
|---|
| 813 | boutput_spdif_open(bobject_t spdif_id); |
|---|
| 814 | |
|---|
| 815 | /* |
|---|
| 816 | Summary: |
|---|
| 817 | Open RF modulator output. |
|---|
| 818 | Description: |
|---|
| 819 | It must be assigned to a display. |
|---|
| 820 | */ |
|---|
| 821 | boutput_rf_t |
|---|
| 822 | boutput_rf_open(bobject_t rfmod_id); |
|---|
| 823 | |
|---|
| 824 | /* |
|---|
| 825 | Summary: |
|---|
| 826 | Open composite output. |
|---|
| 827 | */ |
|---|
| 828 | boutput_composite_t |
|---|
| 829 | boutput_composite_open(bobject_t composite_id); |
|---|
| 830 | |
|---|
| 831 | /* |
|---|
| 832 | Summary: |
|---|
| 833 | Open svideo output. |
|---|
| 834 | */ |
|---|
| 835 | boutput_svideo_t |
|---|
| 836 | boutput_svideo_open(bobject_t svideo_id); |
|---|
| 837 | |
|---|
| 838 | /* |
|---|
| 839 | Summary: |
|---|
| 840 | Open HDMI output. |
|---|
| 841 | Description: |
|---|
| 842 | It must be assigned to a display. |
|---|
| 843 | */ |
|---|
| 844 | boutput_hdmi_t |
|---|
| 845 | boutput_hdmi_open(bobject_t dvi_id); |
|---|
| 846 | |
|---|
| 847 | /* |
|---|
| 848 | Summary: |
|---|
| 849 | Open component output. |
|---|
| 850 | Description: |
|---|
| 851 | It must be assigned to a display. |
|---|
| 852 | */ |
|---|
| 853 | boutput_component_t |
|---|
| 854 | boutput_component_open(bobject_t component_id); |
|---|
| 855 | |
|---|
| 856 | /* |
|---|
| 857 | Summary: |
|---|
| 858 | Physical aspect ratio of the SD display. |
|---|
| 859 | Description: |
|---|
| 860 | This only applies to SD displays. HD displays are assumes to be 16x9 and this |
|---|
| 861 | value is ignored. |
|---|
| 862 | */ |
|---|
| 863 | typedef enum bdisplay_aspect_ratio { |
|---|
| 864 | bdisplay_aspect_ratio_4x3, |
|---|
| 865 | bdisplay_aspect_ratio_16x9 |
|---|
| 866 | } bdisplay_aspect_ratio; |
|---|
| 867 | |
|---|
| 868 | /* |
|---|
| 869 | Summary: |
|---|
| 870 | How to convert content to a display based on its aspect ratio. |
|---|
| 871 | Description: |
|---|
| 872 | If a decode window is full size, then the zoom, box or panscan modes are applied. |
|---|
| 873 | Otherwise the content is sized to the decode window. |
|---|
| 874 | The behavior of this enum depends on the bdisplay_aspect_ratio. |
|---|
| 875 | */ |
|---|
| 876 | typedef enum bdisplay_content_mode { |
|---|
| 877 | bdisplay_content_mode_zoom, /* cut off content to preserve aspect ratio */ |
|---|
| 878 | bdisplay_content_mode_box, /* either windowbox or letterbox to preserve aspect ratio */ |
|---|
| 879 | bdisplay_content_mode_panscan, /* Used for 16x9 source with pan scan vectors on 4x3 display only, |
|---|
| 880 | otherwise same as zoom. */ |
|---|
| 881 | bdisplay_content_mode_full, /* distort aspect ratio but see all the content and no sidebars. */ |
|---|
| 882 | bdisplay_content_mode_full_nonlinear /* non-linear upscaling to full screen where |
|---|
| 883 | the edge of the content will have more distorted |
|---|
| 884 | aspect ratio. */ |
|---|
| 885 | } bdisplay_content_mode; |
|---|
| 886 | |
|---|
| 887 | /* |
|---|
| 888 | Summary: |
|---|
| 889 | Digital Noise Removal Levels |
|---|
| 890 | */ |
|---|
| 891 | typedef enum bwindow_dnr_level { |
|---|
| 892 | /* Disable DNR */ |
|---|
| 893 | bwindow_dnr_level_off = 0, |
|---|
| 894 | /* These can be referred to by name */ |
|---|
| 895 | bwindow_dnr_level_low, |
|---|
| 896 | bwindow_dnr_level_medium_low, |
|---|
| 897 | bwindow_dnr_level_medium, |
|---|
| 898 | bwindow_dnr_level_medium_high, |
|---|
| 899 | bwindow_dnr_level_high, |
|---|
| 900 | /* And also by number */ |
|---|
| 901 | bwindow_dnr_level_1=bwindow_dnr_level_low, |
|---|
| 902 | bwindow_dnr_level_2, |
|---|
| 903 | bwindow_dnr_level_3, |
|---|
| 904 | bwindow_dnr_level_4, |
|---|
| 905 | bwindow_dnr_level_5, |
|---|
| 906 | /* Highest value available */ |
|---|
| 907 | bwindow_dnr_level_max=bwindow_dnr_level_5 |
|---|
| 908 | } bwindow_dnr_level; |
|---|
| 909 | |
|---|
| 910 | /* |
|---|
| 911 | Summary: |
|---|
| 912 | Split Screen Mode for DNR (Digital Noise Reduction) and PEP (Picture Enhancement Processing) Demo |
|---|
| 913 | */ |
|---|
| 914 | typedef enum bwindow_splitscreen_mode { |
|---|
| 915 | bwindow_splitscreen_mode_wholescreen = 0, /* apply processing to entire screen */ |
|---|
| 916 | bwindow_splitscreen_mode_left, /* apply processing to left-half of screen */ |
|---|
| 917 | bwindow_splitscreen_mode_right /* apply processing to right-half of screen */ |
|---|
| 918 | } bwindow_splitscreen_mode; |
|---|
| 919 | |
|---|
| 920 | /* |
|---|
| 921 | Summary: |
|---|
| 922 | Macrovision types. |
|---|
| 923 | */ |
|---|
| 924 | typedef enum bmacrovision_type { |
|---|
| 925 | bmacrovision_type_none = 0, /* No macrovision on outputs. */ |
|---|
| 926 | bmacrovision_type_agc_only, /* AGC only. */ |
|---|
| 927 | bmacrovision_type_agc_2lines, /* AGC + 2 Line color stripe. */ |
|---|
| 928 | bmacrovision_type_agc_4lines, /* AGC + 4 Line color stripe. */ |
|---|
| 929 | bmacrovision_type_custom, /* User-provded tables. */ |
|---|
| 930 | bmacrovision_type_agc_only_rgb, /* PAL MV cert test AGC only with MV on RGB. */ |
|---|
| 931 | bmacrovision_type_agc_2lines_rgb, /* NTSC MV cert test AGC + 2 Line color stripe, with MV on RGB. */ |
|---|
| 932 | bmacrovision_type_agc_4lines_rgb, /* NTSC MV cert test AGC + 4 Line color stripe. */ |
|---|
| 933 | bmacrovision_type_test01, /* MV certification test 01. */ |
|---|
| 934 | bmacrovision_type_test02 /* MV certification test 02. */ |
|---|
| 935 | } bmacrovision_type; |
|---|
| 936 | |
|---|
| 937 | /* |
|---|
| 938 | Summary: |
|---|
| 939 | Macrovision table structure. |
|---|
| 940 | */ |
|---|
| 941 | typedef struct bmacrovision_tables { |
|---|
| 942 | /* See bvdc_macrovision.h for the source of the numbers */ |
|---|
| 943 | uint8_t cpc_table[2]; |
|---|
| 944 | uint8_t cps_table[33]; |
|---|
| 945 | } bmacrovision_tables; |
|---|
| 946 | |
|---|
| 947 | /* |
|---|
| 948 | Summary: |
|---|
| 949 | DCS (Dwight Cavendish Systems ) types. |
|---|
| 950 | */ |
|---|
| 951 | typedef enum bdcs_type { |
|---|
| 952 | bdcs_type_dcs_off = 0, |
|---|
| 953 | bdcs_type_dcs_on |
|---|
| 954 | } bdcs_type; |
|---|
| 955 | |
|---|
| 956 | |
|---|
| 957 | /* |
|---|
| 958 | Summary: |
|---|
| 959 | Display settings for configuring outputs, video format and aspect ratio. |
|---|
| 960 | */ |
|---|
| 961 | typedef struct bdisplay_settings { |
|---|
| 962 | bvideo_format format; /* Video format of the display. */ |
|---|
| 963 | bdisplay_aspect_ratio aspect_ratio; /* Aspect ratio of the display. This only applies to SD display formats. */ |
|---|
| 964 | bdisplay_content_mode content_mode; /* How to adapt content to the aspect ratio |
|---|
| 965 | of the display. */ |
|---|
| 966 | bool mpaa_enabled; /* Enabled MPAA if available */ |
|---|
| 967 | |
|---|
| 968 | boutput_composite_t composite; /* attached composite output */ |
|---|
| 969 | boutput_composite_t composite2; /* attached 2nd composite output */ |
|---|
| 970 | boutput_svideo_t svideo; /* attached svideo output */ |
|---|
| 971 | boutput_component_t component; /* attached component output */ |
|---|
| 972 | boutput_rf_t rf; /* attached RF modulator output */ |
|---|
| 973 | boutput_hdmi_t dvi; /* attached DVI or HDMI output */ |
|---|
| 974 | boutput_spdif_t spdif; /* attached SPDIF audio output */ |
|---|
| 975 | |
|---|
| 976 | bvideo_format_settings vesa_settings; /* if format == bvideo_format_vesa, |
|---|
| 977 | then these settings are used. */ |
|---|
| 978 | bmacrovision_type macrovision_type; /* Macrovision output type */ |
|---|
| 979 | bmacrovision_tables *macrovision_tables; /* Custom macrovision tables. This is only used for bmacrovision_type_custom, NULL on bdisplay_get, if unchanged, or if unused. */ |
|---|
| 980 | bdcs_type dcs_type; /* controls Dwight Cavendish Systems processing */ |
|---|
| 981 | uint32_t background_color; /* background color in YCrCb colorspace */ |
|---|
| 982 | unsigned i2s_delay; /* delay, in ms, applied to the I2S audio output port */ |
|---|
| 983 | unsigned dac_delay; /* delay, in ms, applied to the DAC audio output port */ |
|---|
| 984 | } bdisplay_settings; |
|---|
| 985 | |
|---|
| 986 | /* |
|---|
| 987 | Summary: |
|---|
| 988 | Look up video format settings for a display. |
|---|
| 989 | |
|---|
| 990 | Description: |
|---|
| 991 | This is different from bvideo_get_format_settings because it also supports |
|---|
| 992 | vesa format settings if settings->format == bvideo_format_vesa. |
|---|
| 993 | */ |
|---|
| 994 | void bdisplay_get_video_format_settings( |
|---|
| 995 | const bdisplay_settings *settings, |
|---|
| 996 | bvideo_format_settings *format_settings /* [out] */ |
|---|
| 997 | ); |
|---|
| 998 | |
|---|
| 999 | /* |
|---|
| 1000 | Summary: |
|---|
| 1001 | Look up settings for a bvideo_format |
|---|
| 1002 | |
|---|
| 1003 | Description: |
|---|
| 1004 | This function does not support bvideo_format_vesa. Use bdisplay_get_video_format_settings |
|---|
| 1005 | for that. |
|---|
| 1006 | */ |
|---|
| 1007 | void bvideo_get_format_settings( |
|---|
| 1008 | bvideo_format format, /* Format that is being queried */ |
|---|
| 1009 | bvideo_format_settings *settings /* [out] Information about that format */ |
|---|
| 1010 | ); |
|---|
| 1011 | |
|---|
| 1012 | /* |
|---|
| 1013 | Summary: |
|---|
| 1014 | Configure the outputs, video format and aspect ratio of the display. |
|---|
| 1015 | |
|---|
| 1016 | Description: |
|---|
| 1017 | format and aspect_ratio are simple variables. The other members (svideo, composite, etc.) |
|---|
| 1018 | are handles to boutput_xxx objects. |
|---|
| 1019 | |
|---|
| 1020 | boutput_xxx_open functions return handles to objects that may already exist and may |
|---|
| 1021 | already be assigned to display's by default. The exact boutput default configuration |
|---|
| 1022 | is documented for each platform. |
|---|
| 1023 | |
|---|
| 1024 | If a graphics engine is linked to this display, bdisplay_set will automatically |
|---|
| 1025 | disable the graphics engine. You must call bgraphics_set, |
|---|
| 1026 | set bgraphics_settings.enabled=true, |
|---|
| 1027 | make any other necessary changes (like scaling) because of the new |
|---|
| 1028 | display format, then call bgraphics_set. |
|---|
| 1029 | This must be done because the graphics state may fail with the display format |
|---|
| 1030 | changes and these issues must be handled by the application. |
|---|
| 1031 | |
|---|
| 1032 | Example: |
|---|
| 1033 | // Example 1 doesn't assume any default outputs |
|---|
| 1034 | bdisplay_t display = bdisplay_open(B_ID(0)); // first display |
|---|
| 1035 | bdisplay_settings settings; |
|---|
| 1036 | boutput_component_t component = boutput_component_open(B_ID(0)); // first component output |
|---|
| 1037 | boutput_hdmi_t dvi = boutput_hdmi_open(B_ID(0)); // first hdmi output |
|---|
| 1038 | |
|---|
| 1039 | bdisplay_get(diplay, &settings); |
|---|
| 1040 | settings.format = bvideo_format_ntsc; |
|---|
| 1041 | settings.aspect_ratio = bdisplay_aspect_ratio_4x3; |
|---|
| 1042 | settings.content_mode = bdisplay_content_mode_full; |
|---|
| 1043 | settings.component = component; |
|---|
| 1044 | settings.dvi = dvi; |
|---|
| 1045 | bdisplay_set(diplay, &settings); |
|---|
| 1046 | |
|---|
| 1047 | // Example 2 is based on the knowledge that the 97320 implementation comes |
|---|
| 1048 | // with svideo pre-configured for display 0. |
|---|
| 1049 | bdisplay_t display0 = bdisplay_open(B_ID(0)); // first display |
|---|
| 1050 | bdisplay_t display1 = bdisplay_open(B_ID(1)); // second display |
|---|
| 1051 | bdisplay_settings settings0, settings1; |
|---|
| 1052 | |
|---|
| 1053 | bdisplay_get(diplay0, &settings0); |
|---|
| 1054 | bdisplay_get(diplay1, &settings1); |
|---|
| 1055 | if (settings0.rf) { |
|---|
| 1056 | boutput_rf_settings rf_settings; |
|---|
| 1057 | boutput_rf_get(settings0.rf, &rf_settings); |
|---|
| 1058 | rf_settings.channel = 4; |
|---|
| 1059 | boutput_rf_set(settings0.rf, &rf_settings); |
|---|
| 1060 | } |
|---|
| 1061 | settings1.svideo = settings0.svideo; |
|---|
| 1062 | settings0.svideo = NULL; |
|---|
| 1063 | bdisplay_set(diplay0, &settings0); // must set 0 first to clear svideo |
|---|
| 1064 | bdisplay_set(diplay1, &settings1); |
|---|
| 1065 | */ |
|---|
| 1066 | bresult |
|---|
| 1067 | bdisplay_set( |
|---|
| 1068 | bdisplay_t display, /* handle returned by bdisplay_open */ |
|---|
| 1069 | const bdisplay_settings *settings /* desired display settings */ |
|---|
| 1070 | ); |
|---|
| 1071 | |
|---|
| 1072 | /* |
|---|
| 1073 | Summary: |
|---|
| 1074 | Get the current outputs, video format and aspect ratio for a display. |
|---|
| 1075 | */ |
|---|
| 1076 | void |
|---|
| 1077 | bdisplay_get( |
|---|
| 1078 | bdisplay_t display, /* handle returned by bdisplay_open */ |
|---|
| 1079 | bdisplay_settings *settings /* [out] current settings of display */ |
|---|
| 1080 | ); |
|---|
| 1081 | |
|---|
| 1082 | /* |
|---|
| 1083 | Summary: |
|---|
| 1084 | Open a new decode window. |
|---|
| 1085 | Description: |
|---|
| 1086 | The window_id is a global id, not relative to the display. |
|---|
| 1087 | However, the same window ID has a different meaning when used on different displays. |
|---|
| 1088 | |
|---|
| 1089 | On a dual decode/dual display system: |
|---|
| 1090 | Window 0 can only be used on display 0. |
|---|
| 1091 | Window 1 can be used on display 0 or 1. Window 1 on display 0 is PIP. Window 1 on display 1 is a "dual TV" system. |
|---|
| 1092 | See bdecode_window_clone for window ID's 2 and 3 on display 1. |
|---|
| 1093 | |
|---|
| 1094 | On a single decode/dual display system: |
|---|
| 1095 | Window 0 can only be used on display 0. |
|---|
| 1096 | See bdecode_window_clone for window ID 1 on display 1. |
|---|
| 1097 | */ |
|---|
| 1098 | bdecode_window_t bdecode_window_open( |
|---|
| 1099 | bobject_t window_id, /* window's object id */ |
|---|
| 1100 | bdisplay_t display /* display on which the window appears */ |
|---|
| 1101 | ); |
|---|
| 1102 | |
|---|
| 1103 | /* |
|---|
| 1104 | Summary: |
|---|
| 1105 | Open a new mosaic decode window. |
|---|
| 1106 | Description: |
|---|
| 1107 | Mosaic windows derive from a parent video window. The parent can be created either |
|---|
| 1108 | via bdecode_window_open or bdecode_window_clone. |
|---|
| 1109 | |
|---|
| 1110 | Mosaic windows can be independently sized and placed within the parent window, but do |
|---|
| 1111 | not have zorder relative to each other on the display, therefore they can not overlap. |
|---|
| 1112 | The zorder of the parent window will be used to determine compositing in the final display. |
|---|
| 1113 | |
|---|
| 1114 | If mosaic windows are to be used on a dual-display system that uses bdecode_window_clone, |
|---|
| 1115 | a corresponding mosaic window should be opened on both the master window and the cloned |
|---|
| 1116 | window. Each can be sized independently for aspect ratio correction. |
|---|
| 1117 | |
|---|
| 1118 | The mosaic object ID passed in to this routine must match the object ID passed into |
|---|
| 1119 | bdecode_open_mosaic. |
|---|
| 1120 | */ |
|---|
| 1121 | bdecode_window_t bdecode_window_open_mosaic( |
|---|
| 1122 | bdecode_window_t parent_window, /* Parent window to derive from */ |
|---|
| 1123 | bobject_t mosaic_id /* The object ID for the mosaic decoder. This must match the value passed to bdecode_open_mosaic. */ |
|---|
| 1124 | ); |
|---|
| 1125 | |
|---|
| 1126 | /* |
|---|
| 1127 | Summary: |
|---|
| 1128 | Hide and close a decode window. |
|---|
| 1129 | Description: |
|---|
| 1130 | Any decode which you started to this decode window should have already been |
|---|
| 1131 | stopped. |
|---|
| 1132 | */ |
|---|
| 1133 | void |
|---|
| 1134 | bdecode_window_close( |
|---|
| 1135 | bdecode_window_t window |
|---|
| 1136 | ); |
|---|
| 1137 | |
|---|
| 1138 | /* |
|---|
| 1139 | Summary: |
|---|
| 1140 | Create a new window by cloning from another window which allows the same |
|---|
| 1141 | video content to go to multiple windows on different displays. |
|---|
| 1142 | |
|---|
| 1143 | Description: |
|---|
| 1144 | This supports the HD/SD simul mode on dual display platforms like 7038 and 740x. |
|---|
| 1145 | In some HD/SD simul configurations, each window can have different dimensions and |
|---|
| 1146 | aspect ratios, and so the separate bdecode_window_t handles allow the API to |
|---|
| 1147 | control this. |
|---|
| 1148 | |
|---|
| 1149 | You can only call bdecode_start with the original window, not with the clone. |
|---|
| 1150 | |
|---|
| 1151 | For single decode systems (e.g. 7401, 7118), you can clone window0 on dispay0 |
|---|
| 1152 | to window1 on display1. This is an HD/SD simul system without PIP. |
|---|
| 1153 | |
|---|
| 1154 | For dual decode systems (e.g. 7038, 7400), you can clone window0 on display0 |
|---|
| 1155 | to window2 on display1, and window1 on display0 to window3 on display 1. |
|---|
| 1156 | This is an HD/SD simul system with PIP. |
|---|
| 1157 | */ |
|---|
| 1158 | bdecode_window_t bdecode_window_clone( |
|---|
| 1159 | bdecode_window_t window, /* window to be cloned */ |
|---|
| 1160 | bobject_t clone_window_id, /* id for new cloned window */ |
|---|
| 1161 | bdisplay_t display /* display on which the cloned window will appear */ |
|---|
| 1162 | ); |
|---|
| 1163 | |
|---|
| 1164 | /* |
|---|
| 1165 | Summary: |
|---|
| 1166 | Set the audio levels for the DAC's associated with this display. |
|---|
| 1167 | */ |
|---|
| 1168 | bresult bdisplay_set_dac_audio_volume( |
|---|
| 1169 | bdisplay_t display, /* handle returned by bdisplay_open */ |
|---|
| 1170 | const baudio_volume *volume /* desired volume */ |
|---|
| 1171 | ); |
|---|
| 1172 | |
|---|
| 1173 | /* |
|---|
| 1174 | Summary: |
|---|
| 1175 | Get the audio levels for the DAC's associated with this display. |
|---|
| 1176 | */ |
|---|
| 1177 | bresult bdisplay_get_dac_audio_volume( |
|---|
| 1178 | bdisplay_t display, /* handle returned by bdisplay_open */ |
|---|
| 1179 | baudio_volume *volume /* [out] current volume of DAC */ |
|---|
| 1180 | ); |
|---|
| 1181 | |
|---|
| 1182 | /* |
|---|
| 1183 | Summary: |
|---|
| 1184 | Set the audio mute for the rf modulator. |
|---|
| 1185 | Description: |
|---|
| 1186 | This function only sets mute. The rf modulator's input comes from the audio DAC's, |
|---|
| 1187 | so any change to bdisplay_get_dac_audio_volume will affect its level. |
|---|
| 1188 | */ |
|---|
| 1189 | bresult boutput_rf_set_audio_volume( |
|---|
| 1190 | boutput_rf_t rf, |
|---|
| 1191 | const baudio_volume *volume /* desired volume */ |
|---|
| 1192 | ); |
|---|
| 1193 | |
|---|
| 1194 | /* |
|---|
| 1195 | Summary: |
|---|
| 1196 | Set the spdif volume. |
|---|
| 1197 | Description: |
|---|
| 1198 | Does not set the spdif->audio_format. Use bdisplay_set for this. |
|---|
| 1199 | */ |
|---|
| 1200 | bresult boutput_spdif_set_audio_volume( |
|---|
| 1201 | boutput_spdif_t spdif, |
|---|
| 1202 | const baudio_volume *volume /* desired volume */ |
|---|
| 1203 | ); |
|---|
| 1204 | |
|---|
| 1205 | /* |
|---|
| 1206 | Summary: |
|---|
| 1207 | Get the spdif volume. |
|---|
| 1208 | Description: |
|---|
| 1209 | The spdif volume control only works for PCM audio. Compressed data |
|---|
| 1210 | cannot be modified and must be handled by the external SPDIF decoder. |
|---|
| 1211 | */ |
|---|
| 1212 | bresult boutput_spdif_get_audio_volume( |
|---|
| 1213 | boutput_spdif_t spdif, |
|---|
| 1214 | baudio_volume *volume /* [out] current volume of spdif device */ |
|---|
| 1215 | ); |
|---|
| 1216 | |
|---|
| 1217 | |
|---|
| 1218 | /* |
|---|
| 1219 | Summary: |
|---|
| 1220 | Get the audio levels for the rf modulator. |
|---|
| 1221 | */ |
|---|
| 1222 | bresult boutput_rf_get_audio_volume( |
|---|
| 1223 | boutput_rf_t rf, |
|---|
| 1224 | baudio_volume *volume /* [out] current volume of the rf modulater */ |
|---|
| 1225 | ); |
|---|
| 1226 | |
|---|
| 1227 | /* End of Display API */ |
|---|
| 1228 | |
|---|
| 1229 | |
|---|
| 1230 | /* Decode window API */ |
|---|
| 1231 | |
|---|
| 1232 | /* |
|---|
| 1233 | Summary: |
|---|
| 1234 | Decode window settings returned by bdecode_window_get. |
|---|
| 1235 | */ |
|---|
| 1236 | typedef struct bdecode_window_settings { |
|---|
| 1237 | bsettop_rect position; /* Position and size on the display. Use display-relative coordinates. */ |
|---|
| 1238 | bsettop_rect cliprect; /* Source position and size. Use window-relative coordinates |
|---|
| 1239 | and not source-relative coordinates. This has the advantage of allowing |
|---|
| 1240 | the Settop API to reapply them for dynamic picture change, analog scale down, etc. |
|---|
| 1241 | If you change the size of the window, you must recalculate the cliprect. |
|---|
| 1242 | See api/examples/window_clipping.c for example. |
|---|
| 1243 | If width or height is 0, no clipping is applied. */ |
|---|
| 1244 | bool visible; /* Is the window visible? */ |
|---|
| 1245 | unsigned zorder; /* 0 is on bottom. For two decode window systems, 1 is on top. */ |
|---|
| 1246 | bool cloned; /* read-only. true if this window was created with |
|---|
| 1247 | bdecode_window_clone. */ |
|---|
| 1248 | bool deinterlacer; /* If true, the motion adaptive deinterlacer (MAD) |
|---|
| 1249 | is allowed to be used if available and appropriate. */ |
|---|
| 1250 | bool box_detect; /* If true, the box detect hardware is allowed to be |
|---|
| 1251 | used if available and appropriate. */ |
|---|
| 1252 | |
|---|
| 1253 | int16_t contrast; /* Color space conversion for the decode window (not the |
|---|
| 1254 | display). Ranges between -32768 and 32767. |
|---|
| 1255 | Default is 0. */ |
|---|
| 1256 | int16_t saturation; /* Color space conversion for the decode window (not the |
|---|
| 1257 | display). Ranges between -32768 and 32767. |
|---|
| 1258 | Default is 0. */ |
|---|
| 1259 | int16_t hue; /* Color space conversion for the decode window (not the |
|---|
| 1260 | display). Ranges between -32768 and 32767. |
|---|
| 1261 | Default is 0. */ |
|---|
| 1262 | int16_t brightness; /* Color space conversion for the decode window (not the |
|---|
| 1263 | display). Ranges between -32768 and 32767. |
|---|
| 1264 | Default is 0. */ |
|---|
| 1265 | int16_t sharpness; /* Sharpness enhancement for the decode window (not the |
|---|
| 1266 | display). Ranges between -32768 and 32767. |
|---|
| 1267 | Default is 0. */ |
|---|
| 1268 | |
|---|
| 1269 | bwindow_dnr_level dcr_level; /* Digital Contour Reduction Level */ |
|---|
| 1270 | bwindow_dnr_level mnr_level; /* Mosquito Noise Reduction Level */ |
|---|
| 1271 | bwindow_dnr_level bnr_level; /* Mosquito Noise Reduction Level */ |
|---|
| 1272 | bwindow_dnr_level anr_level; /* Analog Noise Reduction Level */ |
|---|
| 1273 | |
|---|
| 1274 | unsigned green_stretch; /* Green Stretch Value -- Ranges between 0 (default) and 4 */ |
|---|
| 1275 | unsigned blue_stretch; /* Blue Stretch Value -- Ranges between 0 (default) and 4 */ |
|---|
| 1276 | unsigned auto_flesh_tone; /* Auto Flesh Tone Value -- Ranges between 0 (default) and 4 */ |
|---|
| 1277 | |
|---|
| 1278 | unsigned dynamic_contrast; /* Dynamic contrast value. Ranges from 0 (default) and 256 */ |
|---|
| 1279 | |
|---|
| 1280 | bool display_rate_master; /* Set this property to true if the window should control the |
|---|
| 1281 | display output timebase. This is a toggle property. There |
|---|
| 1282 | must be only one display rate master, settings this to true |
|---|
| 1283 | will clear the property from all other windows on the display. |
|---|
| 1284 | Setting this to false will have no effect. */ |
|---|
| 1285 | bwindow_splitscreen_mode splitscreen_mode; /* Split Screen Demo Mode */ |
|---|
| 1286 | } bdecode_window_settings; |
|---|
| 1287 | |
|---|
| 1288 | /* |
|---|
| 1289 | Summary: |
|---|
| 1290 | Get the current settings of a decode window. |
|---|
| 1291 | */ |
|---|
| 1292 | bresult bdecode_window_get( |
|---|
| 1293 | bdecode_window_t window, |
|---|
| 1294 | bdecode_window_settings *settings /* [out] */ |
|---|
| 1295 | ); |
|---|
| 1296 | |
|---|
| 1297 | /* |
|---|
| 1298 | Summary: |
|---|
| 1299 | Apply new settings to the decode window. |
|---|
| 1300 | Description: |
|---|
| 1301 | Only those individual settings which have changed will be asserted. |
|---|
| 1302 | */ |
|---|
| 1303 | bresult bdecode_window_set( |
|---|
| 1304 | bdecode_window_t window, |
|---|
| 1305 | const bdecode_window_settings *settings |
|---|
| 1306 | ); |
|---|
| 1307 | |
|---|
| 1308 | /* End of decode window API */ |
|---|
| 1309 | |
|---|
| 1310 | #ifdef __cplusplus |
|---|
| 1311 | } |
|---|
| 1312 | #endif |
|---|
| 1313 | |
|---|
| 1314 | |
|---|
| 1315 | #endif /* BSETTOP_H__ */ |
|---|
| 1316 | |
|---|