GlobsDef.h
上传用户:super_houu
上传日期:2008-09-21
资源大小:4099k
文件大小:8k
源码类别:

DVD

开发平台:

Others

  1. /****************************************************************************************
  2.  *  Copyright (c) 2002 ZORAN Corporation, All Rights Reserved
  3.  *  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
  4.  *
  5.  *  File: $Workfile: GlobsDef.h $             
  6.  *
  7.  * Description: 
  8.  * ============
  9.  * 
  10.  * 
  11.  * Log:
  12.  * ====
  13.  * $Revision: 28 $
  14.  * Last Modified by $Author: Jerryc $ at $Modtime: 04-03-16 11:13 $ 
  15.  ****************************************************************************************
  16.  * Updates:
  17.  ****************************************************************************************
  18.  * $Log: /I76/I76_Common/I76_Reference/Playcore/Nav_Clips/GlobsDef.h $
  19.  * 
  20.  * 28    04-03-16 11:13 Jerryc
  21.  * remove fileX in the union.
  22.  * 
  23.  * 27    3/10/04 4:24p Lotan
  24.  * Merge with Divx Certification DB 3
  25.  * 
  26.  * 26    04-03-09 21:50 Leslie
  27.  * Mem reduction for JPEG and DRM
  28.  * 
  29.  * 25    3/08/04 4:15p Hamadk
  30.  * 
  31.  * 24    3/01/04 6:29p Lotan
  32.  * merge with Divx certification DB
  33.  * 
  34.  * 23    2/04/04 10:09a Leslie
  35.  * Add JPEG Cache and Display Buffer Toggling
  36.  * 
  37.  * 22    11/07/03 12:18p Leonh
  38.  * get mp3 sampling rate 
  39.  * 
  40.  * 21    10/22/03 19:01 Hamadk
  41.  * Added AVI Clip navigator info in the global navigation union.
  42.  * 
  43.  * 20    03-06-03 11:41 Jerryc
  44.  * add filex 
  45.  * 
  46.  * 19    03-04-25 17:27 Jerryc
  47.  * folders are always list on the top.
  48.  * 
  49.  * 18    03-03-14 18:16 Jerryc
  50.  * add data to support synchoronous Clips_getClipFileInfoAt().
  51.  * 
  52.  * 17    03-03-10 15:28 Jerryc
  53.  * clean up
  54.  * 
  55.  * 16    03-03-07 19:10 Jerryc
  56.  * jerryc, add support for random play mode
  57.  * 
  58.  * 15    03-03-06 16:10 Jerryc
  59.  * jerryc, clean up.
  60.  * 
  61.  * 14    03-03-05 17:39 Jerryc
  62.  * jerryc, add uExplorerStyleBrowserPlayMode. 
  63.  * 
  64.  * 13    03-03-04 11:34 Jerryc
  65.  * jerry cai, merge new nav clips lib 
  66.  * 
  67.  * 12    03-02-08 0:34 Leslie
  68.  * Add MANUAL_DIRECTORY_EXPLORER
  69.  * 
  70.  * 11    03-02-06 14:22 Leslie
  71.  * Add iSlowSpeed
  72.  * 
  73.  * 10    03-01-24 20:31 Leslie
  74.  * Add bIsIntroPlayMode
  75.  * 
  76.  * 9     03-01-09 12:30 Leslie
  77.  * 
  78.  * 8     10/30/02 17:48 Rond
  79.  * 
  80.  * 3     11/09/02 15:48 Atai
  81.  * Vaddis 5e production update
  82.  * 
  83.  * 6     30/07/02 20:35 Nirm
  84.  * - Integrated Multi-Standard support for Clips.
  85.  * 
  86.  * 5     23/04/02 9:32 Nirm
  87.  * - Added dependency in "Config.h".
  88.  * 
  89.  * 4     3/26/02 19:14 Ettim
  90.  * Added new clips navigation support.
  91.  * 
  92.  * 3     18/02/02 11:26 Nirm
  93.  * Added MP3-ID3v1 support.
  94.  * 
  95.  * 2     14/02/02 18:13 Nirm
  96.  * Code cleanup.
  97.  * 
  98.  * 1     7/02/02 7:49 Nirm
  99.  ****************************************************************************************/
  100. #include "Config.h" // Global Configuration - do not remove!
  101. #ifndef __CLIPS_GLOBS_H_
  102. #define __CLIPS_GLOBS_H_
  103. #include "IncludeSysDefs.h"
  104. #include "PlaycoreNav_ClipsNav_Clips.h"
  105. #include "Decoderdecoder.h"
  106. #include "PlaycoreNav_ClipsMpeg4ClipsCommon.h"
  107. //#ifdef AVI_DRM_SUPPORT
  108. //#include "PlaycoreNav_ClipsAviDrmLibAESrijndael-api-fst.h"
  109. //#endif
  110. #ifdef CLIPS_JPEG_SUPPORT
  111. /*
  112. #define MAX_MCU_SIZE  64 // 8*4 each 2 pixels have 4 bytes
  113. #define MULT_MCU_WIDTH 4
  114. typedef struct JPEG_TEMP_BUFFER_TAG
  115. {
  116. BYTE m_ucMcuLine[MAX_MCU_SIZE*MULT_MCU_WIDTH];
  117. BYTE m_ucYBuff[16*MULT_MCU_WIDTH];
  118. BYTE m_ucCBuff[16*MULT_MCU_WIDTH];
  119. BYTE m_ucCTemp[16*MULT_MCU_WIDTH];
  120. } JPEG_TEMP_BUFFER;
  121. */
  122. typedef struct 
  123. {
  124. // JPEG_TEMP_BUFFER m_JPEG_Temp_Buffer;
  125. JPEG_DISPLAY_BUFFER eJPEGCurrentDisplayBuffer;
  126. JPEG_DISPLAY_BUFFER eJPEGCurrentDecodeBuffer;
  127. DWORD dwWatchDog;
  128. BOOL bStopRequested;
  129. BOOL bIsDigest;
  130. UINT8 g_uPresentationTime;
  131. } JPEG_GLOBALS;
  132. #endif//CLIPS_JPEG_SUPPORT
  133. typedef struct 
  134. {
  135. int m_frameBytes;
  136. DWORD dwUsPerFrame;
  137. BYTE *aHeaderBuffer;
  138. unsigned int uiBuffNo;
  139. DWORD dwClipStartAddrForHeadBuffer;
  140. XHEADDATA m_pXingHeader;
  141. BYTE ucMP3PlayabckFinishedCounter;
  142. } MP3_GLOBALS;
  143. typedef struct 
  144. {
  145. BOOL    bHasIndex;
  146. BOOL    bDrmOn;
  147. INT32 lPreviousFrameNumber;
  148. UINT8 uiCurrCachedIdxEntry;
  149. BOOL bVideoBeforeAudio;
  150. //#ifdef AVI_DRM_SUPPORT
  151. // keyInstance m_KeyInstance;
  152. //#endif
  153. } AVI_GLOBALS;
  154. #ifdef IS_ASF_CAPABLE
  155. typedef struct
  156. {
  157. ASFProperties asfProperties;
  158. UINT32 uiAsfResumePacketNumber; // 1 ~ PacketsCount
  159. } ASF_GLOBALS;
  160. #endif
  161. #ifdef IS_MP4_CAPABLE
  162. typedef struct
  163. {
  164. DWORD dwChunkSizeStartAddr;
  165. // DWORD dwChunkSizeEndAddr;
  166. DWORD dwChunkSizeEntryTotal;
  167. DWORD dwChunkSizeEntryIndex;
  168. // DWORD dwAudioSyncEntryAddr;
  169. DWORD dwFirstChunkOffset;
  170. DWORD dwLastChunkEndOffset;
  171. DWORD dwSampleTableAddr;
  172. DWORD dwChunkSizeBuff[MP4_CHUNK_SIZE_TABLE_BUFF_SIZE];
  173. DWORD dwChunkOffset;
  174. DWORD dwVideoSyncOffset;
  175. DWORD dwAudioSyncOffset;
  176. // support internal subtitle(text)
  177. DWORD dwSubtitleSampleAddr;
  178. DWORD dwSubtitleSampleCount;
  179. DWORD dwSubtitleSampleStartTime;
  180. // DWORD dwSubtitleWriteCount;
  181. // DWORD dwSubtitleReadCount;
  182. DWORD dwSubtitleWriteDRAMAddr;
  183. DWORD dwSubtitleReadDRAMAddr;
  184. // DWORD dwSubtitleStorageStartAddr;
  185. // DWORD dwSubtitleStorageEndAddr;
  186. DWORD dwChapterOffset; // in file
  187. DWORD dwChapterDRAMStartAddr;
  188. UINT16 uiChapterStartTime;
  189. UINT16 uiChapterEndTime;
  190. BYTE sharedBuff[256]; // used to store the sampletable when processing info, 
  191. // used to store the transfer chunksize when playback 
  192. BOOL  bNeroDigital;
  193. } MP4_GLOBALS;
  194. #endif
  195. typedef struct
  196. {
  197. DWORD   dwFileLocation;
  198. DWORD   dwClipStartLBA;
  199. WORD    wClipStartOffset;
  200. WORD    wClipEndOffset;
  201. UINT32  ulTotalBlocksCnt;
  202. UINT8  subtitle_current_display;
  203. UINT8  subtitle_available_num;
  204. UINT8 subtitle_internal_available_num;
  205. UINT8 audio_current_display;
  206. UINT8 audio_available_num;
  207. UINT8 chapter_current_display;
  208. UINT8 chapter_available_num;
  209. UINT16  uiTotalDVPIdleTime;
  210. BOOL bIsIndexProcessed;
  211. UINT32  uiProcessedFileAddr;
  212. INT8 iCurrentScanningMode;
  213. UINT32  uiNumOfDecodedChunksMemory;
  214. UINT16  uiStartTime;
  215. BOOL bTrickModeOn;
  216. BOOL    bWasClockEnabled;
  217. UINT16 NextIndexEntry;
  218. UINT32 ulRequestedFrameIndex;
  219. // BOOL bAutoPlay;
  220. BOOL bPauseToSlow;
  221. #ifdef PATCH_VIDEO_NOT_B
  222. BOOL  bIsBVopExist;
  223. #endif
  224. DWORD dwProcessingEndAddr;
  225. DWORD  dwExternalSubtitleAddr;
  226. BOOL bExternalSubtitleMultiLang;
  227. WORD wTotalSubtitleNum; // external subtitle files number
  228. WORD  wInternalSubtitleBufferStartAddr; // in kBytes
  229. MPEG4VideoStreamInfo VideoStreamInfo;
  230. MPEG4AudioStreamInfo CurrAudioStreamInfo;
  231. MPEG4SubtitleStreamInfo CurrSubtitleStreamInfo;
  232. union {
  233. AVI_GLOBALS aviGlobals;
  234. #ifdef IS_ASF_CAPABLE
  235. ASF_GLOBALS asfGlobals;
  236. #endif
  237. #ifdef IS_MP4_CAPABLE
  238. MP4_GLOBALS mp4Globals;
  239. #endif
  240. } globalsEx;
  241. } MPEG4_GLOBALS;
  242. typedef struct ASFInfo_TAG
  243. {
  244. DWORD cbHeaderSize;
  245. DWORD cbPacketSize;
  246. } ASFInfo;
  247. typedef struct
  248. {
  249. #ifdef CLIPS_WMA_UNSUPPORTRATE_HANDLE_BY_CPU
  250. BOOL bWMAUnsupportedRate;
  251. #endif
  252. struct ASFInfoCache_TAG 
  253. {
  254. DWORD dwID;
  255. ASFInfo asfInfo;
  256. } g_ASFInfoCache;
  257. } WMA_GLOBALS;
  258. #ifdef IS_OGG_VORBIS_CAPABLE
  259. typedef struct
  260. {
  261. BOOL bOGGUnsupported; //Sean_1213_2004
  262. } OGG_GLOBALS;
  263. #endif
  264. typedef struct Clips_globals_TAG 
  265. {
  266. UINT16 uClipsCnt;
  267. UINT16 uCurrentClipNumber;
  268. UINT32 hDirsArray[2];
  269. UINT8  ucPeerArrayLocation;
  270. UINT16 uCurrentDir;
  271. UINT16 uPeerDirCount;
  272. UINT16 uSubDirCount;
  273. UINT8 eWindowsExplorerStyleBrowser;
  274. enClipsExplorerStyleBrowserPlayMode uExplorerStyleBrowserPlayMode;
  275. BOOL bDisplayLogoWhenPlayAudioOnlySteam;
  276. UINT16  iGetClipFileInfoAtNumber;
  277. UINT16 uCurrPlaylistItem;
  278. int iCurrentTime;
  279. UINT16 uTotalPlaybackTime;
  280. UINT8 eCurrentAngle;
  281. UINT8   eCurrentTransition;
  282. int iScanSpeed;
  283. int iSlowSpeed;
  284. UINT16 iClipBitRate;
  285. UINT32 iClipSamplingRate;
  286. BOOL bIsIntroPlayMode;
  287. ClipInfoEx cieCurrClip;
  288. BYTE reserved;
  289. union
  290. {
  291. MPEG4_GLOBALS mpeg4Globals;
  292. #ifdef CLIPS_JPEG_SUPPORT
  293. JPEG_GLOBALS jpegGlobals;
  294. #endif
  295. MP3_GLOBALS  mp3Globals;
  296. WMA_GLOBALS  wmaGlobals;
  297. #ifdef IS_OGG_VORBIS_CAPABLE
  298. OGG_GLOBALS oggGlobals; //Sean_1213_2004
  299. #endif
  300. } globals;
  301. #ifdef MANUAL_DIRECTORY_EXPLORER
  302. UINT16 uSubDirArraySize;  //ERICM_4JUN25K
  303. #endif
  304. #ifdef I86_HW_FCU
  305. STRUCT_FILE fMainFile;
  306. STRUCT_FILE fSubtitleFile;
  307. #endif
  308. } S_CLIPS_GLOBALS;
  309. #define CLIPS_PEER_ARRAY SHARED_INFO.ucPeerArrayLocation
  310. #define CLIPS_SUB_ARRAY (1 - CLIPS_PEER_ARRAY)
  311. #endif //__CLIPS_GLOBS_H_