| 1 | /*************************************************************************** |
|---|
| 2 | * Copyright (c) 2004-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: bxvd_priv.h $ |
|---|
| 11 | * $brcm_Revision: Hydra_Software_Devel/273 $ |
|---|
| 12 | * $brcm_Date: 2/16/12 6:12p $ |
|---|
| 13 | * |
|---|
| 14 | * Module Description: |
|---|
| 15 | * See Module Overview below. |
|---|
| 16 | * |
|---|
| 17 | * Revision History: |
|---|
| 18 | * |
|---|
| 19 | * $brcm_Log: /magnum/portinginterface/xvd/7401/bxvd_priv.h $ |
|---|
| 20 | * |
|---|
| 21 | * Hydra_Software_Devel/273 2/16/12 6:12p davidp |
|---|
| 22 | * SW7425-2419: Add BXVD_P_DestroyInterrupts(). |
|---|
| 23 | * |
|---|
| 24 | * Hydra_Software_Devel/272 2/9/12 7:57p davidp |
|---|
| 25 | * SW7425-2284: Add BXVD_P_InitChannel to be used in BXVD_OpenChannel. |
|---|
| 26 | * |
|---|
| 27 | * Hydra_Software_Devel/271 2/2/12 3:02p davidp |
|---|
| 28 | * SW7425-2024: Validate decode protocol specified in BXVD_StartDecode is |
|---|
| 29 | * supported on platform. |
|---|
| 30 | * |
|---|
| 31 | * Hydra_Software_Devel/270 1/20/12 3:47p davidp |
|---|
| 32 | * SW7208-175: Add support for 1920 portrait decode. |
|---|
| 33 | * |
|---|
| 34 | * Hydra_Software_Devel/269 12/1/11 1:12p pblanco |
|---|
| 35 | * SW7425-1780: Implemented picture id support for transcode userdata. |
|---|
| 36 | * |
|---|
| 37 | * Hydra_Software_Devel/268 11/10/11 2:37p davidp |
|---|
| 38 | * SW7425-1599: Add bSVCProgressiveOnly flag to BXVD_ChannelSettings. |
|---|
| 39 | * |
|---|
| 40 | * Hydra_Software_Devel/267 10/20/11 3:21p davidp |
|---|
| 41 | * SW7425-1564: Add support for SVC interlaced decode. |
|---|
| 42 | * |
|---|
| 43 | * Hydra_Software_Devel/266 9/27/11 6:40p davidp |
|---|
| 44 | * SW7340-279: Allocate Still Channel context in BXVD_Open. |
|---|
| 45 | * |
|---|
| 46 | * Hydra_Software_Devel/265 7/28/11 3:35p davidp |
|---|
| 47 | * SW7552-75: Add BCHP_GetFeature call to determins AVD core clock freq on |
|---|
| 48 | * platforms where freq varies. |
|---|
| 49 | * |
|---|
| 50 | * Hydra_Software_Devel/264 7/20/11 3:27p davidp |
|---|
| 51 | * SW7231-127: Add BXVD_Standby and BXVD_Resume support. |
|---|
| 52 | * |
|---|
| 53 | * Hydra_Software_Devel/263 6/27/11 4:13p davidp |
|---|
| 54 | * SW7425-542: Merge devel branch to mainline. |
|---|
| 55 | * |
|---|
| 56 | * Hydra_Software_Devel/SW7425-542/4 6/14/11 3:40p davidp |
|---|
| 57 | * SW7425-542: Add pDisplayInfo pointer to Xvd Handle. |
|---|
| 58 | * |
|---|
| 59 | * Hydra_Software_Devel/SW7425-542/3 6/9/11 3:38p davidp |
|---|
| 60 | * SW7425-542: Remove unnecessary chip specific macro. |
|---|
| 61 | * |
|---|
| 62 | * Hydra_Software_Devel/SW7425-542/2 6/9/11 1:19p btosi |
|---|
| 63 | * SW7425-542: added in support for the Host Memory Interface |
|---|
| 64 | * |
|---|
| 65 | * Hydra_Software_Devel/SW7425-542/1 5/31/11 3:59p davidp |
|---|
| 66 | * SW7425-542: Add support for Host Interface Memory (ARC Scratch memory) |
|---|
| 67 | * FW API changes. |
|---|
| 68 | * |
|---|
| 69 | * Hydra_Software_Devel/262 3/25/11 3:56p davidp |
|---|
| 70 | * SW7405-5101: Add checks to verify AVD code space, CDB/ITB and memory |
|---|
| 71 | * used is in memory region below 768mb for ARC300 based cores. |
|---|
| 72 | * |
|---|
| 73 | * Hydra_Software_Devel/261 12/9/10 5:13p davidp |
|---|
| 74 | * SW7422-22: Fix SVC support, allocate FW memory for AVD. |
|---|
| 75 | * |
|---|
| 76 | * Hydra_Software_Devel/260 10/27/10 5:32p davidp |
|---|
| 77 | * SW7422-22: Add ARC600 boot callback support. |
|---|
| 78 | * |
|---|
| 79 | * Hydra_Software_Devel/259 10/15/10 6:35p davidp |
|---|
| 80 | * SW7425-16: Add support for base layer ARC, new memory config, |
|---|
| 81 | * additional FW api memory arguments. |
|---|
| 82 | * |
|---|
| 83 | * Hydra_Software_Devel/258 10/7/10 3:31p davidp |
|---|
| 84 | * SW7422-22: Add BXVD private DDR3 constant definition. |
|---|
| 85 | * |
|---|
| 86 | * Hydra_Software_Devel/257 10/6/10 2:00p davidp |
|---|
| 87 | * SW7405-4923: Set XVD handle type to invalid when context is freed. |
|---|
| 88 | * |
|---|
| 89 | * Hydra_Software_Devel/256 10/5/10 10:24a davidp |
|---|
| 90 | * SW7405-4923: Resolve latest coverity run issues for non-debug builds. |
|---|
| 91 | * |
|---|
| 92 | * Hydra_Software_Devel/255 8/3/10 2:03p btosi |
|---|
| 93 | * SW7400-2870: added BXVD_[Set/Get]PlaybackRate(_isr) |
|---|
| 94 | * |
|---|
| 95 | * Hydra_Software_Devel/254 8/3/10 9:06a pblanco |
|---|
| 96 | * SW7400-2857: Reduced BXVD_Open memory footprint by 512 bytes by moving |
|---|
| 97 | * FW command and reply buffers to the XVD handle structure. |
|---|
| 98 | * |
|---|
| 99 | * Hydra_Software_Devel/253 3/24/10 3:00p davidp |
|---|
| 100 | * SW7405-3137: Save and restore extended CDB read register address for |
|---|
| 101 | * decode restart cases. |
|---|
| 102 | * |
|---|
| 103 | * Hydra_Software_Devel/252 2/25/10 4:24p nilesh |
|---|
| 104 | * SW7405-2993: XDM Merge |
|---|
| 105 | * |
|---|
| 106 | * Hydra_Software_Devel/251 2/17/10 2:50p davidp |
|---|
| 107 | * SW7468-74: Add support for IP licensing, save chip product revision |
|---|
| 108 | * register address in xvd handle. |
|---|
| 109 | * |
|---|
| 110 | * Hydra_Software_Devel/250 1/28/10 4:39p davidp |
|---|
| 111 | * SW7550-173: Set AVD PCache mode register based on DDR type and memory |
|---|
| 112 | * data width. |
|---|
| 113 | * |
|---|
| 114 | * Hydra_Software_Devel/249 1/8/10 11:50a btosi |
|---|
| 115 | * SW7405-3137: added support for extension data callback |
|---|
| 116 | * |
|---|
| 117 | * Hydra_Software_Devel/248 1/6/10 2:28p btosi |
|---|
| 118 | * SW7405-3137: merged branch into mainline |
|---|
| 119 | * |
|---|
| 120 | * Hydra_Software_Devel/247 12/11/09 1:03p davidp |
|---|
| 121 | * SW7405-3572: Change ChannelClose command argument to use ChannelHandle |
|---|
| 122 | * instead of ChannelId. |
|---|
| 123 | * |
|---|
| 124 | * Hydra_Software_Devel/246 12/1/09 9:48a btosi |
|---|
| 125 | * SW7405-3245: added BXVD_DBG_* macros. Map to either BDBG_INSTANCE_* or |
|---|
| 126 | * BDBG_* at compile time. |
|---|
| 127 | * |
|---|
| 128 | * Hydra_Software_Devel/245 11/30/09 4:31p btosi |
|---|
| 129 | * SW7405-3245: added BXVD_DBG_* macros. Map to either BDBG_INSTANCE_* or |
|---|
| 130 | * BDBG_* at compile. |
|---|
| 131 | * |
|---|
| 132 | * Hydra_Software_Devel/244 9/30/09 3:15p nilesh |
|---|
| 133 | * SW7405-3085: Target source polarity synchronization now only occurs if |
|---|
| 134 | * there are multiple active decodes targeted for the same display |
|---|
| 135 | * interrupt. |
|---|
| 136 | * |
|---|
| 137 | * Hydra_Software_Devel/243 9/29/09 2:11p nilesh |
|---|
| 138 | * SW7405-3085: The target source polarity for interlaced mosaic channels |
|---|
| 139 | * on a progressive display is now synchronized |
|---|
| 140 | * |
|---|
| 141 | * Hydra_Software_Devel/242 9/16/09 5:00p davidp |
|---|
| 142 | * SW3548-2458: Add BXVD_P_RESET_CORE macro to reset individual blocks in |
|---|
| 143 | * AVD core. |
|---|
| 144 | * |
|---|
| 145 | * Hydra_Software_Devel/241 6/30/09 4:20p davidp |
|---|
| 146 | * PR56374: Power down AVD related clocks in BXVD_Close. |
|---|
| 147 | * |
|---|
| 148 | * Hydra_Software_Devel/240 6/4/09 4:05p davidp |
|---|
| 149 | * PR54107: Add AVD_PCacheRegVal to Xvd_handle to save/restore PCache |
|---|
| 150 | * setting across resets. |
|---|
| 151 | * |
|---|
| 152 | * Hydra_Software_Devel/239 6/1/09 6:35p davidp |
|---|
| 153 | * PR55198: Add dynamic power management support to most STB platforms. |
|---|
| 154 | * |
|---|
| 155 | * Hydra_Software_Devel/238 5/26/09 3:34p nilesh |
|---|
| 156 | * PR52424: Added BXVD_Interrupt_eTSMResult callback and |
|---|
| 157 | * BXVD_GetPPBParameterQueueInfo() function |
|---|
| 158 | * |
|---|
| 159 | * Hydra_Software_Devel/237 3/31/09 5:30p davidp |
|---|
| 160 | * PR52344: Add bAVC51Enable flag to channel settings to use more memory |
|---|
| 161 | * for AVC 5.1 compliant streams. |
|---|
| 162 | * |
|---|
| 163 | * Hydra_Software_Devel/236 3/26/09 6:13p nilesh |
|---|
| 164 | * PR53580: Cleaned up DM structs |
|---|
| 165 | * |
|---|
| 166 | * Hydra_Software_Devel/235 3/12/09 11:32a nilesh |
|---|
| 167 | * PR52898: bIgnoreCadenceMatch and eDisplayFieldMode are now sticky |
|---|
| 168 | * parameters attached to the picture |
|---|
| 169 | * |
|---|
| 170 | * Hydra_Software_Devel/234 3/2/09 1:33p nilesh |
|---|
| 171 | * PR52659: Changed DNR non-AVC inter default from 1024 to 964 as |
|---|
| 172 | * documented in |
|---|
| 173 | * http://www.sj.broadcom.com/projects/dvt/Chip_Architecture/Video/Releas |
|---|
| 174 | * ed/DNR_bpe.doc |
|---|
| 175 | * |
|---|
| 176 | * Hydra_Software_Devel/233 2/23/09 2:40p btosi |
|---|
| 177 | * PR52205: added BXVD_Interrupt_eDecodeError callback |
|---|
| 178 | * |
|---|
| 179 | * Hydra_Software_Devel/232 2/4/09 5:09p rayshap |
|---|
| 180 | * PR51835: BXVD_GetGopTimeCode should make it obvious when no timecode is |
|---|
| 181 | * present |
|---|
| 182 | * |
|---|
| 183 | * Hydra_Software_Devel/231 2/4/09 4:18p nilesh |
|---|
| 184 | * PR51720: Frame advance now uses multiple field advances across |
|---|
| 185 | * sequential vsyncs to keep the cadence fed to the MAD happy. |
|---|
| 186 | * |
|---|
| 187 | * Hydra_Software_Devel/230 2/4/09 2:18p pblanco |
|---|
| 188 | * PR51740: Remove ulUserDataQueue member from BXVD_P_Channel structure. |
|---|
| 189 | * |
|---|
| 190 | * Hydra_Software_Devel/229 2/3/09 5:58p nilesh |
|---|
| 191 | * PR51134: Improved DM output cadence during decoder trick mode |
|---|
| 192 | * transitions |
|---|
| 193 | * |
|---|
| 194 | * Hydra_Software_Devel/228 1/27/09 1:49p nilesh |
|---|
| 195 | * PR51621: Resolved possible global variable naming conflict by either |
|---|
| 196 | * explicitly declaring globals as static (where possible) or adding |
|---|
| 197 | * BXVD_P_ prefix |
|---|
| 198 | * |
|---|
| 199 | * Hydra_Software_Devel/227 1/14/09 3:04p btosi |
|---|
| 200 | * PR50623: added uiSwPcrOffset and bUseHwPcrOffset to BXVD_P_TSMCommands |
|---|
| 201 | * |
|---|
| 202 | * Hydra_Software_Devel/226 12/19/08 12:04p btosi |
|---|
| 203 | * PR50241: added support for "OpenChannel" initialization, cleaned up DM |
|---|
| 204 | * API |
|---|
| 205 | * |
|---|
| 206 | * Hydra_Software_Devel/225 12/17/08 2:33p btosi |
|---|
| 207 | * PR50241: removed the extraneous DM function declarations |
|---|
| 208 | * |
|---|
| 209 | * Hydra_Software_Devel/224 12/9/08 10:18a btosi |
|---|
| 210 | * PR38467: enhanced comment for BXVD_DMInfo |
|---|
| 211 | * |
|---|
| 212 | * Hydra_Software_Devel/223 11/21/08 11:49a btosi |
|---|
| 213 | * PR48843: added in support for uiPicturesReceivedCount |
|---|
| 214 | * |
|---|
| 215 | * Hydra_Software_Devel/222 11/20/08 5:12p davidp |
|---|
| 216 | * PR49533: Add bPreserveCounters boolean to channel structure to not |
|---|
| 217 | * decoder counters for certain startDecode situations. |
|---|
| 218 | * |
|---|
| 219 | * Hydra_Software_Devel/221 11/5/08 3:25p nilesh |
|---|
| 220 | * PR48693: Added BTMR support |
|---|
| 221 | * |
|---|
| 222 | * Hydra_Software_Devel/220 10/28/08 12:30p davidp |
|---|
| 223 | * PR47278: Add support for ExcessDirMode, allocate more direct memory for |
|---|
| 224 | * certain AVC streams when flag is set. |
|---|
| 225 | * |
|---|
| 226 | * Hydra_Software_Devel/219 10/23/08 5:08p davidp |
|---|
| 227 | * PR48295: Stripe width of 256 not currently supported. Do not allow QCIF |
|---|
| 228 | * and CIF still picture decodes. |
|---|
| 229 | * |
|---|
| 230 | * Hydra_Software_Devel/218 10/9/08 11:02a nilesh |
|---|
| 231 | * PR47494: Merged BXVD_Interrupt_ePPBParameters callback support |
|---|
| 232 | * |
|---|
| 233 | * Hydra_Software_Devel/PR47494/1 10/8/08 1:28p nilesh |
|---|
| 234 | * PR47494: Added BXVD_Interrupt_ePPBParameters callback support |
|---|
| 235 | * |
|---|
| 236 | * Hydra_Software_Devel/217 10/8/08 11:25a nilesh |
|---|
| 237 | * PR47692: RequestSTC now returns current coded PTS if re-enabled in the |
|---|
| 238 | * middle of the clip |
|---|
| 239 | * |
|---|
| 240 | * Hydra_Software_Devel/216 10/6/08 11:52a btosi |
|---|
| 241 | * PR46567: modified BXVD_DMInfo |
|---|
| 242 | * |
|---|
| 243 | * Hydra_Software_Devel/215 10/3/08 10:11a nilesh |
|---|
| 244 | * PR47517: Timing Marker detection logic fixed to work with single PPB |
|---|
| 245 | * clip decode. Default AVD timing marker is now used as comparison with |
|---|
| 246 | * first PPB. |
|---|
| 247 | * |
|---|
| 248 | * Hydra_Software_Devel/214 10/2/08 6:44p davidp |
|---|
| 249 | * PR46543: Add power management support, hibernate field to XVD context. |
|---|
| 250 | * |
|---|
| 251 | * Hydra_Software_Devel/213 9/18/08 2:03p davidp |
|---|
| 252 | * PR46650: Fix MemCfgMode enum field names. |
|---|
| 253 | * |
|---|
| 254 | * Hydra_Software_Devel/212 9/17/08 4:27p nilesh |
|---|
| 255 | * PR43585: Fixed seamless clip handling |
|---|
| 256 | * |
|---|
| 257 | * Hydra_Software_Devel/211 9/8/08 6:42p davidp |
|---|
| 258 | * PR46650: Add BXVD_P_GET_MEMORY_CONFIG macro and BXVD_P_ValidateHeaps to |
|---|
| 259 | * sanity check heaps passed to BXVD_Open. |
|---|
| 260 | * |
|---|
| 261 | * Hydra_Software_Devel/210 8/5/08 3:56p nilesh |
|---|
| 262 | * PR45322: BXVD_DMDBG_P_DumpYUV() no longer uses hard coded stripe width |
|---|
| 263 | * |
|---|
| 264 | * Hydra_Software_Devel/209 8/5/08 2:23p davidp |
|---|
| 265 | * PR45080: Add support for AVD status block, block address now returned |
|---|
| 266 | * in FW channel open command. |
|---|
| 267 | * |
|---|
| 268 | * Hydra_Software_Devel/208 8/1/08 4:57p davidp |
|---|
| 269 | * PR43272: Merge PR43272 branch to mainline, new FW memory configuration |
|---|
| 270 | * API. |
|---|
| 271 | * |
|---|
| 272 | * Hydra_Software_Devel/PR43272/1 7/17/08 12:36p davidp |
|---|
| 273 | * PR43272: Add support for additional FW memory configuration parameters, |
|---|
| 274 | * Direct mode and IL Work list memory. |
|---|
| 275 | * |
|---|
| 276 | * Hydra_Software_Devel/207 7/29/08 4:01p nilesh |
|---|
| 277 | * PR37222: BXVD_GetNextPTS() returns an error if the next picture is not |
|---|
| 278 | * available on the delivery queue |
|---|
| 279 | * |
|---|
| 280 | * Hydra_Software_Devel/206 7/29/08 3:01p nilesh |
|---|
| 281 | * PR37222: Added BXVD_GetNextPTS() support |
|---|
| 282 | * |
|---|
| 283 | * Hydra_Software_Devel/205 7/29/08 12:41p pblanco |
|---|
| 284 | * PR45230: Fixed typo in userdata context structure. |
|---|
| 285 | * |
|---|
| 286 | * Hydra_Software_Devel/204 7/29/08 11:22a pblanco |
|---|
| 287 | * PR45230: Added forward error member to multidecode version of userdata |
|---|
| 288 | * context structure. |
|---|
| 289 | * |
|---|
| 290 | * Hydra_Software_Devel/203 7/24/08 12:20p btosi |
|---|
| 291 | * PR39962: added BXVD_DMLocalPTSInfo to aid in cleaning up PTSInfo |
|---|
| 292 | * structure |
|---|
| 293 | * |
|---|
| 294 | * Hydra_Software_Devel/202 7/8/08 1:49p btosi |
|---|
| 295 | * PR38467: added support for PPBReceived callback |
|---|
| 296 | * |
|---|
| 297 | * Hydra_Software_Devel/201 7/1/08 4:44p nilesh |
|---|
| 298 | * PR43585: Update to allow bxvd_dispmgr_dvd.c to compile |
|---|
| 299 | * |
|---|
| 300 | * Hydra_Software_Devel/200 7/1/08 2:31p nilesh |
|---|
| 301 | * PR43585: Merge DVD Development branch to mainline |
|---|
| 302 | * |
|---|
| 303 | * Hydra_Software_Devel/PR43585/3 6/26/08 11:09a nilesh |
|---|
| 304 | * PR43585: ClipStart event now only occurs if the current clip has |
|---|
| 305 | * actually started displaying |
|---|
| 306 | * |
|---|
| 307 | * Hydra_Software_Devel/PR43585/2 6/23/08 8:23p nilesh |
|---|
| 308 | * PR43585: Add Marker valid bit to handle marker transition during start- |
|---|
| 309 | * up |
|---|
| 310 | * |
|---|
| 311 | * Hydra_Software_Devel/PR43585/1 6/20/08 5:04p nilesh |
|---|
| 312 | * PR43585: Added initial clip support (eRequestSTC, eClipStart, |
|---|
| 313 | * eClipStop, and ePictureMarker) |
|---|
| 314 | * |
|---|
| 315 | * Hydra_Software_Devel/199 6/12/08 5:30p nilesh |
|---|
| 316 | * PR43585: Updated multi-decode XVD to compile with 7440 |
|---|
| 317 | * |
|---|
| 318 | * Hydra_Software_Devel/198 5/21/08 1:51p pblanco |
|---|
| 319 | * PR42910: Added support for handle types and moved the contents of |
|---|
| 320 | * bxvd_userdata_priv.h to this module." |
|---|
| 321 | * |
|---|
| 322 | * Hydra_Software_Devel/197 5/8/08 3:29p nilesh |
|---|
| 323 | * PR38467: Merge DMv2 to mainline |
|---|
| 324 | * |
|---|
| 325 | * Hydra_Software_Devel/196 4/11/08 4:53p davidp |
|---|
| 326 | * PR40234: Merge decoder debug logging from branch to |
|---|
| 327 | * Hydra_Software_Devel/. |
|---|
| 328 | * |
|---|
| 329 | * Hydra_Software_Devel/PR40234/1 4/10/08 3:37p davidp |
|---|
| 330 | * PR40234: Add support for decoder debug logging. |
|---|
| 331 | * |
|---|
| 332 | * Hydra_Software_Devel/195 4/3/08 2:17p nilesh |
|---|
| 333 | * PR41276: Fixed possible out of bounds condition for StripeWidth and |
|---|
| 334 | * StripeMultiple |
|---|
| 335 | * |
|---|
| 336 | * Hydra_Software_Devel/194 4/1/08 2:42p davidp |
|---|
| 337 | * PR27168: Remove FW get version command. |
|---|
| 338 | * |
|---|
| 339 | * Hydra_Software_Devel/193 3/21/08 3:45p btosi |
|---|
| 340 | * PR40010: for DQT, revamped the handling of GOP "tails" |
|---|
| 341 | * |
|---|
| 342 | * Hydra_Software_Devel/192 3/18/08 3:30p btosi |
|---|
| 343 | * PR40009: removed iReleaseStallCnt from BXVD_P_DQTContext |
|---|
| 344 | * |
|---|
| 345 | * Hydra_Software_Devel/191 3/7/08 10:38a nilesh |
|---|
| 346 | * PR40349: Update memory tables according to AVD Mosaic API doc v2.19 |
|---|
| 347 | * |
|---|
| 348 | * Hydra_Software_Devel/190 1/29/08 6:47p davidp |
|---|
| 349 | * PR39098: Add PFRI data register item to xvd handle to be saved and |
|---|
| 350 | * restore on core rev i0. |
|---|
| 351 | * |
|---|
| 352 | * Hydra_Software_Devel/189 1/24/08 11:40a nilesh |
|---|
| 353 | * PR38570: Merge CABAC worklist API changes to mainline |
|---|
| 354 | * |
|---|
| 355 | * Hydra_Software_Devel/PR38570/1 1/21/08 5:12p nilesh |
|---|
| 356 | * PR38570: Added support for cabac worklist buffer and size parameter to |
|---|
| 357 | * AVD ChannelOpen |
|---|
| 358 | * |
|---|
| 359 | * Hydra_Software_Devel/188 1/15/08 5:21p davidp |
|---|
| 360 | * PR38735: Add BXVD_LinkDecoders/UnlinkDecoders and associated data |
|---|
| 361 | * structures. |
|---|
| 362 | * |
|---|
| 363 | * Hydra_Software_Devel/187 1/8/08 2:35p pblanco |
|---|
| 364 | * PR38593: Added support for AVS userdata handling |
|---|
| 365 | * |
|---|
| 366 | * Hydra_Software_Devel/186 11/8/07 10:49a btosi |
|---|
| 367 | * PR32273: added support bIgnorePcrDiscontinuity |
|---|
| 368 | * |
|---|
| 369 | * Hydra_Software_Devel/185 11/6/07 1:38p btosi |
|---|
| 370 | * PR30310: added BXVD_P_AVD_NO_CONSTRAINTS |
|---|
| 371 | * |
|---|
| 372 | * Hydra_Software_Devel/184 11/6/07 12:36p nilesh |
|---|
| 373 | * PR36741: Added XVD status reporting via BDBG console messages |
|---|
| 374 | * |
|---|
| 375 | * Hydra_Software_Devel/183 11/6/07 10:50a nilesh |
|---|
| 376 | * PR36735: XVD : Need to add support for Adaptive System Time Management |
|---|
| 377 | * (ASTM) |
|---|
| 378 | * |
|---|
| 379 | * Hydra_Software_Devel/182 10/22/07 10:28a btosi |
|---|
| 380 | * PR30130: merged DQT constants and structures into mainline |
|---|
| 381 | * |
|---|
| 382 | * Hydra_Software_Devel/181 9/26/07 3:20p parijat |
|---|
| 383 | * PR35190: Need to add generic fix for PPB leaks in DM |
|---|
| 384 | * |
|---|
| 385 | * Hydra_Software_Devel/180 9/21/07 10:33a btosi |
|---|
| 386 | * PR34980: added uiVsyncCount to BXVD_DMInfo |
|---|
| 387 | * |
|---|
| 388 | * Hydra_Software_Devel/179 8/30/07 12:21p nilesh |
|---|
| 389 | * PR34430: Channel specific heaps are now used for address conversion |
|---|
| 390 | * |
|---|
| 391 | * Hydra_Software_Devel/178 8/29/07 1:25p rayshap |
|---|
| 392 | * PR33893: Add support for conditional display manager trickmode |
|---|
| 393 | * transition |
|---|
| 394 | * |
|---|
| 395 | * Hydra_Software_Devel/177 8/29/07 1:08p nilesh |
|---|
| 396 | * PR34430: Added support for channel specific memory heaps |
|---|
| 397 | * |
|---|
| 398 | * Hydra_Software_Devel/176 8/22/07 3:49p nilesh |
|---|
| 399 | * PR29915: The FW memory config table for compatibility mode is now |
|---|
| 400 | * generated on-the-fly at runtime |
|---|
| 401 | * |
|---|
| 402 | * Hydra_Software_Devel/175 8/21/07 3:04p davidp |
|---|
| 403 | * PR34052: Remove nolonger used register addr pointers from BXVD_Handle, |
|---|
| 404 | * use platform_info.stReg structure to reference registers |
|---|
| 405 | * |
|---|
| 406 | * Hydra_Software_Devel/174 8/20/07 4:02p nilesh |
|---|
| 407 | * PR29915: Fixed secure heap memory allocation |
|---|
| 408 | * |
|---|
| 409 | * Hydra_Software_Devel/173 8/14/07 10:01p parijat |
|---|
| 410 | * PR32701: Implement & test 1080p pass-thru on Brutus |
|---|
| 411 | * |
|---|
| 412 | * Hydra_Software_Devel/172 8/13/07 4:08p nilesh |
|---|
| 413 | * PR29915: Multi-decode merge to mainline |
|---|
| 414 | * |
|---|
| 415 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/24 8/9/07 3:50p nilesh |
|---|
| 416 | * PR29915: Updated memory tables according to AVD Mosaic Doc v2.11 (Aug |
|---|
| 417 | * 9, 2007) |
|---|
| 418 | * |
|---|
| 419 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/23 7/26/07 4:00p nilesh |
|---|
| 420 | * PR29915: Add MPEG2 w/o BTP support |
|---|
| 421 | * |
|---|
| 422 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/22 7/25/07 1:37p nilesh |
|---|
| 423 | * PR29915: Cleaned up bxvd_priv.h and bxvd_vdec_info.h constants to match |
|---|
| 424 | * XVD coding style |
|---|
| 425 | * |
|---|
| 426 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/20 7/20/07 2:22p pblanco |
|---|
| 427 | * PR29915: Changed value of bottom field first flag from 0x0080 to 0x0010 |
|---|
| 428 | * to refct its value in bxvd_vdec_info.h |
|---|
| 429 | * |
|---|
| 430 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/19 7/19/07 5:17p nilesh |
|---|
| 431 | * PR29915: Fixed stripe_width value in still picture buffer |
|---|
| 432 | * |
|---|
| 433 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/18 7/19/07 5:14p nilesh |
|---|
| 434 | * PR29915: Update BXVD_GetBufferConfig() and BXVD_P_ParseDecodeMode() to |
|---|
| 435 | * handle BXVD_DecodeMode_eCustom |
|---|
| 436 | * |
|---|
| 437 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/17 7/13/07 5:15p nilesh |
|---|
| 438 | * PR29915: Updated memory tables based on v2.9 of Mosaic API doc |
|---|
| 439 | * |
|---|
| 440 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/16 7/10/07 6:18p nilesh |
|---|
| 441 | * PR29915: Added 7405 support to mosaic branch |
|---|
| 442 | * |
|---|
| 443 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/15 7/10/07 10:41a nilesh |
|---|
| 444 | * PR29915: Merged from mainline 07/10/2007 |
|---|
| 445 | * |
|---|
| 446 | * Hydra_Software_Devel/167 6/28/07 5:58p vijeth |
|---|
| 447 | * PR 32432: Enhance get channel status |
|---|
| 448 | * |
|---|
| 449 | * Hydra_Software_Devel/166 6/22/07 9:30a btosi |
|---|
| 450 | * PR30310: added "bReversePlayback" to "BXVD_P_PVRCommands" |
|---|
| 451 | * |
|---|
| 452 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/14 7/3/07 3:47p nilesh |
|---|
| 453 | * PR29915: bxvd_priv.h cleanup |
|---|
| 454 | * |
|---|
| 455 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/13 7/3/07 12:09p nilesh |
|---|
| 456 | * PR29915: Added FGT support |
|---|
| 457 | * |
|---|
| 458 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/12 6/28/07 1:36p davidp |
|---|
| 459 | * PR29915: Move remaining data structure definitions for |
|---|
| 460 | * bxvd_devcmds_priv.h to bxvd_vdec_api.h |
|---|
| 461 | * |
|---|
| 462 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/11 6/19/07 12:55p nilesh |
|---|
| 463 | * PR29915: BXVD_Settings decode mode list is now copied locally |
|---|
| 464 | * |
|---|
| 465 | * Hydra_Software_Devel/xvd_PR29915_Rel_Mosaic_FW_API/10 6/19/07 12:13p nilesh |
|---|
| 466 | * PR29915: Merge from mainline |
|---|
| 467 | * |
|---|
| 468 | * Hydra_Software_Devel/165 6/12/07 12:37p rayshap |
|---|
| 469 | * PR31988: Add support for enable/disable of 3-2 pulldown |
|---|
| 470 | * |
|---|
| 471 | * Hydra_Software_Devel/164 6/4/07 7:44p parijat |
|---|
| 472 | * PR31700: Video jitter at stream wrap when TSM is enabled (does not |
|---|
| 473 | * happen with 7411) |
|---|
| 474 | * |
|---|
| 475 | * Hydra_Software_Devel/163 5/23/07 12:43p nilesh |
|---|
| 476 | * PR29874: Consolidate TSM threshold code |
|---|
| 477 | * |
|---|
| 478 | * Hydra_Software_Devel/162 5/23/07 5:42p parijat |
|---|
| 479 | * PR30755: Problem decoding AVC stream A3VID12_151.btz, looks like |
|---|
| 480 | * single-field |
|---|
| 481 | * |
|---|
| 482 | * Hydra_Software_Devel/161 5/22/07 5:16p parijat |
|---|
| 483 | * PR30242: (According to latest AVD PPB doc, DM will get valid progSeq |
|---|
| 484 | * values from AVD firmware for all algorithms except AVC & the value |
|---|
| 485 | * will be derived as per the document from apt ppb fields. So, the fix |
|---|
| 486 | * is not required for algorithms other than AVC. For AVC, even progFrame |
|---|
| 487 | * info is in general not available. So, the fix doesn't have relevance |
|---|
| 488 | * for AVC.) |
|---|
| 489 | * |
|---|
| 490 | * Hydra_Software_Devel/160 5/21/07 7:13p vijeth |
|---|
| 491 | * PR 31433 : Frame Forward for 3:2 pulldown stream |
|---|
| 492 | * |
|---|
| 493 | * Hydra_Software_Devel/159 5/17/07 5:03p parijat |
|---|
| 494 | * PR30011: Frame rewind to frame advance to play transition can cause |
|---|
| 495 | * video to freeze on AVC |
|---|
| 496 | * |
|---|
| 497 | * Hydra_Software_Devel/158 5/15/07 1:19p pblanco |
|---|
| 498 | * PR28215: Added support for variable stripe width and multiple. |
|---|
| 499 | * |
|---|
| 500 | * Hydra_Software_Devel/157 5/14/07 11:30a nilesh |
|---|
| 501 | * PR30249: Merged UOD 2.x changes to mainline |
|---|
| 502 | * |
|---|
| 503 | * Hydra_Software_Devel/156 5/3/07 10:03p parijat |
|---|
| 504 | * PR30242: DM needs to derive "progressive sequence" info using |
|---|
| 505 | * progressive frame info for algorithms other than MPEG & VC1 |
|---|
| 506 | * |
|---|
| 507 | * Hydra_Software_Devel/155 5/2/07 2:55p vijeth |
|---|
| 508 | * PR 30382: Marker represents the Beginning of a Clip and not the end. |
|---|
| 509 | * |
|---|
| 510 | * Hydra_Software_Devel/154 4/24/07 2:52p rayshap |
|---|
| 511 | * PR30086: Increase VC1 discard threshold to 10 seconds |
|---|
| 512 | * |
|---|
| 513 | * Hydra_Software_Devel/153 4/24/07 1:39p nilesh |
|---|
| 514 | * PR22766: Added support for new FW API to provide FGT buffer address and |
|---|
| 515 | * size |
|---|
| 516 | * |
|---|
| 517 | * Hydra_Software_Devel/152 4/11/07 7:07p vijeth |
|---|
| 518 | * PR 29434 : Display Manager - NF002 disk - Simple Seemless Playback test |
|---|
| 519 | * fails - drops pictures |
|---|
| 520 | * |
|---|
| 521 | * Hydra_Software_Devel/151 4/11/07 12:15p parijat |
|---|
| 522 | * PR27835: Removed static variable & added eSourcePolarityPrev to |
|---|
| 523 | * stDMContextState structure |
|---|
| 524 | * |
|---|
| 525 | * Hydra_Software_Devel/150 4/11/07 12:01p parijat |
|---|
| 526 | * PR28082: Changed bFirstPPBForCurrentChannelHasBeenDetected from static |
|---|
| 527 | * to state variable |
|---|
| 528 | * |
|---|
| 529 | * Hydra_Software_Devel/149 3/26/07 1:54p pblanco |
|---|
| 530 | * PR27168: Added new constant definitions. |
|---|
| 531 | * |
|---|
| 532 | * Hydra_Software_Devel/148 3/22/07 11:51a pblanco |
|---|
| 533 | * PR28629: Added GOP timecode mask and shift constants. |
|---|
| 534 | * |
|---|
| 535 | * Hydra_Software_Devel/147 3/20/07 12:09p pblanco |
|---|
| 536 | * PR28629: Added support for BXVD_GetGopTimeCode. |
|---|
| 537 | * |
|---|
| 538 | * Hydra_Software_Devel/146 3/6/07 3:29p parijat |
|---|
| 539 | * PR28082: XVD : DM in PI : New callback which provides picture sizes |
|---|
| 540 | * immediately after channel open/change, required |
|---|
| 541 | * |
|---|
| 542 | * Hydra_Software_Devel/145 3/2/07 1:36p nilesh |
|---|
| 543 | * PR26188: Merged 7400B0 bring-up branch to mainline. Cleaned up heap |
|---|
| 544 | * naming and usage. |
|---|
| 545 | * |
|---|
| 546 | * Hydra_Software_Devel/PR26188/3 2/28/07 4:27p nilesh |
|---|
| 547 | * PR26188: Fixed incorrect calculation of FW Context base phy addr on |
|---|
| 548 | * 7400B0 |
|---|
| 549 | * |
|---|
| 550 | * Hydra_Software_Devel/PR26188/2 2/27/07 6:03p nilesh |
|---|
| 551 | * PR26188: Remove hack to set picture buffer address on 7400B0 |
|---|
| 552 | * |
|---|
| 553 | * Hydra_Software_Devel/PR26188/1 2/27/07 4:05p nilesh |
|---|
| 554 | * PR26188: 7400B0 Bring-Up |
|---|
| 555 | * |
|---|
| 556 | * Hydra_Software_Devel/144 2/6/07 11:08a nilesh |
|---|
| 557 | * PR27575: Fix 7440 Watchdog and make watchdog more robust on all |
|---|
| 558 | * platforms. |
|---|
| 559 | * |
|---|
| 560 | * Hydra_Software_Devel/PR27575/1 2/2/07 2:12p nilesh |
|---|
| 561 | * PR27575: Fix 7440 Watchdog |
|---|
| 562 | * |
|---|
| 563 | * Hydra_Software_Devel/142 1/23/07 1:40p pblanco |
|---|
| 564 | * PR27283: New UART initialization support. |
|---|
| 565 | * |
|---|
| 566 | * Hydra_Software_Devel/141 12/29/06 5:25p vijeth |
|---|
| 567 | * PR 26847: XVD : DM in PI : Wrong #defines used for couple of DNR |
|---|
| 568 | * parameters for AVC |
|---|
| 569 | * |
|---|
| 570 | * Hydra_Software_Devel/140 12/13/06 7:39p davidp |
|---|
| 571 | * PR25443: Remove deprecated data structures. |
|---|
| 572 | * |
|---|
| 573 | * Hydra_Software_Devel/139 12/12/06 3:00p davidp |
|---|
| 574 | * PR25443: Merge Simplified FW API branch into mainline |
|---|
| 575 | * |
|---|
| 576 | * Hydra_Software_Devel/138 12/6/06 11:11a pblanco |
|---|
| 577 | * PR26199: Altered change based on Gaurav's input. There is now a |
|---|
| 578 | * separate define for VC1 streams (4 secs.) and MPEG is back to 2 secs. |
|---|
| 579 | * |
|---|
| 580 | * Hydra_Software_Devel/137 12/6/06 10:21a pblanco |
|---|
| 581 | * PR26199: Changed mpeg discard threshold from 2 to 4 seconds to |
|---|
| 582 | * accomodate vc1 streams. |
|---|
| 583 | * |
|---|
| 584 | * Hydra_Software_Devel/136 11/17/06 4:50p nilesh |
|---|
| 585 | * PR25868: Merged authenticated image support to mainline |
|---|
| 586 | * |
|---|
| 587 | * Hydra_Software_Devel/PR25868/2 11/16/06 3:38p nilesh |
|---|
| 588 | * PR25868: Added authenticated image support |
|---|
| 589 | * |
|---|
| 590 | * Hydra_Software_Devel/PR25868/1 11/14/06 4:01p nilesh |
|---|
| 591 | * PR25868: Added pre-relocated image support |
|---|
| 592 | * |
|---|
| 593 | * Hydra_Software_Devel/135 11/13/06 9:32p vijeth |
|---|
| 594 | * PR 19436 : IFrameDetect needed for HITS |
|---|
| 595 | * |
|---|
| 596 | * Hydra_Software_Devel/134 11/13/06 7:18p vijeth |
|---|
| 597 | * PR 24597: Input / Output frame rate mismatch causes endless XVD phase |
|---|
| 598 | * interrupts |
|---|
| 599 | * |
|---|
| 600 | * Hydra_Software_Devel/133 11/9/06 4:43p davidp |
|---|
| 601 | * PR25698: Explicitly save XPT Rave CDB_Read register address being used |
|---|
| 602 | * for current decode to be restored during watchdog processing. |
|---|
| 603 | * |
|---|
| 604 | * Hydra_Software_Devel/132 11/3/06 6:35p vijeth |
|---|
| 605 | * PR 24492 : During transition from Pause -> Play there is a Jump in the |
|---|
| 606 | * Video |
|---|
| 607 | * |
|---|
| 608 | * Hydra_Software_Devel/131 10/19/06 7:16p vijeth |
|---|
| 609 | * PR 23237 : 7440: Add DisplayMgr support |
|---|
| 610 | * |
|---|
| 611 | * Hydra_Software_Devel/130 10/17/06 11:22p vijeth |
|---|
| 612 | * PR 23237 : 7440: Add DisplayMgr support |
|---|
| 613 | * |
|---|
| 614 | * Hydra_Software_Devel/DM7440/4 10/17/06 9:25p vijeth |
|---|
| 615 | * PR 23237 : 7440: Add DisplayMgr support |
|---|
| 616 | * |
|---|
| 617 | * Hydra_Software_Devel/DM7440/3 10/16/06 2:09p vijeth |
|---|
| 618 | * PR 23237 : 7440: Add DisplayMgr support |
|---|
| 619 | * |
|---|
| 620 | * Hydra_Software_Devel/DM7440/2 10/11/06 11:44a vijeth |
|---|
| 621 | * PR 23237 : 7440: Add DisplayMgr support |
|---|
| 622 | * |
|---|
| 623 | * Hydra_Software_Devel/DM7440/1 10/9/06 2:45p vijeth |
|---|
| 624 | * PR 23237: 7440: Add DisplayMgr support ( Making changes) |
|---|
| 625 | * |
|---|
| 626 | * Hydra_Software_Devel/129 10/2/06 3:00p gaurava |
|---|
| 627 | * PR 24597: Do not enable DM Logging because it kills the system. |
|---|
| 628 | * |
|---|
| 629 | * Hydra_Software_Devel/128 9/29/06 3:40p vijeth |
|---|
| 630 | * PR 24597 : Input / Output frame rate mismatch causes endless XVD phase |
|---|
| 631 | * interrupts |
|---|
| 632 | * |
|---|
| 633 | * Hydra_Software_Devel/127 9/26/06 9:54p vijeth |
|---|
| 634 | * PR 24559: Display Manager should not consider the first picture after |
|---|
| 635 | * ChannelOpen as late for performance measurements |
|---|
| 636 | * |
|---|
| 637 | * Hydra_Software_Devel/126 9/22/06 2:21p davidp |
|---|
| 638 | * PR22867: Update FW memory usage table, add secure memory heap support. |
|---|
| 639 | * |
|---|
| 640 | * Hydra_Software_Devel/125 9/5/06 3:05p davidp |
|---|
| 641 | * PR22867: Merge secure heap (Cabac) support |
|---|
| 642 | * |
|---|
| 643 | * Hydra_Software_Devel/xvd_cabac_heap/1 8/30/06 5:10p davidp |
|---|
| 644 | * 22867: Separate FW memory so Cabac bin memory can me moved to secure |
|---|
| 645 | * heap. |
|---|
| 646 | * |
|---|
| 647 | * Hydra_Software_Devel/124 8/9/06 3:06p davidp |
|---|
| 648 | * PR20394: PCR TimeBase decoder setting now assigned a default value in |
|---|
| 649 | * BXVD_OpenChannel. |
|---|
| 650 | * |
|---|
| 651 | * Hydra_Software_Devel/123 8/3/06 7:42p parijat |
|---|
| 652 | * PR 21703: video output stuttering when input stream is 50Hz and output |
|---|
| 653 | * is 60Hz |
|---|
| 654 | * |
|---|
| 655 | * Hydra_Software_Devel/122 8/1/06 5:58p davidp |
|---|
| 656 | * PR22673: Add verify watchdog fired platform routine. |
|---|
| 657 | * |
|---|
| 658 | * Hydra_Software_Devel/121 7/26/06 4:50p davidp |
|---|
| 659 | * PR22673: Cleanup more platform specific code, add hHWMemHeap element in |
|---|
| 660 | * Xvd handle. |
|---|
| 661 | * |
|---|
| 662 | * Hydra_Software_Devel/120 7/20/06 2:22p nilesh |
|---|
| 663 | * PR22673: Created BXVD_P_CONTEXT_PLATFORM macro to allow platform- |
|---|
| 664 | * specific fields in BXVD_P_Context struct |
|---|
| 665 | * |
|---|
| 666 | * Hydra_Software_Devel/119 7/19/06 2:26p pblanco |
|---|
| 667 | * PR22673: Moved conditional defines from bxvd_priv.h to the appropriate |
|---|
| 668 | * platformspecific header files. |
|---|
| 669 | * |
|---|
| 670 | * Hydra_Software_Devel/118 7/18/06 12:11a nilesh |
|---|
| 671 | * PR22673: Code restructure for 97400, 97401 B0, and 97118 |
|---|
| 672 | * |
|---|
| 673 | * Hydra_Software_Devel/PR22673/2 7/17/06 2:51p nilesh |
|---|
| 674 | * PR22673: Restructure on 97400 |
|---|
| 675 | * |
|---|
| 676 | * Hydra_Software_Devel/PR22673/1 7/17/06 2:34p nilesh |
|---|
| 677 | * PR22673: Restructure on 97401 |
|---|
| 678 | * |
|---|
| 679 | * Hydra_Software_Devel/117 7/14/06 10:21a pblanco |
|---|
| 680 | * PR21703: Also 22389 and 21580... 50Hz -> 60Hz |
|---|
| 681 | * |
|---|
| 682 | * Hydra_Software_Devel/116 7/13/06 4:56p davidp |
|---|
| 683 | * PR22673: Add BXVD_P_SetWatchdog_7401B0 routine, remove some 7401A0 |
|---|
| 684 | * support. |
|---|
| 685 | * |
|---|
| 686 | * Hydra_Software_Devel/115 7/12/06 4:48p davidp |
|---|
| 687 | * PR20017: Cleanup BXVD_Open, add platform specific setup routines |
|---|
| 688 | * |
|---|
| 689 | * Hydra_Software_Devel/114 7/11/06 5:06p davidp |
|---|
| 690 | * PR20017: Add FW inner loop Watchdog support, also add platform specific |
|---|
| 691 | * SetupInterrupts routines |
|---|
| 692 | * |
|---|
| 693 | * Hydra_Software_Devel/113 7/6/06 9:40a pblanco |
|---|
| 694 | * PR21943: Fixed conditional compilation for 7401 B0, broken when |
|---|
| 695 | * conditionalizing for 7118. |
|---|
| 696 | * |
|---|
| 697 | * Hydra_Software_Devel/112 7/5/06 3:20p pblanco |
|---|
| 698 | * PR21943: Conditionalization for 7118 |
|---|
| 699 | * |
|---|
| 700 | * Hydra_Software_Devel/111 5/31/06 11:01a vijeth |
|---|
| 701 | * PR 21144: XVD to tell VDC a field repeat |
|---|
| 702 | * |
|---|
| 703 | * Hydra_Software_Devel/110 5/26/06 1:54p davidp |
|---|
| 704 | * PR21740: Store userdata context in channel context, convert userdata |
|---|
| 705 | * addr using private memory heap info. |
|---|
| 706 | * |
|---|
| 707 | * Hydra_Software_Devel/109 5/25/06 3:10p pblanco |
|---|
| 708 | * PR20017: Reloc sanity check in. |
|---|
| 709 | * |
|---|
| 710 | * Hydra_Software_Devel/108 5/24/06 1:20p pblanco |
|---|
| 711 | * PR20017: Decreased inner loop address offset from 0x000c0000 to |
|---|
| 712 | * 0x000a0000. |
|---|
| 713 | * |
|---|
| 714 | * Hydra_Software_Devel/107 5/24/06 11:15a pblanco |
|---|
| 715 | * PR20017: Added a defined constant for inner loop address offset. |
|---|
| 716 | * |
|---|
| 717 | * Hydra_Software_Devel/106 5/24/06 10:00a pblanco |
|---|
| 718 | * PR20017: Added inner and outer loop end-of-code members to XVD context |
|---|
| 719 | * structure. |
|---|
| 720 | * |
|---|
| 721 | * Hydra_Software_Devel/105 5/11/06 6:08p davidp |
|---|
| 722 | * PR21532: Created new BXVD_[Un]InstallDeviceInterruptCallback to handle |
|---|
| 723 | * device instance interrupts for DecodeStillPicture and Watchdog. |
|---|
| 724 | * |
|---|
| 725 | * Hydra_Software_Devel/104 5/10/06 11:01a pblanco |
|---|
| 726 | * PR19877: Removed unused host command prototypes identified by Gaurav. |
|---|
| 727 | * |
|---|
| 728 | * Hydra_Software_Devel/103 5/5/06 3:29p davidp |
|---|
| 729 | * PR20079: Reduce 7400 FW shared memory from 16mb to 8mb per decoder. |
|---|
| 730 | * |
|---|
| 731 | * Hydra_Software_Devel/102 5/5/06 2:10p davidp |
|---|
| 732 | * PR21156: Add BXVD_P_ReleasePPB_isr and related _isr routines for DM to |
|---|
| 733 | * use at ISR time. |
|---|
| 734 | * |
|---|
| 735 | * Hydra_Software_Devel/101 5/4/06 11:32p vijeth |
|---|
| 736 | * PR 17879 : Support new DNR feature in XVD |
|---|
| 737 | * |
|---|
| 738 | * Hydra_Software_Devel/Test_PR17879_SupportDNR/1 5/3/06 9:44p vijeth |
|---|
| 739 | * PR 17879 : Support new DNR feature in XVD |
|---|
| 740 | * |
|---|
| 741 | * Hydra_Software_Devel/100 4/24/06 2:11p davidp |
|---|
| 742 | * PR18043: Add support for Sequence Header interrupt processing |
|---|
| 743 | * |
|---|
| 744 | * Hydra_Software_Devel/99 4/18/06 11:04a pblanco |
|---|
| 745 | * PR19123: Use calculated values for page register initialization. |
|---|
| 746 | * |
|---|
| 747 | * Hydra_Software_Devel/98 4/17/06 6:27p davidp |
|---|
| 748 | * PR20916: Save and restore channelChangeMode during disableForFlush and |
|---|
| 749 | * Flush processing |
|---|
| 750 | * |
|---|
| 751 | * Hydra_Software_Devel/97 4/17/06 3:55p pblanco |
|---|
| 752 | * PR19123: Added definitions for page register initialization values. |
|---|
| 753 | * |
|---|
| 754 | * Hydra_Software_Devel/96 4/14/06 2:17p davidp |
|---|
| 755 | * PR19600: Move 7400 AVD FW load address to 62MB |
|---|
| 756 | * |
|---|
| 757 | * Hydra_Software_Devel/95 4/12/06 12:50p davidp |
|---|
| 758 | * PR19600: Move 7401 FW load address to 48mb, also decrease size to 1mb |
|---|
| 759 | * |
|---|
| 760 | * Hydra_Software_Devel/94 4/6/06 3:52p pblanco |
|---|
| 761 | * PR19877: Removed unused members from private channel context structure. |
|---|
| 762 | * |
|---|
| 763 | * Hydra_Software_Devel/93 4/6/06 12:59p pblanco |
|---|
| 764 | * PR20625: Removed the now unused bUserMute flag from the channel context |
|---|
| 765 | * structure. |
|---|
| 766 | * |
|---|
| 767 | * Hydra_Software_Devel/92 4/5/06 2:09p pblanco |
|---|
| 768 | * PR15434: Changed channel open formal parameter from Port to |
|---|
| 769 | * RaveEndianess. |
|---|
| 770 | * |
|---|
| 771 | * Hydra_Software_Devel/91 3/29/06 2:28p pblanco |
|---|
| 772 | * PR19099: Added separate discard threshold defines for AVC and MPEG. |
|---|
| 773 | * |
|---|
| 774 | * Hydra_Software_Devel/90 3/29/06 2:08p pblanco |
|---|
| 775 | * PR19877: Added BXVD_P_GetSeqHdr function prototype. |
|---|
| 776 | * |
|---|
| 777 | * Hydra_Software_Devel/89 3/29/06 12:45p vijeth |
|---|
| 778 | * PR 19284: add BXVD_Interrupt_eNewPtsStcOffset for higher precision |
|---|
| 779 | * lipsync |
|---|
| 780 | * |
|---|
| 781 | * Hydra_Software_Devel/89 3/29/06 12:43p vijeth |
|---|
| 782 | * PR 19284: add BXVD_Interrupt_eNewPtsStcOffset for higher precision |
|---|
| 783 | * lipsync |
|---|
| 784 | * |
|---|
| 785 | * Hydra_Software_Devel/89 3/29/06 12:42p vijeth |
|---|
| 786 | * PR 19284: add BXVD_Interrupt_eNewPtsStcOffset for higher precision |
|---|
| 787 | * lipsync |
|---|
| 788 | * |
|---|
| 789 | * Hydra_Software_Devel/88 3/28/06 6:14p davidp |
|---|
| 790 | * PR20353: Add decoder private memory base address to luma/chroma buffer |
|---|
| 791 | * address being returned to app. |
|---|
| 792 | * |
|---|
| 793 | * Hydra_Software_Devel/87 3/27/06 6:35p davidp |
|---|
| 794 | * PR20353: Add Decode Still Picture support for 7400 |
|---|
| 795 | * |
|---|
| 796 | * Hydra_Software_Devel/86 3/27/06 4:22p pblanco |
|---|
| 797 | * PR19877: Added address for vdec status block to private channel context |
|---|
| 798 | * structure. This is used to get GOP time codes sequence header. |
|---|
| 799 | * |
|---|
| 800 | * Hydra_Software_Devel/85 3/27/06 3:13p pblanco |
|---|
| 801 | * PR19877: Removed unused member declaration of type BXVD_VideoParams. |
|---|
| 802 | * |
|---|
| 803 | * Hydra_Software_Devel/84 3/24/06 1:35p pblanco |
|---|
| 804 | * PR20274: Interim checkin prior to FW implementation. |
|---|
| 805 | * |
|---|
| 806 | * Hydra_Software_Devel/83 3/23/06 8:57a pblanco |
|---|
| 807 | * PR19877: Added bPreserveState to private channel context data. |
|---|
| 808 | * |
|---|
| 809 | * Hydra_Software_Devel/82 3/22/06 5:16p davidp |
|---|
| 810 | * PR20347: Add L2 interrupt support |
|---|
| 811 | * |
|---|
| 812 | * Hydra_Software_Devel/81 3/21/06 5:20p vijeth |
|---|
| 813 | * PR 20202: Need initial removal delay option for elementary stream |
|---|
| 814 | * playback |
|---|
| 815 | * PR 20243: XVD DM should print message when vsync interrupt is missed |
|---|
| 816 | * |
|---|
| 817 | * Hydra_Software_Devel/80 3/15/06 4:09p pblanco |
|---|
| 818 | * PR20197: The channel context structure contained a member that was |
|---|
| 819 | * incorrectly being set for display field mode. The correct member is in |
|---|
| 820 | * the channel state structure. The incorrect member has been removed to |
|---|
| 821 | * eliminate future confusion. |
|---|
| 822 | * |
|---|
| 823 | * Hydra_Software_Devel/79 3/6/06 1:21p pblanco |
|---|
| 824 | * PR16785: Changed skip mode command prototype to use new skip mode enum. |
|---|
| 825 | * |
|---|
| 826 | * Hydra_Software_Devel/78 2/28/06 4:36p davidp |
|---|
| 827 | * PR18906: Pass proper field polarity/frame value to VDC for |
|---|
| 828 | * PictureDataRdy interrupt regardless if decode is in progress.: |
|---|
| 829 | * |
|---|
| 830 | * Hydra_Software_Devel/77 2/28/06 10:31a pblanco |
|---|
| 831 | * PR19877: Additional structure and code cleanup. |
|---|
| 832 | * |
|---|
| 833 | * Hydra_Software_Devel/76 2/22/06 11:37a pblanco |
|---|
| 834 | * PR19785: Re-checked in to fix ClearCase 0 length file problem. |
|---|
| 835 | * |
|---|
| 836 | * Hydra_Software_Devel/74 2/21/06 1:46p pblanco |
|---|
| 837 | * PR19785: Implemented BXVD_SetSkipPictureMode API. This also needs FW |
|---|
| 838 | * support. |
|---|
| 839 | * |
|---|
| 840 | * Hydra_Software_Devel/73 2/17/06 3:17p davidp |
|---|
| 841 | * PR16792: Modify FW API for Still Picture Decode, feature now working: |
|---|
| 842 | * |
|---|
| 843 | * Hydra_Software_Devel/72 2/15/06 1:56p pblanco |
|---|
| 844 | * PR18545: Extended user data types for 7401/7400 in the same manner Mai |
|---|
| 845 | * did for 7411. |
|---|
| 846 | * |
|---|
| 847 | * Hydra_Software_Devel/71 2/14/06 1:11p pblanco |
|---|
| 848 | * PR19123: Moved static data from bxvd.c interrupt routines to XVD |
|---|
| 849 | * context structure. |
|---|
| 850 | * |
|---|
| 851 | * Hydra_Software_Devel/70 2/2/06 4:04p pblanco |
|---|
| 852 | * PR19123: More code cleanup. Changed all instances of uAvcInstance to |
|---|
| 853 | * uDecoderInstance and removed last remaining references to the old |
|---|
| 854 | * decoder context array. |
|---|
| 855 | * |
|---|
| 856 | * Hydra_Software_Devel/69 2/1/06 3:54p pblanco |
|---|
| 857 | * PR19123: Changed "AVC" instance array in XVD context structure to a |
|---|
| 858 | * single instance of type BXVD_DecoderContext. Tested against 7401 with |
|---|
| 859 | * no regressions and against 7400 with no regressions. |
|---|
| 860 | * |
|---|
| 861 | * Hydra_Software_Devel/68 1/31/06 1:35p pblanco |
|---|
| 862 | * PR19123: Make sure there are two AVC instance structures for 7400. |
|---|
| 863 | * |
|---|
| 864 | * Hydra_Software_Devel/67 1/30/06 1:40p pblanco |
|---|
| 865 | * PR19123: Fixed function prototype for trick mode enable. |
|---|
| 866 | * |
|---|
| 867 | * Hydra_Software_Devel/66 1/30/06 8:58a pblanco |
|---|
| 868 | * PR19308: Changed function prototype for |
|---|
| 869 | * BXVD_P_HostCmdDecEnableBRCMTrickPlay to take an unsigned long value |
|---|
| 870 | * instead of a boolean. |
|---|
| 871 | * |
|---|
| 872 | * Hydra_Software_Devel/65 1/26/06 4:03p davidp |
|---|
| 873 | * PR19123: Remove printf debug messages, clean up compiler warnings: |
|---|
| 874 | * |
|---|
| 875 | * Hydra_Software_Devel/64 1/25/06 6:52p davidp |
|---|
| 876 | * PR19123: Add platform specific definition of FS_MAP_SIZE: |
|---|
| 877 | * |
|---|
| 878 | * Hydra_Software_Devel/63 1/24/06 2:51p pblanco |
|---|
| 879 | * PR19123: 7400 firmware bring up debugging changes. |
|---|
| 880 | * |
|---|
| 881 | * Hydra_Software_Devel/62 1/20/06 9:31a pblanco |
|---|
| 882 | * PR19123: Change Reset7401 to the more generic Reset740x. |
|---|
| 883 | * |
|---|
| 884 | * Hydra_Software_Devel/61 1/16/06 4:38p pblanco |
|---|
| 885 | * PR19099: Added default discard threshold value definition. |
|---|
| 886 | * |
|---|
| 887 | * Hydra_Software_Devel/60 1/16/06 1:27p davidp |
|---|
| 888 | * PR16792: BXVD_Open now uses two heap pointers, one for FW code (2MB) |
|---|
| 889 | * the other for FW picture buffers.: |
|---|
| 890 | * |
|---|
| 891 | * Hydra_Software_Devel/59 1/10/06 11:17a pblanco |
|---|
| 892 | * PR16052: Added function prototype for |
|---|
| 893 | * BXVD_P_HostCmdDecEnableBRCMTrickPlay. |
|---|
| 894 | * |
|---|
| 895 | * Hydra_Software_Devel/58 1/3/06 10:51a pblanco |
|---|
| 896 | * PR16052: Added BXVD_PVR_BTPMode member to BXVD_P_PVRCommands. |
|---|
| 897 | * |
|---|
| 898 | * Hydra_Software_Devel/57 12/23/05 6:50p davidp |
|---|
| 899 | * PR16878: Reset Decoder in Watchdog ISR, add BXVD_Open setting for |
|---|
| 900 | * watchdog timer value, pass WD info to FW: |
|---|
| 901 | * |
|---|
| 902 | * Hydra_Software_Devel/56 12/21/05 5:59p davidp |
|---|
| 903 | * PR16052: Add Still picture support: |
|---|
| 904 | * |
|---|
| 905 | * Hydra_Software_Devel/55 12/12/05 8:19p davidp |
|---|
| 906 | * PR16052: Add PTS related callbacks: |
|---|
| 907 | * |
|---|
| 908 | * Hydra_Software_Devel/54 12/12/05 3:09p pblanco |
|---|
| 909 | * PR16052: More still picture internals (sanity checkin) |
|---|
| 910 | * |
|---|
| 911 | * Hydra_Software_Devel/53 12/9/05 12:28p pblanco |
|---|
| 912 | * PR16052: Added prototype for still picture decode host command. |
|---|
| 913 | * |
|---|
| 914 | * Hydra_Software_Devel/52 12/7/05 5:26p davidp |
|---|
| 915 | * PR16878: Add XVD Watchdog routines: |
|---|
| 916 | * |
|---|
| 917 | * Hydra_Software_Devel/51 12/2/05 12:32p pblanco |
|---|
| 918 | * PR16052: Removed BXVD_FilmTypeDetectionMode from referring structure. |
|---|
| 919 | * |
|---|
| 920 | * Hydra_Software_Devel/50 12/2/05 9:58a pblanco |
|---|
| 921 | * PR16052: Moved BXVD_ReleasePPB to BXVD_P_ReleasePPB. |
|---|
| 922 | * |
|---|
| 923 | * Hydra_Software_Devel/49 12/1/05 1:44p pblanco |
|---|
| 924 | * PR16052: Changed definition of BXVD_P_UserData so that the forward |
|---|
| 925 | * pointer is a |
|---|
| 926 | * unsigned long. |
|---|
| 927 | * |
|---|
| 928 | * Hydra_Software_Devel/48 11/28/05 2:30p pblanco |
|---|
| 929 | * PR16052: Added BXVD_IS_MPEG and BXVD_IS_AVC macros. |
|---|
| 930 | * |
|---|
| 931 | * Hydra_Software_Devel/47 11/22/05 1:15p pblanco |
|---|
| 932 | * PR16052: Added new user data related defines and enums. |
|---|
| 933 | * |
|---|
| 934 | * Hydra_Software_Devel/46 11/18/05 9:19a pblanco |
|---|
| 935 | * PR16052: Added PPB field polarity flag mask define. |
|---|
| 936 | * |
|---|
| 937 | * Hydra_Software_Devel/45 11/15/05 11:14a pblanco |
|---|
| 938 | * PR16052: Removed old queueing code. User data will implement a private |
|---|
| 939 | * version. |
|---|
| 940 | * |
|---|
| 941 | * Hydra_Software_Devel/44 11/11/05 9:47a pblanco |
|---|
| 942 | * PR16052: Added user data queue pointer to channel context. |
|---|
| 943 | * |
|---|
| 944 | * Hydra_Software_Devel/43 11/10/05 8:52a pblanco |
|---|
| 945 | * PR17567: Adding correct display override to XVD. |
|---|
| 946 | * |
|---|
| 947 | * Hydra_Software_Devel/42 11/10/05 7:53a pblanco |
|---|
| 948 | * PR16052: FW now uses heap info to determine load and execution |
|---|
| 949 | * addresses. Also removed unused code that existed when XVD used to |
|---|
| 950 | * create and map its own heap. Corresponding changes were made in |
|---|
| 951 | * related modules also checked in at this time. |
|---|
| 952 | * |
|---|
| 953 | * Hydra_Software_Devel/41 11/4/05 3:54p davidp |
|---|
| 954 | * PR16052: Add call to BXVD_P_ReleasePPBonCloseChannel to StopDecode: |
|---|
| 955 | * |
|---|
| 956 | * Hydra_Software_Devel/40 10/28/05 9:36p vijeth |
|---|
| 957 | * PR 17483: Added the STCinvalid flag |
|---|
| 958 | * Added support to count the number of underflows, |
|---|
| 959 | * |
|---|
| 960 | * Hydra_Software_Devel/39 10/27/05 7:06p vijeth |
|---|
| 961 | * PR 17483: Added code for the DM to remember the STC_Offset and |
|---|
| 962 | * STC_Offset_valid information across the DM runs. For different |
|---|
| 963 | * Pictures. |
|---|
| 964 | * |
|---|
| 965 | * Hydra_Software_Devel/38 10/20/05 5:25p pblanco |
|---|
| 966 | * PR16052: Removed all C++ style comments |
|---|
| 967 | * |
|---|
| 968 | * Hydra_Software_Devel/37 10/18/05 3:36p ssavekar |
|---|
| 969 | * PR 16052: New check-in for XVD |
|---|
| 970 | * Added code for excluding OS calls from all normal compilations. |
|---|
| 971 | * |
|---|
| 972 | * Hydra_Software_Devel/36 10/14/05 7:08p ssavekar |
|---|
| 973 | * PR 16052: New check-in for XVD |
|---|
| 974 | * Added defines related to display manager logs and a few other defines |
|---|
| 975 | * for enabling logs in "BXVD_P_PictureDataReady_isr()". All these |
|---|
| 976 | * defines are disabled hence no logs will be printed. |
|---|
| 977 | * |
|---|
| 978 | * Hydra_Software_Devel/35 10/7/05 3:29p pblanco |
|---|
| 979 | * PR16052: Added new function prototypes for queue management API. |
|---|
| 980 | * |
|---|
| 981 | * Hydra_Software_Devel/34 10/6/05 5:18p ssavekar |
|---|
| 982 | * PR 16052: New check-in for XVD |
|---|
| 983 | * Added variables for clean channel change. |
|---|
| 984 | * |
|---|
| 985 | * Hydra_Software_Devel/33 9/27/05 2:44p davidp |
|---|
| 986 | * PR16052: Fix SH_MEM_AREA definition: |
|---|
| 987 | * |
|---|
| 988 | * Hydra_Software_Devel/32 9/26/05 2:25p pblanco |
|---|
| 989 | * PR16052: Added RUL descriptor mask to channel open prototype. |
|---|
| 990 | * |
|---|
| 991 | * Hydra_Software_Devel/30 9/20/05 3:52p ssavekar |
|---|
| 992 | * PR 16052: New check-in for XVD |
|---|
| 993 | * Added a data structure for holding RUL ID mask values. |
|---|
| 994 | * |
|---|
| 995 | * Hydra_Software_Devel/29 9/16/05 8:37a pblanco |
|---|
| 996 | * PR16052: Moved decoder control functions from bxvd.c to private |
|---|
| 997 | * functions here. |
|---|
| 998 | * |
|---|
| 999 | * Hydra_Software_Devel/28 9/14/05 1:15p pblanco |
|---|
| 1000 | * PR16052: Added a BXVD_DisplayFieldType to the channel context. |
|---|
| 1001 | * |
|---|
| 1002 | * Hydra_Software_Devel/27 9/13/05 1:49p pblanco |
|---|
| 1003 | * PR16052: Cleaned up decoder flush code. |
|---|
| 1004 | * |
|---|
| 1005 | * Hydra_Software_Devel/26 9/9/05 7:26a pblanco |
|---|
| 1006 | * PR16052: Removed "AlmostDone" interrupt from channel structure. |
|---|
| 1007 | * |
|---|
| 1008 | * Hydra_Software_Devel/25 9/8/05 4:52p ssavekar |
|---|
| 1009 | * PR 16052: New check-in for XVD |
|---|
| 1010 | * Changes for DM integration with XVD and FW. |
|---|
| 1011 | * |
|---|
| 1012 | * Hydra_Software_Devel/24 9/6/05 1:07p pblanco |
|---|
| 1013 | * PR16052: Removed prototype for BXVD_P_GetFWVBase. |
|---|
| 1014 | * |
|---|
| 1015 | * Hydra_Software_Devel/23 9/6/05 10:26a pblanco |
|---|
| 1016 | * PR16052: Added new function prototypes for physical to virtual address |
|---|
| 1017 | * translation and moved some defines from bxvd_priv.c |
|---|
| 1018 | * |
|---|
| 1019 | * Hydra_Software_Devel/22 8/29/05 8:37a pblanco |
|---|
| 1020 | * PR16052: Support for new FW. |
|---|
| 1021 | * |
|---|
| 1022 | * Hydra_Software_Devel/21 8/25/05 9:34a pblanco |
|---|
| 1023 | * PR16052: Added prototypes for ChannelDrop and ReleasePicture. |
|---|
| 1024 | * |
|---|
| 1025 | * Hydra_Software_Devel/20 8/24/05 1:13p pblanco |
|---|
| 1026 | * PR16052: Added new function prototypes and a new member for AVC |
|---|
| 1027 | * instance to the XVD context structure. |
|---|
| 1028 | * |
|---|
| 1029 | * Hydra_Software_Devel/19 8/23/05 2:04p pblanco |
|---|
| 1030 | * PR16052: Additional host command support, code cleanup and bug fixes. |
|---|
| 1031 | * |
|---|
| 1032 | * Hydra_Software_Devel/19 8/23/05 1:46p pblanco |
|---|
| 1033 | * PR16052: Additional host command support, code cleanup and bug fixes. |
|---|
| 1034 | * |
|---|
| 1035 | * Hydra_Software_Devel/17 8/18/05 2:13p pblanco |
|---|
| 1036 | * PR16052: Code fixes for BXVD_OpenChannel and BXVD_StartDecode. |
|---|
| 1037 | * |
|---|
| 1038 | * Hydra_Software_Devel/16 8/5/05 12:24a ssavekar |
|---|
| 1039 | * PR 16052: New check-in for XVD |
|---|
| 1040 | * Added data structures and callback handles for "DataReadyISR" that in |
|---|
| 1041 | * turn calls DM in structure "BXVD_P_Channel". |
|---|
| 1042 | * |
|---|
| 1043 | * Hydra_Software_Devel/15 8/2/05 5:24a ssavekar |
|---|
| 1044 | * PR 16052: New check-in for XVD |
|---|
| 1045 | * Changes after a code walk-through. |
|---|
| 1046 | * |
|---|
| 1047 | * Hydra_Software_Devel/14 7/30/05 12:57a ssavekar |
|---|
| 1048 | * PR 16052: New check-in for XVD |
|---|
| 1049 | * Modified a few data structures for XVD and 7401 FW integration. Removed |
|---|
| 1050 | * all the PPB related data structures. These data structures are placed |
|---|
| 1051 | * in a separate file "bxvd_vdec_info.h" |
|---|
| 1052 | * |
|---|
| 1053 | * Hydra_Software_Devel/13 7/26/05 11:33a pblanco |
|---|
| 1054 | * PR16052: Changed remaining 7411 variable tags to 7401. |
|---|
| 1055 | * |
|---|
| 1056 | * Hydra_Software_Devel/12 7/25/05 12:24p ebrakus |
|---|
| 1057 | * PR16052: Modified BABV_Handle to include Avc contexts |
|---|
| 1058 | * |
|---|
| 1059 | * Hydra_Software_Devel/11 7/22/05 11:36a pblanco |
|---|
| 1060 | * PR16052: Code cleanup and data structure factoring. |
|---|
| 1061 | * |
|---|
| 1062 | * Hydra_Software_Devel/10 7/20/05 3:17p pblanco |
|---|
| 1063 | * PR16052: Additional development. |
|---|
| 1064 | * |
|---|
| 1065 | * Hydra_Software_Devel/9 7/19/05 3:09p pblanco |
|---|
| 1066 | * PR16052: Additional development. |
|---|
| 1067 | * |
|---|
| 1068 | * Hydra_Software_Devel/8 7/18/05 3:18p pblanco |
|---|
| 1069 | * PR16052: Additional code development. |
|---|
| 1070 | * |
|---|
| 1071 | * Hydra_Software_Devel/6 7/15/05 1:07p pblanco |
|---|
| 1072 | * PR16052: Clean build with new code and data. |
|---|
| 1073 | * |
|---|
| 1074 | * Hydra_Software_Devel/5 7/14/05 10:53a pblanco |
|---|
| 1075 | * PR16052: Fix compilation errors caused by merge. |
|---|
| 1076 | * |
|---|
| 1077 | * Hydra_Software_Devel/4 7/13/05 4:19p pblanco |
|---|
| 1078 | * PR16052: Formatting and name fixups for merge. |
|---|
| 1079 | * |
|---|
| 1080 | * Hydra_Software_Devel/3 7/13/05 2:45p pblanco |
|---|
| 1081 | * PR16052: Merging with Santosh. |
|---|
| 1082 | * |
|---|
| 1083 | * Hydra_Software_Devel/1 7/7/05 8:56a pblanco |
|---|
| 1084 | * PR16052: Added |
|---|
| 1085 | * |
|---|
| 1086 | *****************************************************************************/ |
|---|
| 1087 | #ifndef BXVD_PRIV_H__ |
|---|
| 1088 | #define BXVD_PRIV_H__ |
|---|
| 1089 | |
|---|
| 1090 | #include "bxvd.h" |
|---|
| 1091 | #include "bkni.h" |
|---|
| 1092 | #include "breg_mem.h" |
|---|
| 1093 | #include "bxvd_userdata.h" |
|---|
| 1094 | #include "bxvd_pvr.h" |
|---|
| 1095 | #include "bchp_bvnf_intr2_3.h" |
|---|
| 1096 | #include "bxvd_vdec_info.h" |
|---|
| 1097 | #include "bxvd_vdec_api.h" |
|---|
| 1098 | #include "bxvd_memory_priv.h" |
|---|
| 1099 | #include "bxvd_status.h" |
|---|
| 1100 | #include "bxvd_dip.h" |
|---|
| 1101 | #include "bxdm_dih.h" |
|---|
| 1102 | #include "bxdm_pp.h" |
|---|
| 1103 | |
|---|
| 1104 | /* needed to get pb_lib.c to compile. |
|---|
| 1105 | * better to change pi_util.h? |
|---|
| 1106 | */ |
|---|
| 1107 | #include "bxvd_decoder.h" |
|---|
| 1108 | |
|---|
| 1109 | #ifdef __cplusplus |
|---|
| 1110 | extern "C" { |
|---|
| 1111 | #endif |
|---|
| 1112 | |
|---|
| 1113 | /* Supported stripe width values */ |
|---|
| 1114 | #define BXVD_P_STRIPE_WIDTH_NUM 2 |
|---|
| 1115 | |
|---|
| 1116 | /* Supported stripe multiple values */ |
|---|
| 1117 | #define BXVD_P_STRIPE_MULTIPLE_NUM 3 |
|---|
| 1118 | #ifdef CONFIG_AOV_SDRAM_1G/*janzy@20121001*/ |
|---|
| 1119 | #define BXVD_MAX_VIDEO_CHANNELS 4 |
|---|
| 1120 | #else |
|---|
| 1121 | #define BXVD_MAX_VIDEO_CHANNELS 16 |
|---|
| 1122 | #endif |
|---|
| 1123 | |
|---|
| 1124 | /*********************************************************************** |
|---|
| 1125 | * Private macros |
|---|
| 1126 | ***********************************************************************/ |
|---|
| 1127 | |
|---|
| 1128 | /* SW7405-3245: at compile time select either the BDBG_INSTANCE_* or |
|---|
| 1129 | * BDBG_* macros. The BDBG_* macros are substantially faster. |
|---|
| 1130 | */ |
|---|
| 1131 | #if BXVD_P_USE_INSTANCE_MACROS |
|---|
| 1132 | #define BXVD_DBG_MSG(instance, format) BDBG_INSTANCE_MSG(instance, format) |
|---|
| 1133 | #define BXVD_DBG_WRN(instance, format) BDBG_INSTANCE_WRN(instance, format) |
|---|
| 1134 | #define BXVD_DBG_ERR(instance, format) BDBG_INSTANCE_ERR(instance, format) |
|---|
| 1135 | #else |
|---|
| 1136 | #define BXVD_DBG_MSG(instance, format) \ |
|---|
| 1137 | BSTD_UNUSED(instance); \ |
|---|
| 1138 | BDBG_MSG(format) \ |
|---|
| 1139 | |
|---|
| 1140 | #define BXVD_DBG_WRN(instance, format) \ |
|---|
| 1141 | BSTD_UNUSED(instance); \ |
|---|
| 1142 | BDBG_WRN(format) \ |
|---|
| 1143 | |
|---|
| 1144 | #define BXVD_DBG_ERR(instance, format) \ |
|---|
| 1145 | BSTD_UNUSED(instance); \ |
|---|
| 1146 | BDBG_ERR(format) \ |
|---|
| 1147 | |
|---|
| 1148 | #endif |
|---|
| 1149 | |
|---|
| 1150 | #define BXVD_IS_MPEG(protocol) ( \ |
|---|
| 1151 | (BAVC_VideoCompressionStd_eMPEG2 == (protocol)) || \ |
|---|
| 1152 | (BAVC_VideoCompressionStd_eMPEG2DTV == (protocol)) || \ |
|---|
| 1153 | (BAVC_VideoCompressionStd_eMPEG1 == (protocol))) |
|---|
| 1154 | |
|---|
| 1155 | #define BXVD_IS_AVC(protocol) ( \ |
|---|
| 1156 | (BAVC_VideoCompressionStd_eH264 == (protocol)) || \ |
|---|
| 1157 | (BAVC_VideoCompressionStd_eH261== (protocol)) || \ |
|---|
| 1158 | (BAVC_VideoCompressionStd_eH263== (protocol))) |
|---|
| 1159 | |
|---|
| 1160 | #define BXVD_IS_AVS(protocol) (BAVC_VideoCompressionStd_eAVS == (protocol)) |
|---|
| 1161 | |
|---|
| 1162 | #define BXVD_P_RESET_CORE( hXvd, uiReg, uiResetMask, string) \ |
|---|
| 1163 | { \ |
|---|
| 1164 | uint32_t uiRegVal, uiPollCnt; \ |
|---|
| 1165 | bool bDone; \ |
|---|
| 1166 | \ |
|---|
| 1167 | uiRegVal = BXVD_Reg_Read32( hXvd, uiReg); \ |
|---|
| 1168 | \ |
|---|
| 1169 | uiRegVal |= uiResetMask; \ |
|---|
| 1170 | \ |
|---|
| 1171 | BXVD_Reg_Write32( hXvd, uiReg, uiRegVal); \ |
|---|
| 1172 | \ |
|---|
| 1173 | bDone = false; \ |
|---|
| 1174 | uiPollCnt = 1; \ |
|---|
| 1175 | \ |
|---|
| 1176 | while (!bDone) \ |
|---|
| 1177 | { \ |
|---|
| 1178 | uiRegVal = BXVD_Reg_Read32( hXvd, uiReg); \ |
|---|
| 1179 | \ |
|---|
| 1180 | if (((uiRegVal & uiResetMask) != uiResetMask) \ |
|---|
| 1181 | || (uiPollCnt++ > 100)) \ |
|---|
| 1182 | { \ |
|---|
| 1183 | bDone = true; \ |
|---|
| 1184 | } \ |
|---|
| 1185 | } \ |
|---|
| 1186 | BXVD_DBG_MSG(hXvd, ("%s reset pollcnt: %d\n", string, uiPollCnt)); \ |
|---|
| 1187 | } |
|---|
| 1188 | |
|---|
| 1189 | |
|---|
| 1190 | #define BXVD_P_IS_FW_VERSION_VALID(pInitRsp) \ |
|---|
| 1191 | (((pInitRsp->sw_version >> 8) & 0xff) == BXVD_P_CURRENT_MAJOR_VERSION) |
|---|
| 1192 | |
|---|
| 1193 | #define BXVD_P_CREATE_PROTOCOLS_MASK(eVidCmprStd) \ |
|---|
| 1194 | ( 1 << (eVidCmprStd - BAVC_VideoCompressionStd_eMPEG4Part2)) |
|---|
| 1195 | |
|---|
| 1196 | #define BXVD_P_REVE_DECODE_PROTOCOLS_MASK BXVD_P_CREATE_PROTOCOLS_MASK(BAVC_VideoCompressionStd_eMPEG2_DSS_PES) |
|---|
| 1197 | |
|---|
| 1198 | #define BXVD_P_REVH_DECODE_PROTOCOLS_MASK (BXVD_P_REVE_DECODE_PROTOCOLS_MASK | \ |
|---|
| 1199 | BXVD_P_CREATE_PROTOCOLS_MASK(BAVC_VideoCompressionStd_eMPEG4Part2)) |
|---|
| 1200 | |
|---|
| 1201 | #define BXVD_P_REVI_DECODE_PROTOCOLS_MASK (BXVD_P_REVH_DECODE_PROTOCOLS_MASK | \ |
|---|
| 1202 | BXVD_P_CREATE_PROTOCOLS_MASK( BAVC_VideoCompressionStd_eAVS)) |
|---|
| 1203 | |
|---|
| 1204 | #define BXVD_P_REVJ_DECODE_PROTOCOLS_MASK (BXVD_P_REVI_DECODE_PROTOCOLS_MASK | \ |
|---|
| 1205 | BXVD_P_CREATE_PROTOCOLS_MASK( BAVC_VideoCompressionStd_eMVC)) |
|---|
| 1206 | |
|---|
| 1207 | #define BXVD_P_REVK_DECODE_PROTOCOLS_MASK (BXVD_P_REVJ_DECODE_PROTOCOLS_MASK | \ |
|---|
| 1208 | BXVD_P_CREATE_PROTOCOLS_MASK( BAVC_VideoCompressionStd_eSVC)) |
|---|
| 1209 | |
|---|
| 1210 | #define BXVD_P_REVL_DECODE_PROTOCOLS_MASK (BXVD_P_REVK_DECODE_PROTOCOLS_MASK | \ |
|---|
| 1211 | BXVD_P_CREATE_PROTOCOLS_MASK( BAVC_VideoCompressionStd_eVP7) | \ |
|---|
| 1212 | BXVD_P_CREATE_PROTOCOLS_MASK( BAVC_VideoCompressionStd_eVP8) | \ |
|---|
| 1213 | BXVD_P_CREATE_PROTOCOLS_MASK( BAVC_VideoCompressionStd_eRV9) | \ |
|---|
| 1214 | BXVD_P_CREATE_PROTOCOLS_MASK( BAVC_VideoCompressionStd_eSPARK)) |
|---|
| 1215 | |
|---|
| 1216 | #define BXVD_P_REVM_DECODE_PROTOCOLS_MASK (BXVD_P_REVL_DECODE_PROTOCOLS_MASK | \ |
|---|
| 1217 | BXVD_P_CREATE_PROTOCOLS_MASK( BAVC_VideoCompressionStd_eVP6)) |
|---|
| 1218 | |
|---|
| 1219 | |
|---|
| 1220 | |
|---|
| 1221 | /*********************************************************************** |
|---|
| 1222 | * Private Enums |
|---|
| 1223 | ***********************************************************************/ |
|---|
| 1224 | |
|---|
| 1225 | /* Private state to indicate decode state */ |
|---|
| 1226 | typedef enum BXVD_P_DecoderState |
|---|
| 1227 | { |
|---|
| 1228 | BXVD_P_DecoderState_eNotActive=0, /* Initial state */ |
|---|
| 1229 | BXVD_P_DecoderState_eActive /* StartDecode executed */ |
|---|
| 1230 | } BXVD_P_DecoderState; |
|---|
| 1231 | |
|---|
| 1232 | typedef enum BXVD_P_HandleType |
|---|
| 1233 | { |
|---|
| 1234 | BXVD_P_HandleType_XvdMain, |
|---|
| 1235 | BXVD_P_HandleType_XvdChannel, |
|---|
| 1236 | BXVD_P_HandleType_Userdata, |
|---|
| 1237 | BXVD_P_HandleType_Invalid |
|---|
| 1238 | } BXVD_P_HandleType; |
|---|
| 1239 | |
|---|
| 1240 | typedef enum BXVD_P_MemCfgMode |
|---|
| 1241 | { |
|---|
| 1242 | BXVD_P_MemCfgMode_eUMA, |
|---|
| 1243 | BXVD_P_MemCfgMode_eNONUMA, |
|---|
| 1244 | BXVD_P_MemCfgMode_eUNKNOWN |
|---|
| 1245 | } BXVD_P_MemCfgMode; |
|---|
| 1246 | |
|---|
| 1247 | typedef enum BXVD_P_PowerState |
|---|
| 1248 | { |
|---|
| 1249 | BXVD_P_PowerState_eOn, |
|---|
| 1250 | BXVD_P_PowerState_eClkOff, |
|---|
| 1251 | BXVD_P_PowerState_ePwrOff |
|---|
| 1252 | } BXVD_P_PowerState; |
|---|
| 1253 | |
|---|
| 1254 | #define BXVD_P_OUTER_WATCHDOG 0 |
|---|
| 1255 | |
|---|
| 1256 | /* Interrupt related definitions */ |
|---|
| 1257 | #define BXVD_P_INTR_CLEAR 0xffffffff |
|---|
| 1258 | #define BXVD_P_INTR_OL_MASK 0x40000000 |
|---|
| 1259 | |
|---|
| 1260 | /* AVD PFRI Data Width related definitions */ |
|---|
| 1261 | #define BXVD_P_PFRI_DATA_DDR2 0 |
|---|
| 1262 | #define BXVD_P_PFRI_DATA_DDR3 1 |
|---|
| 1263 | |
|---|
| 1264 | typedef enum BXVD_P_PFRI_Data_Width |
|---|
| 1265 | { |
|---|
| 1266 | BXVD_P_PFRI_Data_Width_e16Bit, |
|---|
| 1267 | BXVD_P_PFRI_Data_Width_e32Bit, |
|---|
| 1268 | BXVD_P_PFRI_Data_Width_e64Bit |
|---|
| 1269 | } BXVD_P_PFRI_Data_Width ; |
|---|
| 1270 | |
|---|
| 1271 | /* AVD PCache Mode related definitions */ |
|---|
| 1272 | typedef enum BXVD_P_PCache_XGran |
|---|
| 1273 | { |
|---|
| 1274 | BXVD_P_PCache_XGran_e8Bytes, |
|---|
| 1275 | BXVD_P_PCache_XGran_e16Bytes, |
|---|
| 1276 | BXVD_P_PCache_XGran_e32Bytes |
|---|
| 1277 | } BXVD_P_PCache_XGran; |
|---|
| 1278 | |
|---|
| 1279 | typedef enum BXVD_P_PCache_YGran |
|---|
| 1280 | { |
|---|
| 1281 | BXVD_P_PCache_YGran_e1Line, |
|---|
| 1282 | BXVD_P_PCache_YGran_e2Lines, |
|---|
| 1283 | BXVD_P_PCache_YGran_e4Lines |
|---|
| 1284 | } BXVD_P_PCache_YGran; |
|---|
| 1285 | |
|---|
| 1286 | /* Relocation related definitions */ |
|---|
| 1287 | #define BXVD_P_RELF_DEFAULT_CODE_BASE 0x00000000 |
|---|
| 1288 | |
|---|
| 1289 | /* Pre rev K core has a memory access limit of 768 mb */ |
|---|
| 1290 | #define BXVD_P_ARC300_RAM_LIMIT 0x30000000 |
|---|
| 1291 | |
|---|
| 1292 | /* General definitions */ |
|---|
| 1293 | #define BXVD_P_MEM_ZERO 0x00000000 |
|---|
| 1294 | |
|---|
| 1295 | /* If the firmware does not have a time code, or the protocol is not |
|---|
| 1296 | MPEG, the internal time code will be set thus */ |
|---|
| 1297 | #define BXVD_P_INVALID_TIMECODE 0xFFFFFFFF |
|---|
| 1298 | |
|---|
| 1299 | /* |
|---|
| 1300 | ** Passed as a flag in the "channel mode" when |
|---|
| 1301 | ** calling BXVD_P_HostCmdSendDecChannelOpen(). |
|---|
| 1302 | ** For best peformance, the bit should be set when DQT is enabled. |
|---|
| 1303 | ** |
|---|
| 1304 | ** if bit[3] == 0 then it is legacy restricted mode |
|---|
| 1305 | ** if bit[3] == 1 then it is new all capable AVD mode. |
|---|
| 1306 | */ |
|---|
| 1307 | #define BXVD_P_AVD_NO_CONSTRAINTS 0x8 |
|---|
| 1308 | |
|---|
| 1309 | |
|---|
| 1310 | #if BXVD_P_SVD_PRESENT |
|---|
| 1311 | #define BXVD_P_ARCS_PER_DECODER 3 |
|---|
| 1312 | #else |
|---|
| 1313 | #define BXVD_P_ARCS_PER_DECODER 2 |
|---|
| 1314 | #endif |
|---|
| 1315 | |
|---|
| 1316 | typedef struct BXVD_P_CallBackRequests |
|---|
| 1317 | { |
|---|
| 1318 | bool bPauseUntoPTS; |
|---|
| 1319 | bool bDisplayUntoPTS; |
|---|
| 1320 | bool bPTS1Match; |
|---|
| 1321 | bool bPTS2Match; |
|---|
| 1322 | bool bPresentationStart; |
|---|
| 1323 | bool bPresentationStop; |
|---|
| 1324 | bool bMarkerSeen; |
|---|
| 1325 | |
|---|
| 1326 | /*PR28082*/ |
|---|
| 1327 | bool bMarker; |
|---|
| 1328 | bool bPPBReceived; |
|---|
| 1329 | } BXVD_P_CallBackRequests; |
|---|
| 1330 | |
|---|
| 1331 | /*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ |
|---|
| 1332 | |
|---|
| 1333 | /*********************************************************************** |
|---|
| 1334 | * Private Structures |
|---|
| 1335 | ***********************************************************************/ |
|---|
| 1336 | /* Contains XVD interrupt callbacks and user params */ |
|---|
| 1337 | typedef struct BXVD_P_InterruptCallbackInfo |
|---|
| 1338 | { |
|---|
| 1339 | BXVD_IntCallbackFunc BXVD_P_pAppIntCallbackPtr ; |
|---|
| 1340 | |
|---|
| 1341 | void *pParm1; |
|---|
| 1342 | int parm2; |
|---|
| 1343 | } BXVD_P_InterruptCallbackInfo ; |
|---|
| 1344 | |
|---|
| 1345 | typedef struct BXVD_P_FWMemConfig |
|---|
| 1346 | { |
|---|
| 1347 | uint32_t general_memory_size; |
|---|
| 1348 | uint32_t cabac_bin_size; |
|---|
| 1349 | uint32_t video_block_size; |
|---|
| 1350 | uint32_t video_block_count; |
|---|
| 1351 | } BXVD_P_FWMemConfig; |
|---|
| 1352 | |
|---|
| 1353 | typedef struct BXVD_P_DecodeFWMemSize |
|---|
| 1354 | { |
|---|
| 1355 | uint32_t uiFWContextSize; |
|---|
| 1356 | uint32_t uiFWCabacSize; |
|---|
| 1357 | uint32_t uiFWPicBlockSize; |
|---|
| 1358 | uint32_t uiFWPicBlockCount; |
|---|
| 1359 | uint32_t uiFWCabacWorklistSize; |
|---|
| 1360 | uint32_t uiFWDirectModeSize; |
|---|
| 1361 | uint32_t uiFWInnerLoopWorklistSize; |
|---|
| 1362 | uint32_t uiFWInterLayerPicSize; |
|---|
| 1363 | uint32_t uiFWInterLayerMVSize; |
|---|
| 1364 | } BXVD_P_DecodeFWMemSize; |
|---|
| 1365 | |
|---|
| 1366 | typedef struct BXVD_P_DecodeFWBaseAddrs |
|---|
| 1367 | { |
|---|
| 1368 | uint32_t uiFWContextBase; /* FW Context memory base address */ |
|---|
| 1369 | uint32_t uiFWCabacBase; /* FW Cabac memory base address */ |
|---|
| 1370 | uint32_t uiFWPicBlockBase; /* FW Picture Block Base */ |
|---|
| 1371 | uint32_t uiFWCabacWorklistBase; /* FW Cabac worklist memory base address */ |
|---|
| 1372 | uint32_t uiFWInnerLoopWorklistBase; /* FW Inner loop worklist memory base address */ |
|---|
| 1373 | uint32_t uiFWDirectModeBase; /* FW Direct Mode memory base address */ |
|---|
| 1374 | uint32_t uiFWInterLayerPicBase; /* FW Inter Layer Pic memory base address */ |
|---|
| 1375 | uint32_t uiFWInterLayerMVBase; /* FW Inter Layer Motion Vector memory base address */ |
|---|
| 1376 | } BXVD_P_DecodeFWBaseAddrs; |
|---|
| 1377 | |
|---|
| 1378 | /* Internal XVD context data */ |
|---|
| 1379 | typedef struct BXVD_P_Context |
|---|
| 1380 | { |
|---|
| 1381 | /* Interface handles */ |
|---|
| 1382 | BCHP_Handle hChip; |
|---|
| 1383 | BREG_Handle hReg; |
|---|
| 1384 | |
|---|
| 1385 | BMEM_Handle hSystemHeap; /* General Heap used to allocate structures */ |
|---|
| 1386 | BMEM_Handle hCodeHeap; /* Firmware Code Heap used to load firmware */ |
|---|
| 1387 | BMEM_Handle hPictureHeap; /* Picture Buffer Heap used by firmware to store decoded pictures */ |
|---|
| 1388 | BMEM_Handle hCabacHeap; /* Cabac Buffer Heap used by firmware as CABAC bin buffer */ |
|---|
| 1389 | |
|---|
| 1390 | BINT_Handle hInterrupt; |
|---|
| 1391 | |
|---|
| 1392 | /* XVD default settings */ |
|---|
| 1393 | BXVD_Settings stSettings; |
|---|
| 1394 | |
|---|
| 1395 | /* Contexts for AVC decoders */ |
|---|
| 1396 | uint32_t uDecoderInstance; |
|---|
| 1397 | BXVD_DecoderContext stDecoderContext; |
|---|
| 1398 | |
|---|
| 1399 | /* Platform-specific fields defined in platform header */ |
|---|
| 1400 | BXVD_P_CONTEXT_PLATFORM |
|---|
| 1401 | |
|---|
| 1402 | /* FW revision information */ |
|---|
| 1403 | BXVD_RevisionInfo sRevisionInfo; |
|---|
| 1404 | |
|---|
| 1405 | /* For Crc */ |
|---|
| 1406 | unsigned long ulDebugDeliveryQueueAddr; |
|---|
| 1407 | unsigned long ulDebugReleaseQueueAddr; |
|---|
| 1408 | |
|---|
| 1409 | /* Channel information including count and open handles */ |
|---|
| 1410 | uint16_t uiOpenChannels; |
|---|
| 1411 | BXVD_ChannelHandle *ahChannel; |
|---|
| 1412 | |
|---|
| 1413 | /* Suballocated FW memory heaps */ |
|---|
| 1414 | BXVD_P_MemoryHandle SubGenMem; |
|---|
| 1415 | BXVD_P_MemoryHandle SubSecureMem; |
|---|
| 1416 | BXVD_P_MemoryHandle SubPicMem; |
|---|
| 1417 | |
|---|
| 1418 | /* Pointers to FW/XVD code memory where the FW is loaded */ |
|---|
| 1419 | uint32_t uiFWMemVirtAddr; |
|---|
| 1420 | uint32_t uiFWMemPhyAddr; |
|---|
| 1421 | uint32_t uiFWMemSize; |
|---|
| 1422 | uint8_t bFWMemAllocated; |
|---|
| 1423 | BXVD_AVDBootMode eAVDBootMode; |
|---|
| 1424 | |
|---|
| 1425 | /* Some platforms determine AVD core clock freq at runtime */ |
|---|
| 1426 | uint32_t uiAVDCoreFreq; |
|---|
| 1427 | |
|---|
| 1428 | /* Instruction base addresses for outer and inner loop */ |
|---|
| 1429 | uint32_t uiOuterLoopInstructionBase; |
|---|
| 1430 | uint32_t uiInnerLoopInstructionBase; |
|---|
| 1431 | |
|---|
| 1432 | /* End of code addresses for outer and inner loop */ |
|---|
| 1433 | uint32_t uiOuterLoopEOC; |
|---|
| 1434 | uint32_t uiInnerLoopEOC; |
|---|
| 1435 | #if BXVD_P_SVD_PRESENT |
|---|
| 1436 | /* Base Layer Instruction base and end of code */ |
|---|
| 1437 | uint32_t uiBaseInstructionBase; |
|---|
| 1438 | uint32_t uiBaseEOC; |
|---|
| 1439 | #endif |
|---|
| 1440 | |
|---|
| 1441 | /* Outer loop communication vector. This is the same as uiOuterLoopEOC */ |
|---|
| 1442 | uint32_t uiCmdBufferVector; |
|---|
| 1443 | |
|---|
| 1444 | /* Pointers to FW/XVD shared memory for Picture buffers and FW internal data structs */ |
|---|
| 1445 | uint32_t uiFWContextPhyAddr; |
|---|
| 1446 | uint32_t uiFWGenMemVirtAddr; |
|---|
| 1447 | uint32_t uiFWGenMemPhyAddr; |
|---|
| 1448 | uint32_t uiFWGenMemSize; |
|---|
| 1449 | |
|---|
| 1450 | /* Pointers to Decoder debug log buffers */ |
|---|
| 1451 | uint32_t uiDecoderDbgBufVirtAddr; |
|---|
| 1452 | uint32_t uiDecoderDbgBufPhyAddr; |
|---|
| 1453 | |
|---|
| 1454 | /* Size and count of FW Picture buffers */ |
|---|
| 1455 | uint32_t uiFWPicMemVirtAddr; |
|---|
| 1456 | uint32_t uiFWPicMemPhyAddr; |
|---|
| 1457 | uint32_t uiFWPicMemSize; |
|---|
| 1458 | |
|---|
| 1459 | /* Pointers to FW/XVD Cabac Bin memory */ |
|---|
| 1460 | uint32_t uiFWCabacMemVirtAddr; |
|---|
| 1461 | uint32_t uiFWCabacMemPhyAddr; |
|---|
| 1462 | uint32_t uiFWCabacMemSize; |
|---|
| 1463 | |
|---|
| 1464 | /* Register offset and mask values */ |
|---|
| 1465 | uint32_t uiXPT_PCROffset_STC; |
|---|
| 1466 | |
|---|
| 1467 | uint32_t uiDecode_SDStripeWidthRegVal; |
|---|
| 1468 | uint32_t uiDecode_IPShimPfriRegVal; |
|---|
| 1469 | uint32_t uiDecode_StripeWidth; |
|---|
| 1470 | uint32_t uiDecode_StripeMultiple; |
|---|
| 1471 | uint32_t uiDecode_PFRIDataRegVal; |
|---|
| 1472 | uint32_t uiAVD_PCacheRegVal; |
|---|
| 1473 | uint32_t uiChip_ProductRevision; |
|---|
| 1474 | |
|---|
| 1475 | /* PR18233: Mosaic mode support */ |
|---|
| 1476 | BAVC_XVD_Picture *pVDCPictureBuffers; |
|---|
| 1477 | BAVC_XVD_Picture *pPictureListVec0; |
|---|
| 1478 | BAVC_XVD_Picture *pPictureListVec1; |
|---|
| 1479 | |
|---|
| 1480 | /* Linked Decoder support */ |
|---|
| 1481 | BXVD_Handle hXvd_Secondary; |
|---|
| 1482 | BXVD_DisplayInterrupt Secondary_eDisplayInterrupt; |
|---|
| 1483 | |
|---|
| 1484 | /* Still picture buffer support */ |
|---|
| 1485 | unsigned long watchdog_timer_addr; |
|---|
| 1486 | unsigned long watchdog_write_value; |
|---|
| 1487 | |
|---|
| 1488 | #if BXVD_P_FW_HIM_API |
|---|
| 1489 | uint32_t uiDisplayInfo0_Offset; |
|---|
| 1490 | uint32_t uiDisplayInfo1_Offset; |
|---|
| 1491 | #endif |
|---|
| 1492 | |
|---|
| 1493 | BXVD_P_DisplayInfo *pDisplayInfo0; |
|---|
| 1494 | BXVD_P_DisplayInfo *pDisplayInfo1; |
|---|
| 1495 | |
|---|
| 1496 | BXVD_P_InterruptCallbackInfo stDeviceInterruptCallbackInfo[BXVD_DeviceInterrupt_eMaxInterrupts] ; |
|---|
| 1497 | |
|---|
| 1498 | BXVD_ChannelHandle hStillChannel; |
|---|
| 1499 | bool bStillChannelAllocated; |
|---|
| 1500 | uint32_t uiStillChannelNum; |
|---|
| 1501 | bool bStillPictureCompatibilityMode; |
|---|
| 1502 | bool bStillHDCapable; |
|---|
| 1503 | |
|---|
| 1504 | uint32_t uiSupportedProtocolsMask; |
|---|
| 1505 | |
|---|
| 1506 | bool bSVCCapable; |
|---|
| 1507 | bool bRV9Capable; |
|---|
| 1508 | |
|---|
| 1509 | bool bAllocDecodeModeList; |
|---|
| 1510 | |
|---|
| 1511 | bool bHibernate; |
|---|
| 1512 | BXVD_P_PowerState PowerStateCurrent; |
|---|
| 1513 | BXVD_P_PowerState PowerStateSaved; |
|---|
| 1514 | |
|---|
| 1515 | BXVD_P_FWMemConfig stFWMemCfg[BXVD_DecodeMode_eMaxModes]; |
|---|
| 1516 | |
|---|
| 1517 | BXVD_StatusHandle hXvdStatus; |
|---|
| 1518 | |
|---|
| 1519 | BXVD_P_HandleType eHandleType; |
|---|
| 1520 | |
|---|
| 1521 | BTMR_TimerHandle hTimer; |
|---|
| 1522 | |
|---|
| 1523 | uint32_t auiDisplayInterruptCount[BXVD_DisplayInterrupt_eMax]; |
|---|
| 1524 | uint32_t auiActiveDecodes[BXVD_ChannelMode_eMax][BXVD_DisplayInterrupt_eMax]; |
|---|
| 1525 | |
|---|
| 1526 | BXDM_DisplayInterruptHandler_Handle hXdmDih[BXVD_DisplayInterrupt_eMax]; |
|---|
| 1527 | BXDM_DisplayInterruptHandler_Handle hAppXdmDih[BXVD_DisplayInterrupt_eMax]; |
|---|
| 1528 | BXDM_DisplayInterruptHandler_Handle hLinkedDecoderXdmDih; |
|---|
| 1529 | BXVD_DisplayInterruptProvider_P_ChannelHandle hXvdDipCh[BXVD_DisplayInterrupt_eMax]; |
|---|
| 1530 | |
|---|
| 1531 | #if BXVD_P_AVD_ARC600 |
|---|
| 1532 | BAFL_FirmwareInfo astFWBootInfo[BXVD_P_ARCS_PER_DECODER]; |
|---|
| 1533 | #endif |
|---|
| 1534 | |
|---|
| 1535 | /* FW command and response buffers */ |
|---|
| 1536 | BXVD_FW_Cmd FWCmd; |
|---|
| 1537 | BXVD_FW_Rsp FWRsp; |
|---|
| 1538 | |
|---|
| 1539 | } BXVD_P_Context; |
|---|
| 1540 | |
|---|
| 1541 | /* The buffer configuration for the channel */ |
|---|
| 1542 | typedef struct BXVD_P_BufferConfig |
|---|
| 1543 | { |
|---|
| 1544 | BXVD_P_DMS2DMInfo AVD_DMS2PI_Buffer ; |
|---|
| 1545 | BXVD_P_DM2DMSInfo *pAVD_PI2DMS_Buffer ; |
|---|
| 1546 | |
|---|
| 1547 | uint16_t ui32_HardwareNmbx ; |
|---|
| 1548 | uint16_t ui32_HardwareNmby ; |
|---|
| 1549 | |
|---|
| 1550 | } BXVD_P_BufferConfig; |
|---|
| 1551 | |
|---|
| 1552 | struct BXVD_P_IntCallback { |
|---|
| 1553 | BXVD_IntCallbackFunc callback; |
|---|
| 1554 | void *pParm1; |
|---|
| 1555 | int parm2; |
|---|
| 1556 | }; |
|---|
| 1557 | |
|---|
| 1558 | |
|---|
| 1559 | /* Circular queue */ |
|---|
| 1560 | #define BXVD_P_USERDATA_QUEUE_START 0 |
|---|
| 1561 | #define BXVD_P_USERDATA_QUEUE_MAX 32 |
|---|
| 1562 | |
|---|
| 1563 | #define BXVD_P_USERDATA_ITEM_SIZE 2048 |
|---|
| 1564 | |
|---|
| 1565 | /* |
|---|
| 1566 | * uiDecodePictureId added per Jira SW7425-1780 |
|---|
| 1567 | */ |
|---|
| 1568 | typedef struct _QUEUE_MGR_ |
|---|
| 1569 | { |
|---|
| 1570 | int ulReadPtr; |
|---|
| 1571 | int ulWritePtr; |
|---|
| 1572 | int ulNextPtr; |
|---|
| 1573 | int ulQueueDepth; |
|---|
| 1574 | struct data |
|---|
| 1575 | { |
|---|
| 1576 | int protocol; |
|---|
| 1577 | unsigned long ulFlags; |
|---|
| 1578 | unsigned long ulPulldown; |
|---|
| 1579 | unsigned long ulPTS; |
|---|
| 1580 | unsigned char *uUserData; |
|---|
| 1581 | uint32_t uiDecodePictureId; |
|---|
| 1582 | } *queue_data; |
|---|
| 1583 | } QUEUE_MGR; |
|---|
| 1584 | |
|---|
| 1585 | |
|---|
| 1586 | /* The internal structure for the User Data handle */ |
|---|
| 1587 | typedef struct BXVD_P_UserDataContext |
|---|
| 1588 | { |
|---|
| 1589 | BXVD_ChannelHandle hXvdCh; |
|---|
| 1590 | BINT_CallbackHandle hCbUserdata; |
|---|
| 1591 | BXVD_Userdata_Settings sUserdataSettings; |
|---|
| 1592 | void *pBfr; /* user data buffer */ |
|---|
| 1593 | bool bCallbackEnabled; |
|---|
| 1594 | /* Userdata callback registered */ |
|---|
| 1595 | BINT_CallbackFunc fUserdataCallback_isr; |
|---|
| 1596 | void *pParm1; |
|---|
| 1597 | int parm2; |
|---|
| 1598 | QUEUE_MGR queue; |
|---|
| 1599 | BXVD_P_HandleType eHandleType; |
|---|
| 1600 | BERR_Code errForwardError; |
|---|
| 1601 | } BXVD_P_UserDataContext ; |
|---|
| 1602 | |
|---|
| 1603 | |
|---|
| 1604 | /* |
|---|
| 1605 | * Called by DM when valid user data is available in the PPB. |
|---|
| 1606 | */ |
|---|
| 1607 | BERR_Code BXVD_P_Userdata_EnqueueDataPointer(BXVD_ChannelHandle hXvdCh, |
|---|
| 1608 | int protocol, |
|---|
| 1609 | unsigned long p_UserData, |
|---|
| 1610 | unsigned long ulFlags, |
|---|
| 1611 | unsigned long ulPulldown, |
|---|
| 1612 | unsigned long ulPTS, |
|---|
| 1613 | uint32_t uiSerialNumber); |
|---|
| 1614 | |
|---|
| 1615 | |
|---|
| 1616 | #if BXVD_P_FW_HIM_API |
|---|
| 1617 | |
|---|
| 1618 | typedef struct BXVD_P_HIM_Offsets |
|---|
| 1619 | { |
|---|
| 1620 | unsigned long ulByteOffset; /* byte offset into HIM, returned by AVD. */ |
|---|
| 1621 | unsigned long ulWordOffset; /* ulByteOffset divided by 4, XVD always read/writes a word. */ |
|---|
| 1622 | unsigned long ulByteShift; /* used to shift the data to the appropriate byte. */ |
|---|
| 1623 | unsigned long ulByteMask; /* mask for the byte of interest. */ |
|---|
| 1624 | unsigned long ulInverseMask; /* inverse of the ulByteMask, to assist with read-modify-write operations. */ |
|---|
| 1625 | unsigned long ulBytesPerValue; /* Indicates if this a 1, 2, 3, or 4 byte value. */ |
|---|
| 1626 | |
|---|
| 1627 | } BXVD_P_HIM_Offsets; |
|---|
| 1628 | |
|---|
| 1629 | /* Contains the addresses and offsets needed to access the AVD |
|---|
| 1630 | * Delivery and Release queues. |
|---|
| 1631 | */ |
|---|
| 1632 | typedef struct BXVD_P_AVD_Queue |
|---|
| 1633 | { |
|---|
| 1634 | unsigned long ulQueueOffset; |
|---|
| 1635 | BXVD_P_HIM_Offsets stReadIndex; |
|---|
| 1636 | BXVD_P_HIM_Offsets stWriteIndex; |
|---|
| 1637 | BXVD_P_HIM_Offsets stShadowWriteIndex; /* For the release queue. */ |
|---|
| 1638 | |
|---|
| 1639 | } BXVD_P_AVD_Queue; |
|---|
| 1640 | |
|---|
| 1641 | #endif /* #if BXVD_P_FW_HIM_API */ |
|---|
| 1642 | |
|---|
| 1643 | /* The internal structure for the Channel handle */ |
|---|
| 1644 | typedef struct BXVD_P_Channel |
|---|
| 1645 | { |
|---|
| 1646 | uint32_t ulChannelNum; /* channel number */ |
|---|
| 1647 | bool bPreserveState; /* Do not reset PVR context */ |
|---|
| 1648 | bool bPreserveCounters; /* Do not reset decoder counters */ |
|---|
| 1649 | |
|---|
| 1650 | /* FW info */ |
|---|
| 1651 | BXVD_P_DecodeFWMemSize stDecodeFWMemSize; /* FW Memory sizes allocated */ |
|---|
| 1652 | BXVD_P_DecodeFWBaseAddrs stDecodeFWBaseAddrs; /* FW Memory base addresses */ |
|---|
| 1653 | |
|---|
| 1654 | #if BXVD_P_FW_HIM_API |
|---|
| 1655 | BXVD_P_AVD_Queue stDeliveryQueue; /* data associated with the AVD delivery queue */ |
|---|
| 1656 | BXVD_P_AVD_Queue stReleaseQueue; /* data associated with the AVD release queue */ |
|---|
| 1657 | BXVD_P_HIM_Offsets stDropCountIndex; /* Host Interface Memory offsets for the drop count. */ |
|---|
| 1658 | BXVD_P_HIM_Offsets stStatusBlockIndex; /* Host Interface Memory offsets for the AVD status word(s) */ |
|---|
| 1659 | #else |
|---|
| 1660 | unsigned long ulPicBuf; /* Picture delivery queue addr */ |
|---|
| 1661 | unsigned long ulPicRelBuf; /* Picture release queue addr */ |
|---|
| 1662 | unsigned long ulPicInfoBuf; /* unused? */ |
|---|
| 1663 | unsigned long ulPicInfoRelBuf; /* offset to Release Queue shadow write offset and drop count. */ |
|---|
| 1664 | #endif |
|---|
| 1665 | |
|---|
| 1666 | unsigned long ulUserDataRelBuf; |
|---|
| 1667 | |
|---|
| 1668 | unsigned long ulAvdStatusBlock; /* AVD Status block address */ |
|---|
| 1669 | |
|---|
| 1670 | BXVD_P_UserDataContext *pUserData; |
|---|
| 1671 | BXVD_P_DecoderState eDecoderState; |
|---|
| 1672 | BXVD_P_Context *pXvd; /* main handle */ |
|---|
| 1673 | BXVD_DecodeSettings sDecodeSettings; |
|---|
| 1674 | unsigned long ulXptCDB_Read; /* Current Rave CDB_Read register */ |
|---|
| 1675 | unsigned long aulXptCDB_Read_Extended[BXVD_NUM_EXT_RAVE_CONTEXT]; /* Current Extended Rave CDB_Read register */ |
|---|
| 1676 | BXVD_ChannelSettings sChSettings; |
|---|
| 1677 | BAVC_VideoCompressionStd asVideoCmprStdList[BAVC_VideoCompressionStd_eMax]; |
|---|
| 1678 | |
|---|
| 1679 | BXVD_DisplayInterrupt eDisplayInterrupt; /* The FW Display Device interrupt */ |
|---|
| 1680 | |
|---|
| 1681 | /* Structure to keep all the MVD interrupt callbacks and its params */ |
|---|
| 1682 | BXVD_P_InterruptCallbackInfo stInterruptCallbackInfo[BXVD_Interrupt_eMaxInterrupts] ; |
|---|
| 1683 | |
|---|
| 1684 | bool bStillPictureToRelease; /* True if there's a pending still picture to release */ |
|---|
| 1685 | uint32_t uiStillDisplayElementOffset; /* Last still picture offset (to be released) */ |
|---|
| 1686 | bool bDecoderChannelOpened; /* True if decoder channel has been opened */ |
|---|
| 1687 | |
|---|
| 1688 | BMEM_Handle hSystemHeap; /* General Heap used to allocate structures for this channel */ |
|---|
| 1689 | BMEM_Handle hPictureHeap; /* Picture Buffer Heap used by firmware to store decoded pictures for this channel */ |
|---|
| 1690 | BMEM_Handle hCabacHeap; /* Cabac Buffer Heap used by firmware as CABAC bin buffer for this channel */ |
|---|
| 1691 | |
|---|
| 1692 | BXVD_P_HandleType eHandleType; |
|---|
| 1693 | |
|---|
| 1694 | /* TODO: Move back to stChannelState? */ |
|---|
| 1695 | BXVD_P_CallBackRequests stCallbackReq; |
|---|
| 1696 | BXVD_P_BufferConfig stChBufferConfig ; |
|---|
| 1697 | BXDM_PictureProvider_ChannelChangeSettings stSavedChannelChangeSettings; |
|---|
| 1698 | BXVD_SkipMode eCurrentSkipMode; |
|---|
| 1699 | |
|---|
| 1700 | BXDM_PictureProvider_Handle hPictureProvider; |
|---|
| 1701 | |
|---|
| 1702 | BXVD_P_Decoder_Context stDecoderContext; |
|---|
| 1703 | |
|---|
| 1704 | BXDM_Picture_Rate stSavedPlaybackRate; |
|---|
| 1705 | bool bSavedPlaybackRateValid; |
|---|
| 1706 | |
|---|
| 1707 | /* SW7400-2870: paused by BXVD_PVR_EnablePause. As opposed to being paused by |
|---|
| 1708 | * calling BXVD_SetPlaybackRate(_isr) with a numerator of '0'. |
|---|
| 1709 | */ |
|---|
| 1710 | bool bPauseActive; |
|---|
| 1711 | |
|---|
| 1712 | bool bProgressiveStream_7411; |
|---|
| 1713 | BXVD_PictureParameterInfo stPictureParameterInfo; |
|---|
| 1714 | |
|---|
| 1715 | uint32_t uiPPBSerialNumber; |
|---|
| 1716 | BXVD_StillContentInterpolationMode eSavedSPIM; |
|---|
| 1717 | } BXVD_P_Channel; |
|---|
| 1718 | |
|---|
| 1719 | /* This may be unnecessary and removed later */ |
|---|
| 1720 | typedef struct |
|---|
| 1721 | { |
|---|
| 1722 | unsigned long next; |
|---|
| 1723 | unsigned long ulType; |
|---|
| 1724 | unsigned long ulSize; |
|---|
| 1725 | } BXVD_P_UserData; |
|---|
| 1726 | |
|---|
| 1727 | typedef enum BXVD_P_VideoAtomIndex |
|---|
| 1728 | { |
|---|
| 1729 | BXVD_P_VideoAtomIndex_eA = 0, |
|---|
| 1730 | BXVD_P_VideoAtomIndex_eB, |
|---|
| 1731 | BXVD_P_VideoAtomIndex_eC, |
|---|
| 1732 | BXVD_P_VideoAtomIndex_eD, |
|---|
| 1733 | BXVD_P_VideoAtomIndex_eE, |
|---|
| 1734 | BXVD_P_VideoAtomIndex_eF, |
|---|
| 1735 | BXVD_P_VideoAtomIndex_eG, |
|---|
| 1736 | BXVD_P_VideoAtomIndex_eH, |
|---|
| 1737 | BXVD_P_VideoAtomIndex_eI, |
|---|
| 1738 | BXVD_P_VideoAtomIndex_eAT, |
|---|
| 1739 | |
|---|
| 1740 | /* Add more enums ABOVE this line */ |
|---|
| 1741 | BXVD_P_VideoAtomIndex_eMax |
|---|
| 1742 | } BXVD_P_VideoAtomIndex; |
|---|
| 1743 | |
|---|
| 1744 | typedef struct BXVD_P_FWMemConfig_V2 |
|---|
| 1745 | { |
|---|
| 1746 | unsigned long general_memory_size; |
|---|
| 1747 | unsigned long inner_loop_wl_size; |
|---|
| 1748 | unsigned long direct_mode_size; |
|---|
| 1749 | unsigned long cabac_bin_size; |
|---|
| 1750 | unsigned long cabac_wl_size; |
|---|
| 1751 | BXVD_P_VideoAtomIndex video_block_size_index; |
|---|
| 1752 | unsigned long video_block_count; |
|---|
| 1753 | } BXVD_P_FWMemConfig_V2; |
|---|
| 1754 | |
|---|
| 1755 | typedef struct BXVD_P_FWMemConfig_SVC |
|---|
| 1756 | { |
|---|
| 1757 | unsigned long context_memory_size; |
|---|
| 1758 | unsigned long inner_loop_wl_size; |
|---|
| 1759 | unsigned long direct_mode_size; |
|---|
| 1760 | unsigned long inter_layer_video_size_index; |
|---|
| 1761 | unsigned long inter_layer_mv_size; |
|---|
| 1762 | unsigned long cabac_bin_size; |
|---|
| 1763 | unsigned long cabac_wl_size; |
|---|
| 1764 | BXVD_P_VideoAtomIndex video_block_size_index; |
|---|
| 1765 | unsigned long video_block_count; |
|---|
| 1766 | } BXVD_P_FWMemConfig_SVC; |
|---|
| 1767 | |
|---|
| 1768 | /*********************************************************************** |
|---|
| 1769 | * Private functions |
|---|
| 1770 | ***********************************************************************/ |
|---|
| 1771 | |
|---|
| 1772 | BERR_Code BXVD_P_SetupFWSubHeap(BXVD_Handle hXvd); |
|---|
| 1773 | BERR_Code BXVD_P_TeardownFWSubHeap(BXVD_Handle hXvd); |
|---|
| 1774 | |
|---|
| 1775 | BERR_Code BXVD_P_GetDecodeFWMemSize |
|---|
| 1776 | ( |
|---|
| 1777 | BXVD_Handle hXvd, |
|---|
| 1778 | BXVD_DecodeResolution eDecodeResolution, |
|---|
| 1779 | BAVC_VideoCompressionStd aeVideoCmprStd[], |
|---|
| 1780 | uint32_t uiVideoCmprCount, |
|---|
| 1781 | const BXVD_ChannelSettings *pChSettings, |
|---|
| 1782 | BXVD_P_DecodeFWMemSize *pstDecodeFWMemSize |
|---|
| 1783 | ); |
|---|
| 1784 | |
|---|
| 1785 | BERR_Code BXVD_P_GetStillDecodeFWMemSize |
|---|
| 1786 | ( |
|---|
| 1787 | BXVD_Handle hXvd, |
|---|
| 1788 | BXVD_DecodeResolution eDecodeResolution, |
|---|
| 1789 | BAVC_VideoCompressionStd aeVideoCmprStd[], |
|---|
| 1790 | uint32_t uiVideoCmprCount, |
|---|
| 1791 | BXVD_P_DecodeFWMemSize *pstDecodeFWMemSize |
|---|
| 1792 | ); |
|---|
| 1793 | |
|---|
| 1794 | BERR_Code BXVD_P_AllocateFWMem |
|---|
| 1795 | ( |
|---|
| 1796 | BXVD_Handle hXvd, |
|---|
| 1797 | BXVD_ChannelHandle hXvdCh, |
|---|
| 1798 | BXVD_P_DecodeFWMemSize *pstDecodeFWMemSize, |
|---|
| 1799 | BXVD_P_DecodeFWBaseAddrs *pstDecodeFWBaseAddrs |
|---|
| 1800 | ); |
|---|
| 1801 | |
|---|
| 1802 | |
|---|
| 1803 | BERR_Code BXVD_P_FreeFWMem |
|---|
| 1804 | ( |
|---|
| 1805 | BXVD_Handle hXvd, |
|---|
| 1806 | BXVD_ChannelHandle hXvdCh, |
|---|
| 1807 | uint32_t uiFWContextBase, |
|---|
| 1808 | uint32_t uiFWCabacBase, |
|---|
| 1809 | uint32_t uiFWPicBlockBase, |
|---|
| 1810 | uint32_t uiFWCabacWorklistBase, |
|---|
| 1811 | uint32_t uiFWInterLayerPicBase |
|---|
| 1812 | ); |
|---|
| 1813 | |
|---|
| 1814 | void BXVD_P_ValidateHeaps |
|---|
| 1815 | ( |
|---|
| 1816 | BXVD_Handle hXvd, |
|---|
| 1817 | BXVD_P_MemCfgMode eMemCfgMode |
|---|
| 1818 | ); |
|---|
| 1819 | |
|---|
| 1820 | BERR_Code BXVD_P_StillPictureEnabled(BXVD_Handle hXvd, bool *pEnableState, BXVD_DecodeMode *pSPDecodeMode); |
|---|
| 1821 | |
|---|
| 1822 | /*************************************************************************** |
|---|
| 1823 | Summary: |
|---|
| 1824 | Releases the indicated PPB via FW. |
|---|
| 1825 | |
|---|
| 1826 | Description: |
|---|
| 1827 | This API releases the PPB indicated in the ppb argument. |
|---|
| 1828 | |
|---|
| 1829 | Returns: |
|---|
| 1830 | BERR_SUCCESS |
|---|
| 1831 | |
|---|
| 1832 | See Also: |
|---|
| 1833 | None |
|---|
| 1834 | |
|---|
| 1835 | ****************************************************************************/ |
|---|
| 1836 | BERR_Code BXVD_P_ReleasePPB(BXVD_Handle hXvd, uint32_t ppb); |
|---|
| 1837 | |
|---|
| 1838 | BERR_Code BXVD_P_ReleasePPB_isr(BXVD_Handle hXvd, uint32_t ppb); |
|---|
| 1839 | |
|---|
| 1840 | |
|---|
| 1841 | /*************************************************************************** |
|---|
| 1842 | Name: |
|---|
| 1843 | BXVD_P_ParseDecodeMode |
|---|
| 1844 | |
|---|
| 1845 | Description: |
|---|
| 1846 | This routine parses the list of decoder modes looking for the mode that requires the largest picture buffers. |
|---|
| 1847 | |
|---|
| 1848 | Returns: |
|---|
| 1849 | None: |
|---|
| 1850 | |
|---|
| 1851 | See Also: |
|---|
| 1852 | None |
|---|
| 1853 | |
|---|
| 1854 | ****************************************************************************/ |
|---|
| 1855 | |
|---|
| 1856 | BERR_Code BXVD_P_ParseDecodeMode |
|---|
| 1857 | ( |
|---|
| 1858 | BXVD_Handle hXvd, |
|---|
| 1859 | BXVD_DecodeMode *pDecodeModeList, /* List of decoder modes */ |
|---|
| 1860 | BXVD_DecodeMode *eDecodeMode /* Enum of mode in provided list that requires the largest buffer */ |
|---|
| 1861 | ); |
|---|
| 1862 | |
|---|
| 1863 | BERR_Code BXVD_P_Boot |
|---|
| 1864 | ( |
|---|
| 1865 | BXVD_Handle hXvd |
|---|
| 1866 | ); |
|---|
| 1867 | |
|---|
| 1868 | BERR_Code BXVD_P_SetupStillPictureCompatibilityMode |
|---|
| 1869 | ( |
|---|
| 1870 | BXVD_Handle hXvd |
|---|
| 1871 | ); |
|---|
| 1872 | |
|---|
| 1873 | BERR_Code BXVD_P_TeardownStillPictureCompatibilityMode |
|---|
| 1874 | ( |
|---|
| 1875 | BXVD_Handle hXvd |
|---|
| 1876 | ); |
|---|
| 1877 | |
|---|
| 1878 | BERR_Code BXVD_P_InitializeFWMemConfigCompatibilityModeTable |
|---|
| 1879 | ( |
|---|
| 1880 | BXVD_Handle hXvd |
|---|
| 1881 | ); |
|---|
| 1882 | |
|---|
| 1883 | /* AVD DEVICE COMMANDS */ |
|---|
| 1884 | BERR_Code BXVD_P_HostCmdSendInit |
|---|
| 1885 | ( |
|---|
| 1886 | BXVD_Handle hXvd, /* XVD context */ |
|---|
| 1887 | uint32_t uDecoderInstance, /* AVC instance */ |
|---|
| 1888 | uint32_t eRaveEndianess /* Endianess of data in Rave CDB/ITB */ |
|---|
| 1889 | ); |
|---|
| 1890 | |
|---|
| 1891 | BERR_Code BXVD_P_HostCmdSendConfig |
|---|
| 1892 | ( |
|---|
| 1893 | BXVD_Handle hXvd, /* XVD context */ |
|---|
| 1894 | uint32_t uiVecIndex, /* Display device index */ |
|---|
| 1895 | uint32_t uiInterruptMask /* RUL done mask for specified display */ |
|---|
| 1896 | ); |
|---|
| 1897 | |
|---|
| 1898 | BERR_Code BXVD_P_HostCmdSendDecChannelOpen |
|---|
| 1899 | ( |
|---|
| 1900 | BXVD_Handle hXvd, |
|---|
| 1901 | BXVD_ChannelHandle hXvdCh, |
|---|
| 1902 | bool bStillPictureMode, |
|---|
| 1903 | uint32_t uiMaxResolution, |
|---|
| 1904 | BXVD_P_DecodeFWMemSize *pstDecodeFWMemSize, |
|---|
| 1905 | BXVD_P_DecodeFWBaseAddrs *pstDecodeFWBaseAddrs |
|---|
| 1906 | ); |
|---|
| 1907 | |
|---|
| 1908 | BERR_Code BXVD_P_HostCmdSendDecChannelClose |
|---|
| 1909 | ( |
|---|
| 1910 | BXVD_Handle hXvd, |
|---|
| 1911 | BXVD_ChannelHandle hXvdCh |
|---|
| 1912 | ); |
|---|
| 1913 | |
|---|
| 1914 | BERR_Code BXVD_P_HostCmdSendDecChannelStart |
|---|
| 1915 | ( |
|---|
| 1916 | BXVD_Handle hXvd, |
|---|
| 1917 | uint32_t ulChannelNumber, |
|---|
| 1918 | uint32_t eProtocol, |
|---|
| 1919 | uint32_t eChannelMode, |
|---|
| 1920 | uint32_t ulRaveContextBase, |
|---|
| 1921 | uint32_t aulRaveContextBaseExt[], |
|---|
| 1922 | uint32_t ulVecIndex |
|---|
| 1923 | ); |
|---|
| 1924 | |
|---|
| 1925 | |
|---|
| 1926 | BERR_Code BXVD_P_HostCmdSendDecChannelStop |
|---|
| 1927 | ( |
|---|
| 1928 | BXVD_Handle hXvd, |
|---|
| 1929 | uint32_t ulChannelNum |
|---|
| 1930 | ); |
|---|
| 1931 | |
|---|
| 1932 | |
|---|
| 1933 | /*************************************************************************** |
|---|
| 1934 | Summary: |
|---|
| 1935 | Set the skip picture mode. |
|---|
| 1936 | |
|---|
| 1937 | Description: |
|---|
| 1938 | This API instructs the FW to skip I, IP or no frames |
|---|
| 1939 | |
|---|
| 1940 | Returns: |
|---|
| 1941 | BERR_SUCCESS |
|---|
| 1942 | |
|---|
| 1943 | See Also: |
|---|
| 1944 | None |
|---|
| 1945 | |
|---|
| 1946 | ****************************************************************************/ |
|---|
| 1947 | BERR_Code BXVD_P_HostCmdSetSkipPictureMode |
|---|
| 1948 | ( |
|---|
| 1949 | BXVD_Handle hXvd, |
|---|
| 1950 | uint32_t ulChannelNum, |
|---|
| 1951 | BXVD_SkipMode eSkipMode |
|---|
| 1952 | ); |
|---|
| 1953 | |
|---|
| 1954 | |
|---|
| 1955 | /*************************************************************************** |
|---|
| 1956 | * Summary |
|---|
| 1957 | * |
|---|
| 1958 | * BXVD_P_HostCmdDbgLogControl: Send debug log control command |
|---|
| 1959 | * |
|---|
| 1960 | * Description |
|---|
| 1961 | * |
|---|
| 1962 | * The decoders outer loop debug output can be logged to memory for XVD |
|---|
| 1963 | * to read and pass to the application. This routines starts and stops |
|---|
| 1964 | * the logging of the debug data to the log buffer. |
|---|
| 1965 | * |
|---|
| 1966 | ***************************************************************************/ |
|---|
| 1967 | BERR_Code BXVD_P_HostCmdDbgLogControl |
|---|
| 1968 | ( |
|---|
| 1969 | BXVD_Handle hXvd, |
|---|
| 1970 | bool logStart |
|---|
| 1971 | ); |
|---|
| 1972 | |
|---|
| 1973 | /*************************************************************************** |
|---|
| 1974 | * Summary |
|---|
| 1975 | * |
|---|
| 1976 | * BXVD_P_HostCmdDbgLogCommand: Send debug command |
|---|
| 1977 | * |
|---|
| 1978 | * Description |
|---|
| 1979 | * |
|---|
| 1980 | * The decoders outer loop will process debug command, the output for |
|---|
| 1981 | * the command is written to the debug log buffer. This routine sends |
|---|
| 1982 | * the outer loop the debug command string. |
|---|
| 1983 | * |
|---|
| 1984 | ***************************************************************************/ |
|---|
| 1985 | BERR_Code BXVD_P_HostCmdDbgLogCommand |
|---|
| 1986 | ( |
|---|
| 1987 | BXVD_Handle hXvd, |
|---|
| 1988 | char *pCommand |
|---|
| 1989 | ); |
|---|
| 1990 | |
|---|
| 1991 | BERR_Code BXVD_P_InitChannel(BXVD_ChannelHandle hXvdCh); |
|---|
| 1992 | |
|---|
| 1993 | BERR_Code BXVD_P_DestroyInterrupts(BXVD_Handle hXvd); |
|---|
| 1994 | |
|---|
| 1995 | void BXVD_P_FreeXVDContext(BXVD_Handle hXvd); |
|---|
| 1996 | |
|---|
| 1997 | #if (BXVD_P_POWER_MANAGEMENT) |
|---|
| 1998 | |
|---|
| 1999 | void BXVD_P_GetHibernateState(BXVD_Handle hXvd, |
|---|
| 2000 | bool *bHibernateState); |
|---|
| 2001 | |
|---|
| 2002 | void BXVD_P_SetHibernateState(BXVD_Handle hXvd, |
|---|
| 2003 | bool bHibernateState); |
|---|
| 2004 | |
|---|
| 2005 | #endif |
|---|
| 2006 | |
|---|
| 2007 | |
|---|
| 2008 | bool BXVD_P_IsDecodeProtocolSupported(BXVD_Handle hXvd, |
|---|
| 2009 | BAVC_VideoCompressionStd eVideoCmprStd); |
|---|
| 2010 | |
|---|
| 2011 | extern const uint32_t BXVD_P_StripeWidthLUT[]; |
|---|
| 2012 | |
|---|
| 2013 | #ifdef __cplusplus |
|---|
| 2014 | } |
|---|
| 2015 | #endif |
|---|
| 2016 | |
|---|
| 2017 | #endif /* BXVD_PRIV_H__ */ |
|---|
| 2018 | |
|---|
| 2019 | /* End of file. */ |
|---|