| 1 | /*************************************************************************** |
|---|
| 2 | * Copyright (c) 2003-2012, 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: bxdm_pp.h $ |
|---|
| 11 | * $brcm_Revision: Hydra_Software_Devel/20 $ |
|---|
| 12 | * $brcm_Date: 3/16/12 11:56a $ |
|---|
| 13 | * |
|---|
| 14 | * [File Description:] |
|---|
| 15 | * |
|---|
| 16 | * Revision History: |
|---|
| 17 | * |
|---|
| 18 | * $brcm_Log: /magnum/commonutils/xdm/bxdm_pp.h $ |
|---|
| 19 | * |
|---|
| 20 | * Hydra_Software_Devel/20 3/16/12 11:56a btosi |
|---|
| 21 | * SW7425-2536: added support for displayInterruptStatus_isr |
|---|
| 22 | * |
|---|
| 23 | * Hydra_Software_Devel/19 2/1/12 1:57p btosi |
|---|
| 24 | * SW7425-2270: add support for IgnoreNRTUnderflow |
|---|
| 25 | * |
|---|
| 26 | * Hydra_Software_Devel/18 11/9/11 9:43a btosi |
|---|
| 27 | * SW7425-1690: fixed enums |
|---|
| 28 | * |
|---|
| 29 | * Hydra_Software_Devel/17 10/3/11 2:19p btosi |
|---|
| 30 | * SW7425-1264: support for a SW STC internal to XDM |
|---|
| 31 | * |
|---|
| 32 | * Hydra_Software_Devel/16 8/18/11 3:19p btosi |
|---|
| 33 | * SW7425-966: added support for eLeftRightEnhancedResolution |
|---|
| 34 | * |
|---|
| 35 | * Hydra_Software_Devel/15 7/26/11 11:02a btosi |
|---|
| 36 | * SW7635-51: merged BXDM_PictureProvider_PictureHandlingMode_eWait |
|---|
| 37 | * changes |
|---|
| 38 | * |
|---|
| 39 | * Hydra_Software_Devel/SW7635-51/1 5/11/11 9:28a btosi |
|---|
| 40 | * SW7635-51: added BXDM_PictureProvider_PictureHandlingMode_eWait |
|---|
| 41 | * |
|---|
| 42 | * Hydra_Software_Devel/14 5/10/11 1:40p btosi |
|---|
| 43 | * SW7405-4736: added range checking and debug messages for the input |
|---|
| 44 | * parameters |
|---|
| 45 | * |
|---|
| 46 | * Hydra_Software_Devel/13 11/24/10 1:22p btosi |
|---|
| 47 | * SW7422-72: added bSetNextPointer for MVC on older DVD chips |
|---|
| 48 | * |
|---|
| 49 | * Hydra_Software_Devel/12 11/22/10 3:12p btosi |
|---|
| 50 | * SW7422-72: renamed flag in BXDM_PictureProvider_3DSettings |
|---|
| 51 | * |
|---|
| 52 | * Hydra_Software_Devel/11 11/17/10 9:37a btosi |
|---|
| 53 | * SW7422-72: added new BXVD and XDM 3D API's |
|---|
| 54 | * |
|---|
| 55 | * Hydra_Software_Devel/10 10/1/10 2:50p btosi |
|---|
| 56 | * SWDEPRECATED-1003: added support for bTreatAsSingleElement |
|---|
| 57 | * |
|---|
| 58 | * Hydra_Software_Devel/9 9/23/10 3:09p btosi |
|---|
| 59 | * SW7405-4736: add support for a XDM instance ID to help debug multi- |
|---|
| 60 | * channel issues |
|---|
| 61 | * |
|---|
| 62 | * Hydra_Software_Devel/8 9/15/10 12:06p btosi |
|---|
| 63 | * SWDEPRECATED-1003: added BXDM_PictureProvider_SetFrameRateOverride_isr |
|---|
| 64 | * and supporting logic |
|---|
| 65 | * |
|---|
| 66 | * Hydra_Software_Devel/7 9/14/10 11:56a btosi |
|---|
| 67 | * SWDEPRECATED-1003: added BXDM_PictureProvider_SetTrickMode_isr to |
|---|
| 68 | * primarily disable the FIC logic when receiving video with sparse |
|---|
| 69 | * pictures |
|---|
| 70 | * |
|---|
| 71 | * Hydra_Software_Devel/6 8/5/10 8:29a delkert |
|---|
| 72 | * SW7405-4703: Add HorizontalOverscanMode to allow bypass of Overscan |
|---|
| 73 | * calculation. Added appropriate Get/Set APIs |
|---|
| 74 | * |
|---|
| 75 | * Hydra_Software_Devel/5 5/11/10 1:33p btosi |
|---|
| 76 | * SW7405-4117: added usage note |
|---|
| 77 | * |
|---|
| 78 | * Hydra_Software_Devel/4 4/29/10 10:47a btosi |
|---|
| 79 | * SW7405-4117: added support for ...DisplayFieldMode_eAuto |
|---|
| 80 | * |
|---|
| 81 | * Hydra_Software_Devel/3 2/19/10 11:09a nilesh |
|---|
| 82 | * SW7405-2993: Made the DIH handle a property of the picture provider so |
|---|
| 83 | * that the PDR callback can persist over a stop/start decode |
|---|
| 84 | * |
|---|
| 85 | * Hydra_Software_Devel/2 2/17/10 4:58p nilesh |
|---|
| 86 | * SW7405-2993: Removed unused |
|---|
| 87 | * BXDM_PictureProvider_Counters.uiDecoderInputOverflow |
|---|
| 88 | * |
|---|
| 89 | * Hydra_Software_Devel/1 2/16/10 10:51a nilesh |
|---|
| 90 | * SW7405-2993: Initial XDM version |
|---|
| 91 | * |
|---|
| 92 | ***************************************************************************/ |
|---|
| 93 | |
|---|
| 94 | #ifndef BXDM_PP_H_ |
|---|
| 95 | #define BXDM_PP_H_ |
|---|
| 96 | |
|---|
| 97 | #include "btmr.h" |
|---|
| 98 | #include "bxdm_decoder.h" |
|---|
| 99 | #include "bxdm.h" |
|---|
| 100 | #include "bxdm_dih.h" |
|---|
| 101 | |
|---|
| 102 | #ifdef __cplusplus |
|---|
| 103 | extern "C" { |
|---|
| 104 | #endif |
|---|
| 105 | |
|---|
| 106 | #if 0 |
|---|
| 107 | } |
|---|
| 108 | #endif |
|---|
| 109 | |
|---|
| 110 | typedef struct BXDM_PictureProvider_P_Context *BXDM_PictureProvider_Handle; |
|---|
| 111 | |
|---|
| 112 | #if 0 |
|---|
| 113 | typedef struct BXDM_PictureProvider_Settings |
|---|
| 114 | { |
|---|
| 115 | uint32_t uiMaxBuffersPerPicture; /* This value indicates how many video buffers are |
|---|
| 116 | * linked together in a single BXDM_Picture entry. |
|---|
| 117 | * E.g. for MVC 3D, there are 2 video buffers per |
|---|
| 118 | * BXDM_Picture entry */ |
|---|
| 119 | } BXDM_PictureProvider_Settings; |
|---|
| 120 | #endif |
|---|
| 121 | |
|---|
| 122 | BERR_Code |
|---|
| 123 | BXDM_PictureProvider_GetDefaultSettings( |
|---|
| 124 | BXDM_PictureProvider_Settings *pstPictureProviderSettings |
|---|
| 125 | ); |
|---|
| 126 | |
|---|
| 127 | BERR_Code |
|---|
| 128 | BXDM_PictureProvider_Create( |
|---|
| 129 | BXDM_PictureProvider_Handle *phXdmPP, |
|---|
| 130 | const BXDM_PictureProvider_Settings *pstPictureProviderSettings |
|---|
| 131 | ); |
|---|
| 132 | |
|---|
| 133 | BERR_Code |
|---|
| 134 | BXDM_PictureProvider_Destroy( |
|---|
| 135 | BXDM_PictureProvider_Handle hXdmPP |
|---|
| 136 | ); |
|---|
| 137 | |
|---|
| 138 | BERR_Code |
|---|
| 139 | BXDM_PictureProvider_StartDecode_isr( |
|---|
| 140 | BXDM_PictureProvider_Handle hXdmPP |
|---|
| 141 | ); |
|---|
| 142 | |
|---|
| 143 | BERR_Code |
|---|
| 144 | BXDM_PictureProvider_StopDecode_isr( |
|---|
| 145 | BXDM_PictureProvider_Handle hXdmPP |
|---|
| 146 | ); |
|---|
| 147 | |
|---|
| 148 | BERR_Code |
|---|
| 149 | BXDM_PictureProvider_WatchdogReset_isr( |
|---|
| 150 | BXDM_PictureProvider_Handle hXdmPP |
|---|
| 151 | ); |
|---|
| 152 | |
|---|
| 153 | BERR_Code |
|---|
| 154 | BXDM_PictureProvider_GetPicture_isr( |
|---|
| 155 | void *pPrivateContext, |
|---|
| 156 | const BXDM_DisplayInterruptInfo *pstDisplayInterruptInfo, |
|---|
| 157 | BAVC_MFD_Picture **pMFDPicture |
|---|
| 158 | ); |
|---|
| 159 | |
|---|
| 160 | BERR_Code |
|---|
| 161 | BXDM_PictureProvider_SetDecoderInterface_isr( |
|---|
| 162 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 163 | BXDM_Decoder_Interface *pstDecoderInterface, |
|---|
| 164 | void *pPrivateContext |
|---|
| 165 | ); |
|---|
| 166 | |
|---|
| 167 | BERR_Code |
|---|
| 168 | BXDM_PictureProvider_GetDefaultDecoderInterface_isr( |
|---|
| 169 | BXDM_Decoder_Interface *pstDecoderInterface |
|---|
| 170 | ); |
|---|
| 171 | |
|---|
| 172 | #if 0 |
|---|
| 173 | typedef struct BXDM_PictureProvider_ChannelChangeSettings |
|---|
| 174 | { |
|---|
| 175 | bool bHoldLastPicture; |
|---|
| 176 | bool bFirstPicturePreview; |
|---|
| 177 | } BXDM_PictureProvider_ChannelChangeSettings; |
|---|
| 178 | #endif |
|---|
| 179 | |
|---|
| 180 | BERR_Code |
|---|
| 181 | BXDM_PictureProvider_GetDefaultChannelChangeSettings_isr( |
|---|
| 182 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 183 | BXDM_PictureProvider_ChannelChangeSettings *pstChannelChangeSettings |
|---|
| 184 | ); |
|---|
| 185 | |
|---|
| 186 | BERR_Code |
|---|
| 187 | BXDM_PictureProvider_SetChannelChangeSettings_isr( |
|---|
| 188 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 189 | const BXDM_PictureProvider_ChannelChangeSettings *pstChannelChangeSettings |
|---|
| 190 | ); |
|---|
| 191 | |
|---|
| 192 | BERR_Code |
|---|
| 193 | BXDM_PictureProvider_GetChannelChangeSettings_isr( |
|---|
| 194 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 195 | BXDM_PictureProvider_ChannelChangeSettings *pstChannelChangeSettings |
|---|
| 196 | ); |
|---|
| 197 | |
|---|
| 198 | BERR_Code |
|---|
| 199 | BXDM_PictureProvider_SetMuteMode_isr( |
|---|
| 200 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 201 | bool bEnable |
|---|
| 202 | ); |
|---|
| 203 | |
|---|
| 204 | BERR_Code |
|---|
| 205 | BXDM_PictureProvider_GetMuteMode_isr( |
|---|
| 206 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 207 | bool *pbEnable |
|---|
| 208 | ); |
|---|
| 209 | |
|---|
| 210 | |
|---|
| 211 | /*************************************************************************** |
|---|
| 212 | |
|---|
| 213 | Below is an explanation of the new eDisplayFieldMode mode |
|---|
| 214 | "BXDM_PictureProvider_DisplayFieldMode_eAuto" and the supporting API |
|---|
| 215 | "BXDM_PictureProvider_SetDeinterlacerMaxHeight". |
|---|
| 216 | |
|---|
| 217 | For normal play and fast forward, eDisplayFieldMode should be set to "eBothField". |
|---|
| 218 | The question is how to set eDisplayFieldMode for slow motion and pause. |
|---|
| 219 | If there is an "appropriate" deinterlacer in the output path, it should be set to |
|---|
| 220 | "eBothField" for the best results. If there is NOT an "appropriate" deinterlacer, |
|---|
| 221 | it should be set to "eSingleField"; this will minimize jitter at the expense of a lower |
|---|
| 222 | resolution image. The new eDisplayFieldMode of "BXDM_PictureProvider_DisplayFieldMode_eAuto" solves this |
|---|
| 223 | problem by automatically selecting either "eBothField" or "eSingleField" during slow |
|---|
| 224 | motion and pause. |
|---|
| 225 | |
|---|
| 226 | Having an "appropriate" deinterlacer is defined as: |
|---|
| 227 | - every output is driven by a deinterlacer |
|---|
| 228 | - AND the least capable deinterlacer can support the stream height |
|---|
| 229 | - AND the deinterlacer(s) are enabled |
|---|
| 230 | |
|---|
| 231 | The API "BXDM_PictureProvider_SetDeinterlacerMaxHeight" is used to set the |
|---|
| 232 | variable "uiMaxHeightSupportedByDeinterlacer". |
|---|
| 233 | The application/middleware will use "uiMaxHeightSupportedByDeinterlacer" to indicate if there |
|---|
| 234 | is an "appropriate" deinterlacer. If "uiMaxHeightSupportedByDeinterlacer" is set to "0", |
|---|
| 235 | there is NOT an "appropriate" deinterlacer and the scan out will be "eSingleField". |
|---|
| 236 | If "uiMaxHeightSupportedByDeinterlacer" is set to a non-zero value, the scan out will be "eBothField" if |
|---|
| 237 | the stream height is less than or equal to "uiMaxHeightSupportedByDeinterlacer". |
|---|
| 238 | If the height is greater than "uiMaxHeightSupportedByDeinterlacer", the scan out will be "eSingleField". |
|---|
| 239 | |
|---|
| 240 | The following pseudo code summaries the behavior: |
|---|
| 241 | |
|---|
| 242 | if ( stGlobal.eDisplayFieldMode == BXDM_PictureProvider_DisplayFieldMode_eAuto ) |
|---|
| 243 | { |
|---|
| 244 | // Default to eBothField |
|---|
| 245 | |
|---|
| 246 | stLocal.eDisplayFieldMode = BXDM_PictureProvider_DisplayFieldMode_eBothField; |
|---|
| 247 | |
|---|
| 248 | // When paused or in slow motion, revert to eSingleField if the deinterlacer cannot support the stream. |
|---|
| 249 | |
|---|
| 250 | if ( stSource.uiHeight > uiMaxHeightSupportedByDeinterlacer |
|---|
| 251 | && true == bPausedOrSlowMotion |
|---|
| 252 | ) |
|---|
| 253 | { |
|---|
| 254 | stLocal.eDisplayFieldMode = BXDM_PictureProvider_DisplayFieldMode_eSingleField; |
|---|
| 255 | } |
|---|
| 256 | |
|---|
| 257 | } |
|---|
| 258 | |
|---|
| 259 | ****************************************************************************/ |
|---|
| 260 | |
|---|
| 261 | #if 0 |
|---|
| 262 | typedef enum BXDM_PictureProvider_DisplayFieldMode |
|---|
| 263 | { |
|---|
| 264 | BXDM_PictureProvider_DisplayFieldMode_eBothField, /* regular both field display */ |
|---|
| 265 | BXDM_PictureProvider_DisplayFieldMode_eTopFieldOnly, /* Display Top fld only */ |
|---|
| 266 | BXDM_PictureProvider_DisplayFieldMode_eBottomFieldOnly, /* Display Bottom fld only */ |
|---|
| 267 | BXDM_PictureProvider_DisplayFieldMode_eSingleField, /* Display single field only. |
|---|
| 268 | * The field that is displayed |
|---|
| 269 | * is the same as the one that |
|---|
| 270 | * is currently being |
|---|
| 271 | * displayed. */ |
|---|
| 272 | BXDM_PictureProvider_DisplayFieldMode_eAuto, /* SW7405-4117: select either eSingleField or eBothField |
|---|
| 273 | * based on the steam height during slow motion (and preroll). */ |
|---|
| 274 | BXDM_PictureProvider_DisplayFieldMode_eMax |
|---|
| 275 | } BXDM_PictureProvider_DisplayFieldMode; |
|---|
| 276 | #endif |
|---|
| 277 | |
|---|
| 278 | BERR_Code |
|---|
| 279 | BXDM_PictureProvider_SetDisplayFieldMode_isr( |
|---|
| 280 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 281 | BXDM_PictureProvider_DisplayFieldMode eDisplayFieldMode |
|---|
| 282 | ); |
|---|
| 283 | |
|---|
| 284 | BERR_Code |
|---|
| 285 | BXDM_PictureProvider_GetDisplayFieldMode_isr( |
|---|
| 286 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 287 | BXDM_PictureProvider_DisplayFieldMode *peDisplayFieldMode |
|---|
| 288 | ); |
|---|
| 289 | |
|---|
| 290 | #if 0 |
|---|
| 291 | typedef enum BXDM_PictureProvider_SourceFormatOverride |
|---|
| 292 | { |
|---|
| 293 | BXDM_PictureProvider_SourceFormatOverride_eDefault, |
|---|
| 294 | BXDM_PictureProvider_SourceFormatOverride_eInterlaced, |
|---|
| 295 | BXDM_PictureProvider_SourceFormatOverride_eProgressive, |
|---|
| 296 | |
|---|
| 297 | BXDM_PictureProvider_SourceFormatOverride_eMax |
|---|
| 298 | } BXDM_PictureProvider_SourceFormatOverride; |
|---|
| 299 | #endif |
|---|
| 300 | |
|---|
| 301 | BERR_Code |
|---|
| 302 | BXDM_PictureProvider_SetSourceFormatOverride_isr( |
|---|
| 303 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 304 | BXDM_PictureProvider_SourceFormatOverride eSourceFormatOverride |
|---|
| 305 | ); |
|---|
| 306 | |
|---|
| 307 | BERR_Code |
|---|
| 308 | BXDM_PictureProvider_GetSourceFormatOverride_isr( |
|---|
| 309 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 310 | BXDM_PictureProvider_SourceFormatOverride *peSourceFormatOverride |
|---|
| 311 | ); |
|---|
| 312 | |
|---|
| 313 | #if 0 |
|---|
| 314 | typedef enum BXDM_PictureProvider_ScanModeOverride |
|---|
| 315 | { |
|---|
| 316 | BXDM_PictureProvider_ScanModeOverride_eDefault, |
|---|
| 317 | BXDM_PictureProvider_ScanModeOverride_eInterlaced, |
|---|
| 318 | BXDM_PictureProvider_ScanModeOverride_eProgressive, |
|---|
| 319 | |
|---|
| 320 | BXDM_PictureProvider_ScanModeOverride_eMax |
|---|
| 321 | } BXDM_PictureProvider_ScanModeOverride; |
|---|
| 322 | #endif |
|---|
| 323 | |
|---|
| 324 | BERR_Code |
|---|
| 325 | BXDM_PictureProvider_SetScanModeOverride_isr( |
|---|
| 326 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 327 | BXDM_PictureProvider_ScanModeOverride eScanModeOverride |
|---|
| 328 | ); |
|---|
| 329 | |
|---|
| 330 | BERR_Code |
|---|
| 331 | BXDM_PictureProvider_GetScanModeOverride_isr( |
|---|
| 332 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 333 | BXDM_PictureProvider_ScanModeOverride *peScanModeOverride |
|---|
| 334 | ); |
|---|
| 335 | |
|---|
| 336 | BERR_Code |
|---|
| 337 | BXDM_PictureProvider_SetFreeze_isr( |
|---|
| 338 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 339 | bool bEnable |
|---|
| 340 | ); |
|---|
| 341 | |
|---|
| 342 | BERR_Code |
|---|
| 343 | BXDM_PictureProvider_GetFreeze_isr( |
|---|
| 344 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 345 | bool *pbEnable |
|---|
| 346 | ); |
|---|
| 347 | |
|---|
| 348 | #if 0 |
|---|
| 349 | typedef enum BXDM_PictureProvider_240iScanMode |
|---|
| 350 | { |
|---|
| 351 | /* Assume non-AVC 240i/288i has pulldown="F" (default) */ |
|---|
| 352 | BXDM_PictureProvider_240iScanMode_eForceProgressive, |
|---|
| 353 | |
|---|
| 354 | /* Assume non-AVC 240i/288i is coded correctly */ |
|---|
| 355 | BXDM_PictureProvider_240iScanMode_eUseEncodedFormat, |
|---|
| 356 | |
|---|
| 357 | BXDM_PictureProvider_240iScanMode_eMax |
|---|
| 358 | } BXDM_PictureProvider_240iScanMode; |
|---|
| 359 | #endif |
|---|
| 360 | |
|---|
| 361 | BERR_Code |
|---|
| 362 | BXDM_PictureProvider_Set240iScanMode_isr( |
|---|
| 363 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 364 | BXDM_PictureProvider_240iScanMode e240iScanMode |
|---|
| 365 | ); |
|---|
| 366 | |
|---|
| 367 | BERR_Code |
|---|
| 368 | BXDM_PictureProvider_Get240iScanMode_isr( |
|---|
| 369 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 370 | BXDM_PictureProvider_240iScanMode *pe240iScanMode |
|---|
| 371 | ); |
|---|
| 372 | |
|---|
| 373 | #if 0 |
|---|
| 374 | typedef enum BXDM_PictureProvider_PulldownMode |
|---|
| 375 | { |
|---|
| 376 | BXDM_PictureProvider_PulldownMode_eTopBottom, |
|---|
| 377 | BXDM_PictureProvider_PulldownMode_eBottomTop, |
|---|
| 378 | BXDM_PictureProvider_PulldownMode_eUseEncodedFormat, |
|---|
| 379 | |
|---|
| 380 | BXDM_PictureProvider_PulldownMode_eMax |
|---|
| 381 | } BXDM_PictureProvider_PulldownMode; |
|---|
| 382 | #endif |
|---|
| 383 | |
|---|
| 384 | BERR_Code |
|---|
| 385 | BXDM_PictureProvider_Set480pPulldownMode_isr( |
|---|
| 386 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 387 | BXDM_PictureProvider_PulldownMode ePulldownMode |
|---|
| 388 | ); |
|---|
| 389 | |
|---|
| 390 | BERR_Code |
|---|
| 391 | BXDM_PictureProvider_Get480pPulldownMode_isr( |
|---|
| 392 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 393 | BXDM_PictureProvider_PulldownMode *pePulldownMode |
|---|
| 394 | ); |
|---|
| 395 | |
|---|
| 396 | BERR_Code |
|---|
| 397 | BXDM_PictureProvider_Set1080pPulldownMode_isr( |
|---|
| 398 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 399 | BXDM_PictureProvider_PulldownMode ePulldownMode |
|---|
| 400 | ); |
|---|
| 401 | |
|---|
| 402 | BERR_Code |
|---|
| 403 | BXDM_PictureProvider_Get1080pPulldownMode_isr( |
|---|
| 404 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 405 | BXDM_PictureProvider_PulldownMode *pePulldownMode |
|---|
| 406 | ); |
|---|
| 407 | |
|---|
| 408 | BERR_Code |
|---|
| 409 | BXDM_PictureProvider_SetPTSOffset_isr( |
|---|
| 410 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 411 | uint32_t uiOffset |
|---|
| 412 | ); |
|---|
| 413 | |
|---|
| 414 | BERR_Code |
|---|
| 415 | BXDM_PictureProvider_GetPTSOffset_isr( |
|---|
| 416 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 417 | uint32_t *puiOffset |
|---|
| 418 | ); |
|---|
| 419 | |
|---|
| 420 | #if 0 |
|---|
| 421 | typedef enum BXDM_PictureProvider_DisplayMode |
|---|
| 422 | { |
|---|
| 423 | BXDM_PictureProvider_DisplayMode_eTSM, /* Use PTS for display timing */ |
|---|
| 424 | BXDM_PictureProvider_DisplayMode_eVirtualTSM, /* Ignore PTS and follow pulldown and frame rate */ |
|---|
| 425 | |
|---|
| 426 | BXDM_PictureProvider_DisplayMode_eMax |
|---|
| 427 | } BXDM_PictureProvider_DisplayMode; |
|---|
| 428 | #endif |
|---|
| 429 | |
|---|
| 430 | BERR_Code |
|---|
| 431 | BXDM_PictureProvider_SetDisplayMode_isr( |
|---|
| 432 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 433 | BXDM_PictureProvider_DisplayMode eDisplayMode |
|---|
| 434 | ); |
|---|
| 435 | |
|---|
| 436 | BERR_Code |
|---|
| 437 | BXDM_PictureProvider_GetDisplayMode_isr( |
|---|
| 438 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 439 | BXDM_PictureProvider_DisplayMode *peDisplayMode |
|---|
| 440 | ); |
|---|
| 441 | |
|---|
| 442 | #if 0 |
|---|
| 443 | typedef struct BXDM_PictureProvider_TSMThresholdSettings |
|---|
| 444 | { |
|---|
| 445 | uint32_t uiTooEarlyThreshold; |
|---|
| 446 | uint32_t uiTooLateThreshold; |
|---|
| 447 | uint32_t uiDeltaStcPtsDiffThreshold; |
|---|
| 448 | } BXDM_PictureProvider_TSMThresholdSettings; |
|---|
| 449 | #endif |
|---|
| 450 | |
|---|
| 451 | BERR_Code |
|---|
| 452 | BXDM_PictureProvider_GetDefaultTSMThresholdSettings_isr( |
|---|
| 453 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 454 | BXDM_PictureProvider_TSMThresholdSettings *pstTSMThresholdSettings |
|---|
| 455 | ); |
|---|
| 456 | |
|---|
| 457 | BERR_Code |
|---|
| 458 | BXDM_PictureProvider_SetTSMThresholdSettings_isr( |
|---|
| 459 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 460 | const BXDM_PictureProvider_TSMThresholdSettings *pstTSMThresholdSettings |
|---|
| 461 | ); |
|---|
| 462 | |
|---|
| 463 | BERR_Code |
|---|
| 464 | BXDM_PictureProvider_GetTSMThresholdSettings_isr( |
|---|
| 465 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 466 | BXDM_PictureProvider_TSMThresholdSettings *pstTSMThresholdSettings |
|---|
| 467 | ); |
|---|
| 468 | |
|---|
| 469 | /* These don't necessarily fit into PictureProvider role */ |
|---|
| 470 | BERR_Code |
|---|
| 471 | BXDM_PictureProvider_SetSTCValid_isr( |
|---|
| 472 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 473 | bool bValid |
|---|
| 474 | ); |
|---|
| 475 | |
|---|
| 476 | BERR_Code |
|---|
| 477 | BXDM_PictureProvider_GetSTCValid_isr( |
|---|
| 478 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 479 | bool *pbValid |
|---|
| 480 | ); |
|---|
| 481 | |
|---|
| 482 | |
|---|
| 483 | #if 0 |
|---|
| 484 | typedef enum BXDM_PictureProvider_ClipTimeType |
|---|
| 485 | { |
|---|
| 486 | /* Disables all clip logic. If clipping is currently active, it |
|---|
| 487 | * will be disabled and normal TSM will resume. If a clip time was |
|---|
| 488 | * previously set (but not yet used), it will be reset */ |
|---|
| 489 | BXDM_PictureProvider_ClipTimeType_eDisable = 0, |
|---|
| 490 | |
|---|
| 491 | /* Both clip start and stop times are valid w/ DVD specific |
|---|
| 492 | * functionality: |
|---|
| 493 | - Pictures causing PTS Errors are displayed in vsync mode |
|---|
| 494 | - Start Time of 0 means start immediately |
|---|
| 495 | - Stop Time of 0xFFFFFFFF means stop on a marker |
|---|
| 496 | - Stop Event: |
|---|
| 497 | - TSM Mode: STC value is compared to stop time |
|---|
| 498 | - vTSM Mode: PTS value is compared to stop time |
|---|
| 499 | - EOC/VSYNC Mode: stop time is ignored. Marker is used to |
|---|
| 500 | indicate stop. |
|---|
| 501 | */ |
|---|
| 502 | BXDM_PictureProvider_ClipTimeType_eEnableBothWithDVDCompatibility, |
|---|
| 503 | |
|---|
| 504 | /* Both clip start and stop times are valid */ |
|---|
| 505 | BXDM_PictureProvider_ClipTimeType_eEnableBoth, |
|---|
| 506 | |
|---|
| 507 | /* Only clip start time is valid */ |
|---|
| 508 | BXDM_PictureProvider_ClipTimeType_eClipStartOnly, |
|---|
| 509 | |
|---|
| 510 | /* Only clip stop time is valid */ |
|---|
| 511 | BXDM_PictureProvider_ClipTimeType_eClipStopOnly, |
|---|
| 512 | |
|---|
| 513 | BXDM_PictureProvider_ClipTimeType_eMax |
|---|
| 514 | } BXDM_PictureProvider_ClipTimeType; |
|---|
| 515 | |
|---|
| 516 | typedef struct BXDM_PictureProvider_ClipTimeSettings |
|---|
| 517 | { |
|---|
| 518 | bool bValid; |
|---|
| 519 | |
|---|
| 520 | BXDM_PictureProvider_ClipTimeType eType; |
|---|
| 521 | uint32_t uiStart; |
|---|
| 522 | uint32_t uiStop; |
|---|
| 523 | uint32_t uiId; |
|---|
| 524 | } BXDM_PictureProvider_ClipTimeSettings; |
|---|
| 525 | #endif |
|---|
| 526 | |
|---|
| 527 | BERR_Code |
|---|
| 528 | BXDM_PictureProvider_GetDefaultClipTimeSettings_isr( |
|---|
| 529 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 530 | BXDM_PictureProvider_ClipTimeSettings *pstClipTimeSettings |
|---|
| 531 | ); |
|---|
| 532 | |
|---|
| 533 | BERR_Code |
|---|
| 534 | BXDM_PictureProvider_SetClipTimeSettings_isr( |
|---|
| 535 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 536 | const BXDM_PictureProvider_ClipTimeSettings *pstClipTimeSettings |
|---|
| 537 | ); |
|---|
| 538 | |
|---|
| 539 | BERR_Code |
|---|
| 540 | BXDM_PictureProvider_SetSoftwarePCROffset_isr( |
|---|
| 541 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 542 | uint32_t uiOffset |
|---|
| 543 | ); |
|---|
| 544 | |
|---|
| 545 | BERR_Code |
|---|
| 546 | BXDM_PictureProvider_GetSoftwarePCROffset_isr( |
|---|
| 547 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 548 | uint32_t *puiOffset |
|---|
| 549 | ); |
|---|
| 550 | |
|---|
| 551 | BERR_Code |
|---|
| 552 | BXDM_PictureProvider_SetHardwarePCROffsetMode_isr( |
|---|
| 553 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 554 | bool bEnable |
|---|
| 555 | ); |
|---|
| 556 | |
|---|
| 557 | BERR_Code |
|---|
| 558 | BXDM_PictureProvider_GetHardwarePCROffsetMode_isr( |
|---|
| 559 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 560 | bool *pbEnable |
|---|
| 561 | ); |
|---|
| 562 | |
|---|
| 563 | BERR_Code |
|---|
| 564 | BXDM_PictureProvider_SetPlaybackRate_isr( |
|---|
| 565 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 566 | const BXDM_Picture_Rate *pstPlaybackRate |
|---|
| 567 | ); |
|---|
| 568 | |
|---|
| 569 | BERR_Code |
|---|
| 570 | BXDM_PictureProvider_GetPlaybackRate_isr( |
|---|
| 571 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 572 | BXDM_Picture_Rate *pstPlaybackRate |
|---|
| 573 | ); |
|---|
| 574 | |
|---|
| 575 | #if 0 |
|---|
| 576 | typedef enum BXDM_PictureProvider_PictureDropMode |
|---|
| 577 | { |
|---|
| 578 | BXDM_PictureProvider_PictureDropMode_eField, |
|---|
| 579 | BXDM_PictureProvider_PictureDropMode_eFrame, |
|---|
| 580 | |
|---|
| 581 | /* Add more enums ABOVE this line */ |
|---|
| 582 | BXDM_PictureProvider_PictureDropMode_eMax |
|---|
| 583 | } BXDM_PictureProvider_PictureDropMode; |
|---|
| 584 | #endif |
|---|
| 585 | |
|---|
| 586 | BERR_Code |
|---|
| 587 | BXDM_PictureProvider_SetPictureDropMode_isr( |
|---|
| 588 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 589 | BXDM_PictureProvider_PictureDropMode ePictureDropMode |
|---|
| 590 | ); |
|---|
| 591 | |
|---|
| 592 | BERR_Code |
|---|
| 593 | BXDM_PictureProvider_GetPictureDropMode_isr( |
|---|
| 594 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 595 | BXDM_PictureProvider_PictureDropMode *pePictureDropMode |
|---|
| 596 | ); |
|---|
| 597 | |
|---|
| 598 | #if 0 |
|---|
| 599 | typedef enum BXDM_PictureProvider_PTSType |
|---|
| 600 | { |
|---|
| 601 | BXDM_PictureProvider_PTSType_eCoded, |
|---|
| 602 | BXDM_PictureProvider_PTSType_eInterpolatedFromValidPTS, |
|---|
| 603 | BXDM_PictureProvider_PTSType_eHostProgrammedPTS_Deprecated, |
|---|
| 604 | BXDM_PictureProvider_PTSType_eInterpolatedFromInvalidPTS, |
|---|
| 605 | |
|---|
| 606 | BXDM_PictureProvider_PTSType_eMax |
|---|
| 607 | } BXDM_PictureProvider_PTSType; |
|---|
| 608 | |
|---|
| 609 | typedef struct BXDM_PictureProvider_PTSInfo |
|---|
| 610 | { |
|---|
| 611 | /* generally the PTS of the picture being delivered to VDC. */ |
|---|
| 612 | uint32_t ui32RunningPTS; |
|---|
| 613 | |
|---|
| 614 | /* The effective PTS value (accounting for all offsets) that DM |
|---|
| 615 | * uses for TSM evaluation */ |
|---|
| 616 | uint32_t ui32EffectivePTS; |
|---|
| 617 | |
|---|
| 618 | /* The PTS type tag */ |
|---|
| 619 | BXDM_PictureProvider_PTSType ePTSType; |
|---|
| 620 | |
|---|
| 621 | /* the STC delivered by the video decoder on this vsync. */ |
|---|
| 622 | uint32_t uiSTCSnapShot; |
|---|
| 623 | |
|---|
| 624 | /* PCR offset used by the TSM logic for the picture being delivered to VDC. */ |
|---|
| 625 | uint32_t uiPCROffset; |
|---|
| 626 | |
|---|
| 627 | /* Indicates the state of the 'uiPCROffset' field */ |
|---|
| 628 | bool bPcrOffsetValid; |
|---|
| 629 | |
|---|
| 630 | /* the PCR discontiniuty flag for the picture being delivered to VDC. */ |
|---|
| 631 | bool bPcrDiscontinuity; |
|---|
| 632 | |
|---|
| 633 | /* |
|---|
| 634 | * A running count of the number of elements (fields/frames) dropped by |
|---|
| 635 | * the "Display Manager" due to "Time Stamp Management" failures. |
|---|
| 636 | * Reset upon calling "BXVD_StartDecode()". |
|---|
| 637 | */ |
|---|
| 638 | uint32_t uiDisplayManagerDroppedCount; |
|---|
| 639 | |
|---|
| 640 | /* |
|---|
| 641 | * A running count of the number of pictures the decoder delivered to |
|---|
| 642 | * the "Display Manager". Reset upon calling "BXVD_StartDecode()". |
|---|
| 643 | */ |
|---|
| 644 | uint32_t uiPicturesDecodedCount; |
|---|
| 645 | |
|---|
| 646 | /* PR50623: A programmable offset added to the STC prior to TSM evaluation. */ |
|---|
| 647 | uint32_t uiSwPcrOffset; |
|---|
| 648 | |
|---|
| 649 | /* PR50623: A programmable flag which indicates whether or not to include the |
|---|
| 650 | * HW PCR offset in the TSM equation. |
|---|
| 651 | */ |
|---|
| 652 | bool bUseHwPcrOffset; |
|---|
| 653 | } BXDM_PictureProvider_PTSInfo; |
|---|
| 654 | |
|---|
| 655 | typedef enum BXDM_PictureProvider_TSMResult |
|---|
| 656 | { |
|---|
| 657 | BXDM_PictureProvider_TSMResult_eTooEarly, /* (PTS > STC) and ((PTS - STC) > discard threshold) */ |
|---|
| 658 | BXDM_PictureProvider_TSMResult_eWait, /* (PTS > STC) and ((PTS - STC) <= discard threshold) */ |
|---|
| 659 | BXDM_PictureProvider_TSMResult_ePass, /* (PTS <= STC) and ((STC - PTS) <= too late threshold) */ |
|---|
| 660 | BXDM_PictureProvider_TSMResult_eTooLate, /* (PTS < STC) and ((STC - PTS) > too late threshold) */ |
|---|
| 661 | BXDM_PictureProvider_TSMResult_eDrop, /* Drop for non-TSM reason (freeze, pts filtering, invalid pts, invalid pcr, etc) */ |
|---|
| 662 | |
|---|
| 663 | BXDM_PictureProvider_TSMResult_eMax |
|---|
| 664 | } BXDM_PictureProvider_TSMResult; |
|---|
| 665 | |
|---|
| 666 | typedef enum BXDM_PictureProvider_PictureHandlingMode |
|---|
| 667 | { |
|---|
| 668 | BXDM_PictureProvider_PictureHandlingMode_eDefault, /* In Broadcast: |
|---|
| 669 | - TooEarly --> eDrop |
|---|
| 670 | - TooLate --> eHonorPTS |
|---|
| 671 | In Playback: |
|---|
| 672 | - TooEarly --> eHonorPTS for 3 vsyncs. eDrop after 3 vsyncs. Reset on non-TooEarly. |
|---|
| 673 | - TooLate --> eIgnorePTS for first picture. eHonorPTS for susequent pictures. Reset on non-TooLate. |
|---|
| 674 | */ |
|---|
| 675 | BXDM_PictureProvider_PictureHandlingMode_eHonorPTS, /* Honor the PTS of the picture and assume it is correct */ |
|---|
| 676 | BXDM_PictureProvider_PictureHandlingMode_eIgnorePTS, /* Ignore the PTS of the picture and instead interpolate from the previous PTS */ |
|---|
| 677 | BXDM_PictureProvider_PictureHandlingMode_eDrop, /* Drop the picture immediately */ |
|---|
| 678 | BXDM_PictureProvider_PictureHandlingMode_eWait, /* SW7635-51: give the middleware/application the option to hold off processing a picture. */ |
|---|
| 679 | |
|---|
| 680 | BXDM_PictureProvider_PictureHandlingMode_eMax |
|---|
| 681 | } BXDM_PictureProvider_PictureHandlingMode; |
|---|
| 682 | |
|---|
| 683 | typedef struct BXDM_PictureProvider_TSMInfo |
|---|
| 684 | { |
|---|
| 685 | BXDM_PictureProvider_TSMResult eTSMResult; /* The TSM Result for the currently evaluated picture. *read only* */ |
|---|
| 686 | BXDM_PictureProvider_PictureHandlingMode ePictureHandlingMode; /* The picture handling mode for the currently evaluated picture */ |
|---|
| 687 | } BXDM_PictureProvider_TSMInfo; |
|---|
| 688 | |
|---|
| 689 | typedef struct BXDM_PictureProvider_Counters |
|---|
| 690 | { |
|---|
| 691 | uint32_t uiDisplayManagerDroppedCount; /* Number of Elements (Fields/Frames) DM decided to drop because of TSM. Running Counter. */ |
|---|
| 692 | uint32_t uiDecoderDroppedCount; /* Number of Elements (Fields/Frames) DM asked the Decoder to drop. Running Counter. */ |
|---|
| 693 | uint32_t uiDisplayedParityFailureCount; /* Number of Elements (Fields/Frames) DM displayed eventhough there was Parity Failure, under normal display condition. Running Counter. */ |
|---|
| 694 | uint32_t uiDisplayedCount; /* Number of Elements (Fields/Frames) DM delevered to VDC under normal display conditions. Running Counter. */ |
|---|
| 695 | uint32_t uiPicturesDecodedCount; /* Number of Entries (PPBs) DM received from the AVD FW. Running Counter. */ |
|---|
| 696 | uint32_t uiVsyncUnderflowCount; /* Number of Vsync the DM had Underflow in the Disp FIFO. Running Counter. */ |
|---|
| 697 | uint32_t uiDecodeErrorCount; /* Number of Errors Decoder encountered. DM only passes this info as recieved from the AVD through the PPB */ |
|---|
| 698 | uint32_t uiVsyncCount; /* Running count, number of times DM callback has been executed for this channel. */ |
|---|
| 699 | uint32_t uiIFrameCount; /* Number of I frames DM received (inclusive of errors). Running Counter. */ |
|---|
| 700 | uint32_t uiErrorIFrameCount; /* Number of I frames DM received with the error bit set. Running Counter. */ |
|---|
| 701 | uint32_t uiPicturesReceivedCount; /* Number of pictures received from the decoder. */ |
|---|
| 702 | uint32_t uiPicturesReleasedCount; /* Number of pictures released by the DM. */ |
|---|
| 703 | uint32_t uiUnderflowCount; /* Number of times the delivery queue has gotten into an underflow state. */ |
|---|
| 704 | } BXDM_PictureProvider_Counters; |
|---|
| 705 | #endif |
|---|
| 706 | |
|---|
| 707 | BERR_Code |
|---|
| 708 | BXDM_PictureProvider_GetCounters_isr( |
|---|
| 709 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 710 | BXDM_PictureProvider_Counters *pstCounters |
|---|
| 711 | ); |
|---|
| 712 | |
|---|
| 713 | BERR_Code |
|---|
| 714 | BXDM_PictureProvider_GetCurrentPTSInfo_isr( |
|---|
| 715 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 716 | BXDM_PictureProvider_PTSInfo *pPTSInfo |
|---|
| 717 | ); |
|---|
| 718 | |
|---|
| 719 | BERR_Code |
|---|
| 720 | BXDM_PictureProvider_GetLastCodedPTSInfo_isr( |
|---|
| 721 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 722 | BXDM_PictureProvider_PTSInfo *pPTSInfo |
|---|
| 723 | ); |
|---|
| 724 | |
|---|
| 725 | BERR_Code |
|---|
| 726 | BXDM_PictureProvider_GetNextPTSInfo_isr( |
|---|
| 727 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 728 | BXDM_PictureProvider_PTSInfo *pPTSInfo |
|---|
| 729 | ); |
|---|
| 730 | |
|---|
| 731 | BERR_Code |
|---|
| 732 | BXDM_PictureProvider_GetIPictureFoundStatus_isr( |
|---|
| 733 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 734 | bool *pbFound |
|---|
| 735 | ); |
|---|
| 736 | |
|---|
| 737 | BERR_Code |
|---|
| 738 | BXDM_PictureProvider_GetPictureTag_isr( |
|---|
| 739 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 740 | uint32_t *puiValue |
|---|
| 741 | ); |
|---|
| 742 | |
|---|
| 743 | BERR_Code |
|---|
| 744 | BXDM_PictureProvider_GetCurrentTimeCode_isr( |
|---|
| 745 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 746 | BXDM_Picture_GopTimeCode *pstTimeCode |
|---|
| 747 | ); |
|---|
| 748 | |
|---|
| 749 | BERR_Code |
|---|
| 750 | BXDM_PictureProvider_GetCurrentPicture_isr( |
|---|
| 751 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 752 | BXDM_Picture *pPicture |
|---|
| 753 | ); |
|---|
| 754 | |
|---|
| 755 | BERR_Code |
|---|
| 756 | BXDM_PictureProvider_SetPauseMode_isr( |
|---|
| 757 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 758 | bool bEnable |
|---|
| 759 | ); |
|---|
| 760 | |
|---|
| 761 | BERR_Code |
|---|
| 762 | BXDM_PictureProvider_GetPauseMode_isr( |
|---|
| 763 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 764 | bool *pbEnable |
|---|
| 765 | ); |
|---|
| 766 | |
|---|
| 767 | #if 0 |
|---|
| 768 | typedef enum BXDM_PictureProvider_FrameAdvanceMode |
|---|
| 769 | { |
|---|
| 770 | BXDM_PictureProvider_FrameAdvanceMode_eOff, |
|---|
| 771 | BXDM_PictureProvider_FrameAdvanceMode_eField, |
|---|
| 772 | BXDM_PictureProvider_FrameAdvanceMode_eFrame, |
|---|
| 773 | BXDM_PictureProvider_FrameAdvanceMode_eFrameByField, |
|---|
| 774 | |
|---|
| 775 | BXDM_PictureProvider_FrameAdvanceMode_eMax |
|---|
| 776 | } BXDM_PictureProvider_FrameAdvanceMode; |
|---|
| 777 | #endif |
|---|
| 778 | |
|---|
| 779 | BERR_Code |
|---|
| 780 | BXDM_PictureProvider_SetFrameAdvanceMode_isr( |
|---|
| 781 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 782 | BXDM_PictureProvider_FrameAdvanceMode eFrameAdvanceMode |
|---|
| 783 | ); |
|---|
| 784 | |
|---|
| 785 | #if 0 |
|---|
| 786 | typedef struct BXDM_PictureProvider_PreserveStateSettings |
|---|
| 787 | { |
|---|
| 788 | bool bDisplay; |
|---|
| 789 | bool bCounters; |
|---|
| 790 | } BXDM_PictureProvider_PreserveStateSettings; |
|---|
| 791 | #endif |
|---|
| 792 | |
|---|
| 793 | BERR_Code |
|---|
| 794 | BXDM_PictureProvider_GetDefaultPreserveStateSettings( |
|---|
| 795 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 796 | BXDM_PictureProvider_PreserveStateSettings *pstSettings |
|---|
| 797 | ); |
|---|
| 798 | |
|---|
| 799 | BERR_Code |
|---|
| 800 | BXDM_PictureProvider_SetPreserveStateSettings_isr( |
|---|
| 801 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 802 | const BXDM_PictureProvider_PreserveStateSettings *pstSettings |
|---|
| 803 | ); |
|---|
| 804 | |
|---|
| 805 | BERR_Code |
|---|
| 806 | BXDM_PictureProvider_GetPreserveStateSettings_isr( |
|---|
| 807 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 808 | BXDM_PictureProvider_PreserveStateSettings *pstSettings |
|---|
| 809 | ); |
|---|
| 810 | |
|---|
| 811 | BERR_Code |
|---|
| 812 | BXDM_PictureProvider_SetReverseFieldsMode_isr( |
|---|
| 813 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 814 | bool bEnable |
|---|
| 815 | ); |
|---|
| 816 | |
|---|
| 817 | BERR_Code |
|---|
| 818 | BXDM_PictureProvider_GetReverseFieldsMode_isr( |
|---|
| 819 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 820 | bool *pbEnable |
|---|
| 821 | ); |
|---|
| 822 | |
|---|
| 823 | BERR_Code |
|---|
| 824 | BXDM_PictureProvider_SetAutoValidateStcOnPauseMode_isr( |
|---|
| 825 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 826 | bool bEnable |
|---|
| 827 | ); |
|---|
| 828 | |
|---|
| 829 | BERR_Code |
|---|
| 830 | BXDM_PictureProvider_GetAutoValidateStcOnPauseMode_isr( |
|---|
| 831 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 832 | bool *pbEnable |
|---|
| 833 | ); |
|---|
| 834 | |
|---|
| 835 | BERR_Code |
|---|
| 836 | BXDM_PictureProvider_SetProtocol_isr( |
|---|
| 837 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 838 | BAVC_VideoCompressionStd eProtocol |
|---|
| 839 | ); |
|---|
| 840 | |
|---|
| 841 | BERR_Code |
|---|
| 842 | BXDM_PictureProvider_GetProtocol_isr( |
|---|
| 843 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 844 | BAVC_VideoCompressionStd *peProtocol |
|---|
| 845 | ); |
|---|
| 846 | |
|---|
| 847 | BERR_Code |
|---|
| 848 | BXDM_PictureProvider_SetJitterToleranceImprovementMode_isr( |
|---|
| 849 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 850 | bool bEnable |
|---|
| 851 | ); |
|---|
| 852 | |
|---|
| 853 | BERR_Code |
|---|
| 854 | BXDM_PictureProvider_GetJitterToleranceImprovementMode_isr( |
|---|
| 855 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 856 | bool *pbEnable |
|---|
| 857 | ); |
|---|
| 858 | |
|---|
| 859 | #if 0 |
|---|
| 860 | typedef enum BXDM_PictureProvider_MonitorRefreshRate |
|---|
| 861 | { |
|---|
| 862 | BXDM_PictureProvider_MonitorRefreshRate_eUnknown = 0, |
|---|
| 863 | BXDM_PictureProvider_MonitorRefreshRate_e23_976Hz, |
|---|
| 864 | BXDM_PictureProvider_MonitorRefreshRate_e24Hz, |
|---|
| 865 | BXDM_PictureProvider_MonitorRefreshRate_e25Hz, |
|---|
| 866 | BXDM_PictureProvider_MonitorRefreshRate_e29_97Hz, |
|---|
| 867 | BXDM_PictureProvider_MonitorRefreshRate_e30Hz, |
|---|
| 868 | BXDM_PictureProvider_MonitorRefreshRate_e50Hz, |
|---|
| 869 | BXDM_PictureProvider_MonitorRefreshRate_e59_94Hz, |
|---|
| 870 | BXDM_PictureProvider_MonitorRefreshRate_e60Hz, |
|---|
| 871 | BXDM_PictureProvider_MonitorRefreshRate_e48Hz, |
|---|
| 872 | |
|---|
| 873 | /* Add new enums above this line */ |
|---|
| 874 | BXDM_PictureProvider_MonitorRefreshRate_eMax |
|---|
| 875 | } BXDM_PictureProvider_MonitorRefreshRate; |
|---|
| 876 | #endif |
|---|
| 877 | |
|---|
| 878 | BERR_Code |
|---|
| 879 | BXDM_PictureProvider_SetMonitorRefreshRate_isr( |
|---|
| 880 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 881 | BXDM_PictureProvider_MonitorRefreshRate eMonitorRefreshRate |
|---|
| 882 | ); |
|---|
| 883 | |
|---|
| 884 | BERR_Code |
|---|
| 885 | BXDM_PictureProvider_GetMonitorRefreshRate_isr( |
|---|
| 886 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 887 | BXDM_PictureProvider_MonitorRefreshRate *peMonitorRefreshRate |
|---|
| 888 | ); |
|---|
| 889 | |
|---|
| 890 | #if 0 |
|---|
| 891 | typedef enum BXDM_PictureProvider_1080pScanMode |
|---|
| 892 | { |
|---|
| 893 | /* eDefault: 1080p pass-thru, else 1080i |
|---|
| 894 | * |
|---|
| 895 | * 1080p pass-thru cases: |
|---|
| 896 | * - 1080p23.97/24 --> 23.97/24 Hz |
|---|
| 897 | * - 1080p25 --> 25 Hz |
|---|
| 898 | * - 1080p29.97/30 --> 29.97/30 Hz |
|---|
| 899 | */ |
|---|
| 900 | BXDM_PictureProvider_1080pScanMode_eDefault = 0, |
|---|
| 901 | |
|---|
| 902 | /* eAdvanced: 1080p pass-thru + 1080p pulldown, else 1080i |
|---|
| 903 | * |
|---|
| 904 | * 1080p pulldown cases: |
|---|
| 905 | * - 1080p23.97/24 --> 59.94/60 Hz (3:2 frame cadence) |
|---|
| 906 | * - 1080p29.97/30 --> 59.94/60 Hz (2:2 frame cadence) |
|---|
| 907 | * - 1080p25 --> 50Hz (2:2 frame cadence) |
|---|
| 908 | */ |
|---|
| 909 | BXDM_PictureProvider_1080pScanMode_eAdvanced, |
|---|
| 910 | |
|---|
| 911 | /* Add new enums ABOVE this line */ |
|---|
| 912 | BXDM_PictureProvider_1080pScanMode_eMax |
|---|
| 913 | } BXDM_PictureProvider_1080pScanMode; |
|---|
| 914 | #endif |
|---|
| 915 | |
|---|
| 916 | BERR_Code |
|---|
| 917 | BXDM_PictureProvider_Set1080pScanMode_isr( |
|---|
| 918 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 919 | BXDM_PictureProvider_1080pScanMode eScanMode |
|---|
| 920 | ); |
|---|
| 921 | |
|---|
| 922 | BERR_Code |
|---|
| 923 | BXDM_PictureProvider_Get1080pScanMode_isr( |
|---|
| 924 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 925 | BXDM_PictureProvider_1080pScanMode *peScanMode |
|---|
| 926 | ); |
|---|
| 927 | |
|---|
| 928 | BERR_Code |
|---|
| 929 | BXDM_PictureProvider_SetSTCIndex_isr( |
|---|
| 930 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 931 | uint32_t uiValue |
|---|
| 932 | ); |
|---|
| 933 | |
|---|
| 934 | BERR_Code |
|---|
| 935 | BXDM_PictureProvider_GetSTCIndex_isr( |
|---|
| 936 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 937 | uint32_t *puiValue |
|---|
| 938 | ); |
|---|
| 939 | |
|---|
| 940 | BERR_Code |
|---|
| 941 | BXDM_PictureProvider_SetCRCMode_isr( |
|---|
| 942 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 943 | bool bEnable |
|---|
| 944 | ); |
|---|
| 945 | |
|---|
| 946 | BERR_Code |
|---|
| 947 | BXDM_PictureProvider_GetCRCMode_isr( |
|---|
| 948 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 949 | bool *pbEnable |
|---|
| 950 | ); |
|---|
| 951 | |
|---|
| 952 | BERR_Code |
|---|
| 953 | BXDM_PictureProvider_SetRemovalDelay_isr( |
|---|
| 954 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 955 | uint32_t uiValue |
|---|
| 956 | ); |
|---|
| 957 | |
|---|
| 958 | BERR_Code |
|---|
| 959 | BXDM_PictureProvider_GetRemovalDelay_isr( |
|---|
| 960 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 961 | uint32_t *puiValue |
|---|
| 962 | ); |
|---|
| 963 | |
|---|
| 964 | BERR_Code |
|---|
| 965 | BXDM_PictureProvider_SetPreRollRate_isr( |
|---|
| 966 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 967 | const BXDM_Picture_Rate *pstPreRollRate |
|---|
| 968 | ); |
|---|
| 969 | |
|---|
| 970 | BERR_Code |
|---|
| 971 | BXDM_PictureProvider_GetPreRollRate_isr( |
|---|
| 972 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 973 | BXDM_Picture_Rate *pstPreRollRate |
|---|
| 974 | ); |
|---|
| 975 | |
|---|
| 976 | BERR_Code |
|---|
| 977 | BXDM_PictureProvider_SetPlaybackMode_isr( |
|---|
| 978 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 979 | bool bEnable |
|---|
| 980 | ); |
|---|
| 981 | |
|---|
| 982 | BERR_Code |
|---|
| 983 | BXDM_PictureProvider_GetPlaybackMode_isr( |
|---|
| 984 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 985 | bool *pbEnable |
|---|
| 986 | ); |
|---|
| 987 | |
|---|
| 988 | BERR_Code |
|---|
| 989 | BXDM_PictureProvider_SetDefaultFrameRate_isr( |
|---|
| 990 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 991 | BAVC_FrameRateCode eFrameRate |
|---|
| 992 | ); |
|---|
| 993 | |
|---|
| 994 | BERR_Code |
|---|
| 995 | BXDM_PictureProvider_GetDefaultFrameRate_isr( |
|---|
| 996 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 997 | BAVC_FrameRateCode *peFrameRate |
|---|
| 998 | ); |
|---|
| 999 | |
|---|
| 1000 | #if 0 |
|---|
| 1001 | typedef enum BXDM_PictureProvider_FrameRateDetectionMode |
|---|
| 1002 | { |
|---|
| 1003 | /* Disable frame rate detection. Will always return unknown */ |
|---|
| 1004 | BXDM_PictureProvider_FrameRateDetectionMode_eOff, |
|---|
| 1005 | |
|---|
| 1006 | /* Fast frame rate detection. Will return best guess as soon as |
|---|
| 1007 | * possible. Result may oscillate initially for very close frame |
|---|
| 1008 | * rates (e.g. 29.97 vs 30 fps) */ |
|---|
| 1009 | BXDM_PictureProvider_FrameRateDetectionMode_eFast, |
|---|
| 1010 | |
|---|
| 1011 | /* Stable frame rate detection. Will return "unknown" until frame |
|---|
| 1012 | * rate stabilizes. Good for differentiating between close frame |
|---|
| 1013 | * rates (e.g. 29.97 vs 30 fps) */ |
|---|
| 1014 | BXDM_PictureProvider_FrameRateDetectionMode_eStable, |
|---|
| 1015 | |
|---|
| 1016 | BXDM_PictureProvider_FrameRateDetectionMode_eMax |
|---|
| 1017 | |
|---|
| 1018 | } BXDM_PictureProvider_FrameRateDetectionMode; |
|---|
| 1019 | #endif |
|---|
| 1020 | |
|---|
| 1021 | BERR_Code |
|---|
| 1022 | BXDM_PictureProvider_SetFrameRateDetectionMode_isr( |
|---|
| 1023 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1024 | BXDM_PictureProvider_FrameRateDetectionMode eFrameRateDetectionMode |
|---|
| 1025 | ); |
|---|
| 1026 | |
|---|
| 1027 | BERR_Code |
|---|
| 1028 | BXDM_PictureProvider_GetFrameRateDetection_isr( |
|---|
| 1029 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1030 | BXDM_PictureProvider_FrameRateDetectionMode *peFrameRateDetectionMode |
|---|
| 1031 | ); |
|---|
| 1032 | |
|---|
| 1033 | BERR_Code |
|---|
| 1034 | BXDM_PictureProvider_SetASTMMode_isr( |
|---|
| 1035 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1036 | bool bEnable |
|---|
| 1037 | ); |
|---|
| 1038 | |
|---|
| 1039 | BERR_Code |
|---|
| 1040 | BXDM_PictureProvider_GetASTMMode_isr( |
|---|
| 1041 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1042 | bool *pbEnable |
|---|
| 1043 | ); |
|---|
| 1044 | |
|---|
| 1045 | BERR_Code |
|---|
| 1046 | BXDM_PictureProvider_SetVirtualTSMOnPCRDiscontinuityMode_isr( |
|---|
| 1047 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1048 | bool bEnable |
|---|
| 1049 | ); |
|---|
| 1050 | |
|---|
| 1051 | BERR_Code |
|---|
| 1052 | BXDM_PictureProvider_GetVirtualTSMOnPCRDiscontinuityMode_isr( |
|---|
| 1053 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1054 | bool *pbEnable |
|---|
| 1055 | ); |
|---|
| 1056 | |
|---|
| 1057 | #if 0 |
|---|
| 1058 | typedef enum BXDM_PictureProvider_ErrorHandlingMode |
|---|
| 1059 | { |
|---|
| 1060 | BXDM_PictureProvider_ErrorHandlingMode_eOff, /* display all pictures */ |
|---|
| 1061 | BXDM_PictureProvider_ErrorHandlingMode_ePicture, /* drop pictures if Decode Error is set */ |
|---|
| 1062 | BXDM_PictureProvider_ErrorHandlingMode_ePrognostic, /* drop pictures from Decode Error to the next RAP */ |
|---|
| 1063 | |
|---|
| 1064 | BXDM_PictureProvider_ErrorHandlingMode_eMax |
|---|
| 1065 | } BXDM_PictureProvider_ErrorHandlingMode; |
|---|
| 1066 | #endif |
|---|
| 1067 | |
|---|
| 1068 | BERR_Code |
|---|
| 1069 | BXDM_PictureProvider_SetErrorHandlingMode_isr( |
|---|
| 1070 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1071 | BXDM_PictureProvider_ErrorHandlingMode eErrorHandlingMode |
|---|
| 1072 | ); |
|---|
| 1073 | |
|---|
| 1074 | BERR_Code |
|---|
| 1075 | BXDM_PictureProvider_GetErrorHandlingMode_isr( |
|---|
| 1076 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1077 | BXDM_PictureProvider_ErrorHandlingMode *peErrorHandlingMode |
|---|
| 1078 | ); |
|---|
| 1079 | |
|---|
| 1080 | BERR_Code |
|---|
| 1081 | BXDM_PictureProvider_SetTimerHandle_isr( |
|---|
| 1082 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1083 | BTMR_TimerHandle hTimer |
|---|
| 1084 | ); |
|---|
| 1085 | |
|---|
| 1086 | BERR_Code |
|---|
| 1087 | BXDM_PictureProvider_GetTimerHandle_isr( |
|---|
| 1088 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1089 | BTMR_TimerHandle *phTimer |
|---|
| 1090 | ); |
|---|
| 1091 | |
|---|
| 1092 | BERR_Code |
|---|
| 1093 | BXDM_PictureProvider_SetChannelSyncMode_isr( |
|---|
| 1094 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1095 | bool bEnable |
|---|
| 1096 | ); |
|---|
| 1097 | |
|---|
| 1098 | BERR_Code |
|---|
| 1099 | BXDM_PictureProvider_GetChannelSyncMode_isr( |
|---|
| 1100 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1101 | bool *pbEnable |
|---|
| 1102 | ); |
|---|
| 1103 | |
|---|
| 1104 | BERR_Code |
|---|
| 1105 | BXDM_PictureProvider_SetDIH( |
|---|
| 1106 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1107 | BXDM_DisplayInterruptHandler_Handle hXdmDih |
|---|
| 1108 | ); |
|---|
| 1109 | |
|---|
| 1110 | BERR_Code |
|---|
| 1111 | BXDM_PictureProvider_GetDIH( |
|---|
| 1112 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1113 | BXDM_DisplayInterruptHandler_Handle *phXdmDih |
|---|
| 1114 | ); |
|---|
| 1115 | |
|---|
| 1116 | BERR_Code |
|---|
| 1117 | BXDM_PictureProvider_SetDeinterlacerMaxHeight( |
|---|
| 1118 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1119 | uint32_t uiMaxHeight |
|---|
| 1120 | ); |
|---|
| 1121 | |
|---|
| 1122 | BERR_Code |
|---|
| 1123 | BXDM_PictureProvider_GetDeinterlacerMaxHeight( |
|---|
| 1124 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1125 | uint32_t * puiMaxHeight |
|---|
| 1126 | ); |
|---|
| 1127 | |
|---|
| 1128 | #if 0 |
|---|
| 1129 | /* SW7405-4703: Add APIs for controlling Horizontal Overscan processing */ |
|---|
| 1130 | typedef enum BXDM_PictureProvider_HorizontalOverscanMode |
|---|
| 1131 | { |
|---|
| 1132 | BXDM_PictureProvider_HorizontalOverscanMode_eAuto, |
|---|
| 1133 | BXDM_PictureProvider_HorizontalOverscanMode_eDisable, |
|---|
| 1134 | |
|---|
| 1135 | /* Add more enums ABOVE this line */ |
|---|
| 1136 | BXDM_PictureProvider_HorizontalOverscanMode_eMax |
|---|
| 1137 | } BXDM_PictureProvider_HorizontalOverscanMode; |
|---|
| 1138 | #endif |
|---|
| 1139 | |
|---|
| 1140 | BERR_Code |
|---|
| 1141 | BXDM_PictureProvider_SetHorizontalOverscanMode_isr( |
|---|
| 1142 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1143 | BXDM_PictureProvider_HorizontalOverscanMode eHorizontalOverscanMode |
|---|
| 1144 | ); |
|---|
| 1145 | |
|---|
| 1146 | BERR_Code |
|---|
| 1147 | BXDM_PictureProvider_GetHorizontalOverscanMode_isr( |
|---|
| 1148 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1149 | BXDM_PictureProvider_HorizontalOverscanMode *peHorizontalOverscanMode |
|---|
| 1150 | ); |
|---|
| 1151 | |
|---|
| 1152 | #if 0 |
|---|
| 1153 | /* SWDEPRECATED-1003: needed to turn off the FIC logic during certain trick modes */ |
|---|
| 1154 | typedef enum BXDM_PictureProvider_TrickMode |
|---|
| 1155 | { |
|---|
| 1156 | BXDM_PictureProvider_TrickMode_eAuto=0, |
|---|
| 1157 | BXDM_PictureProvider_TrickMode_eNormal, |
|---|
| 1158 | BXDM_PictureProvider_TrickMode_eSparsePictures, |
|---|
| 1159 | BXDM_PictureProvider_TrickMode_ePause, |
|---|
| 1160 | BXDM_PictureProvider_TrickMode_eRewind, |
|---|
| 1161 | BXDM_PictureProvider_TrickMode_eFastForward, |
|---|
| 1162 | |
|---|
| 1163 | /* Add more enums ABOVE this line */ |
|---|
| 1164 | BXDM_PictureProvider_TrickMode_eMax |
|---|
| 1165 | } BXDM_PictureProvider_TrickMode; |
|---|
| 1166 | #endif |
|---|
| 1167 | |
|---|
| 1168 | BERR_Code |
|---|
| 1169 | BXDM_PictureProvider_SetTrickMode_isr( |
|---|
| 1170 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1171 | BXDM_PictureProvider_TrickMode eTrickMode |
|---|
| 1172 | ); |
|---|
| 1173 | |
|---|
| 1174 | BERR_Code |
|---|
| 1175 | BXDM_PictureProvider_GetTrickMode_isr( |
|---|
| 1176 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1177 | BXDM_PictureProvider_TrickMode * peTrickMode |
|---|
| 1178 | ); |
|---|
| 1179 | |
|---|
| 1180 | BERR_Code |
|---|
| 1181 | BXDM_PictureProvider_SetFrameRateOverride_isr( |
|---|
| 1182 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1183 | const BXDM_Picture_FrameRateOverride *pstFrameRateOverride |
|---|
| 1184 | ); |
|---|
| 1185 | |
|---|
| 1186 | BERR_Code |
|---|
| 1187 | BXDM_PictureProvider_GetFrameRateOverride_isr( |
|---|
| 1188 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1189 | BXDM_Picture_FrameRateOverride *pstFrameRateOverride |
|---|
| 1190 | ); |
|---|
| 1191 | |
|---|
| 1192 | BERR_Code |
|---|
| 1193 | BXDM_PictureProvider_SetInstanceID_isr( |
|---|
| 1194 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1195 | uint32_t uiInstanceID |
|---|
| 1196 | ); |
|---|
| 1197 | |
|---|
| 1198 | BERR_Code |
|---|
| 1199 | BXDM_PictureProvider_GetInstanceID_isr( |
|---|
| 1200 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1201 | uint32_t * puiInstanceID |
|---|
| 1202 | ); |
|---|
| 1203 | |
|---|
| 1204 | |
|---|
| 1205 | /* SW7422-72: API's and constants to allow the middleware/application to specify |
|---|
| 1206 | * an orientation for each picture. If "bOverrideOrientation" is set |
|---|
| 1207 | * in the BXDM_PictureProvider_3DSettings structure, the "eOrientation" field |
|---|
| 1208 | * will be used to fill in the MFD structure. |
|---|
| 1209 | * If "bOverrideOrientation" is not set, the MFD will be filled in based on |
|---|
| 1210 | * data received from AVD, i.e. SEI messages and/or PPB flags. |
|---|
| 1211 | * "bSetNextPointer" is to support MVC on the older DVD chips. When true, |
|---|
| 1212 | * both of the MFD pointers "pNext" and "pEnhanced" will be set. |
|---|
| 1213 | */ |
|---|
| 1214 | |
|---|
| 1215 | #if 0 |
|---|
| 1216 | typedef enum BXDM_PictureProvider_Orientation |
|---|
| 1217 | { |
|---|
| 1218 | BXDM_PictureProvider_Orientation_e2D=0, |
|---|
| 1219 | BXDM_PictureProvider_Orientation_eLeftRight, |
|---|
| 1220 | BXDM_PictureProvider_Orientation_eOverUnder, |
|---|
| 1221 | BXDM_PictureProvider_Orientation_eLeftRightFullFrame, |
|---|
| 1222 | BXDM_PictureProvider_Orientation_eRightLeftFullFrame, |
|---|
| 1223 | BXDM_PictureProvider_Orientation_eLeftRightEnhancedResolution, |
|---|
| 1224 | |
|---|
| 1225 | BXDM_PictureProvider_Orientation_eMax |
|---|
| 1226 | |
|---|
| 1227 | } BXDM_PictureProvider_Orientation; |
|---|
| 1228 | |
|---|
| 1229 | typedef struct BXDM_PictureProvider_3DSettings |
|---|
| 1230 | { |
|---|
| 1231 | bool bOverrideOrientation; |
|---|
| 1232 | BXDM_PictureProvider_Orientation eOrientation; |
|---|
| 1233 | |
|---|
| 1234 | bool bSetNextPointer; |
|---|
| 1235 | |
|---|
| 1236 | } BXDM_PictureProvider_3DSettings; |
|---|
| 1237 | #endif |
|---|
| 1238 | |
|---|
| 1239 | BERR_Code |
|---|
| 1240 | BXDM_PictureProvider_Set3D_isr( |
|---|
| 1241 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1242 | const BXDM_PictureProvider_3DSettings * pst3DSettings |
|---|
| 1243 | ); |
|---|
| 1244 | |
|---|
| 1245 | BERR_Code |
|---|
| 1246 | BXDM_PictureProvider_Get3D_isr( |
|---|
| 1247 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1248 | BXDM_PictureProvider_3DSettings * pst3DSettings |
|---|
| 1249 | ); |
|---|
| 1250 | |
|---|
| 1251 | BERR_Code |
|---|
| 1252 | BXDM_PictureProvider_GetDefault3D( |
|---|
| 1253 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1254 | BXDM_PictureProvider_3DSettings * pst3DSettings |
|---|
| 1255 | ); |
|---|
| 1256 | |
|---|
| 1257 | /* |
|---|
| 1258 | * SW7425-1264: support for a synthesized SW STC, can create a clock internal |
|---|
| 1259 | * to XDM that run backwards. |
|---|
| 1260 | * |
|---|
| 1261 | * The clock override is set by calling "BXDM_PictureProvider_SetClockOverride_isr". |
|---|
| 1262 | * "BXDM_PictureProvider_GetClockOverride_isr" returns the most recently written values. |
|---|
| 1263 | * |
|---|
| 1264 | * When "bEnableClockOverride" is true, XDM will use an internal SW STC. |
|---|
| 1265 | * |
|---|
| 1266 | * When "bLoadSwStc" is true, the SW STC will be initialized with "uiStcValue". |
|---|
| 1267 | * This loading occurs at the beginning of XDM's execution. If "bLoadSwStc" |
|---|
| 1268 | * is false, the SW STC will not be loaded. This mechanism allows |
|---|
| 1269 | * "BXDM_PictureProvider_SetClockOverride_isr" to be called without changing the |
|---|
| 1270 | * current value of the SW STC. |
|---|
| 1271 | * |
|---|
| 1272 | * "iStcDelta" is added to the SW STC every vsync, effectively at the end of XDM's execution. |
|---|
| 1273 | * "iStcDelta" can be negative, this will cause the clock to run backwards. |
|---|
| 1274 | * The units of "iStcDelta" are clock ticks; for example to achieve a 60 Hz display rate, |
|---|
| 1275 | * "iStcDelta" would be set to 750. |
|---|
| 1276 | * |
|---|
| 1277 | * The current SW STC can be retrieved by calling BXDM_PictureProvider_GetCurrentPTSInfo_isr |
|---|
| 1278 | * or BXVD_GetPTS_isr with "bEnableClockOverride" set to true. The SW STC will be returned in |
|---|
| 1279 | * "stPTSInfo.uiSTCSnapShot". |
|---|
| 1280 | */ |
|---|
| 1281 | #if 0 |
|---|
| 1282 | typedef struct BXDM_PictureProvider_ClockOverride |
|---|
| 1283 | { |
|---|
| 1284 | /* When true, XVD will use an internal SW STC */ |
|---|
| 1285 | bool bEnableClockOverride; |
|---|
| 1286 | |
|---|
| 1287 | /* Initial value of the internal SW STC */ |
|---|
| 1288 | uint32_t uiStcValue; |
|---|
| 1289 | |
|---|
| 1290 | /* When true, the internal SW STC will be loaded with uiStcValue. |
|---|
| 1291 | * If false, the uiStcValue will not be changed. |
|---|
| 1292 | */ |
|---|
| 1293 | bool bLoadSwStc; |
|---|
| 1294 | |
|---|
| 1295 | /* Added to the internal STC on each vsync. |
|---|
| 1296 | * A negative value will cause the STC to decrement |
|---|
| 1297 | */ |
|---|
| 1298 | int32_t iStcDelta; |
|---|
| 1299 | |
|---|
| 1300 | } BXDM_PictureProvider_ClockOverride; |
|---|
| 1301 | #endif |
|---|
| 1302 | |
|---|
| 1303 | |
|---|
| 1304 | BERR_Code |
|---|
| 1305 | BXDM_PictureProvider_SetClockOverride_isr( |
|---|
| 1306 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1307 | const BXDM_PictureProvider_ClockOverride *pstClockOverride |
|---|
| 1308 | ); |
|---|
| 1309 | |
|---|
| 1310 | |
|---|
| 1311 | BERR_Code |
|---|
| 1312 | BXDM_PictureProvider_GetClockOverride_isr( |
|---|
| 1313 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1314 | BXDM_PictureProvider_ClockOverride *pstClockOverride |
|---|
| 1315 | ); |
|---|
| 1316 | |
|---|
| 1317 | /* SW7425-2270: |
|---|
| 1318 | * The application will call SetIgnoreNRTUnderflow when it determines that an NRT underflow |
|---|
| 1319 | * is actually a gap in the content (e.g. slideshow or end of stream) and the repeated picture |
|---|
| 1320 | * should actually be encoded. |
|---|
| 1321 | * |
|---|
| 1322 | * When SetIgnoreNRTUnderflow=true, the "decoder underflow" scenario should be ignored until either: |
|---|
| 1323 | * - the underflow condition ends |
|---|
| 1324 | * - the app explicitly sets SetIgnoreNRTUnderflow=false |
|---|
| 1325 | * |
|---|
| 1326 | * Note: only the "decoder underflow" condition is ignored. All other NRT scenarios |
|---|
| 1327 | * (e.g. "Other Transcode Stalled", "FIC Stall", etc) are still in effect. |
|---|
| 1328 | */ |
|---|
| 1329 | BERR_Code |
|---|
| 1330 | BXDM_PictureProvider_SetIgnoreNRTUnderflow_isr( |
|---|
| 1331 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1332 | bool bIgnoreNRTUnderflow |
|---|
| 1333 | ); |
|---|
| 1334 | |
|---|
| 1335 | BERR_Code |
|---|
| 1336 | BXDM_PictureProvider_GetIgnoreNRTUnderflow_isr( |
|---|
| 1337 | BXDM_PictureProvider_Handle hXdmPP, |
|---|
| 1338 | bool * pbIgnoreNRTUnderflow |
|---|
| 1339 | ); |
|---|
| 1340 | |
|---|
| 1341 | #include "bxdm_pp_callback.h" |
|---|
| 1342 | |
|---|
| 1343 | #ifdef __cplusplus |
|---|
| 1344 | } |
|---|
| 1345 | #endif |
|---|
| 1346 | |
|---|
| 1347 | #endif /* BXDM_PP_H_ */ |
|---|