- /****************************************************************************************
- * Copyright (c) 2002 ZORAN Corporation, All Rights Reserved
- * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
- *
- * File: $Workfile: GlobsDef.h $
- *
- * Description:
- * ============
- *
- *
- * Log:
- * ====
- * $Revision: 28 $
- * Last Modified by $Author: Jerryc $ at $Modtime: 04-03-16 11:13 $
- ****************************************************************************************
- * Updates:
- ****************************************************************************************
- * $Log: /I76/I76_Common/I76_Reference/Playcore/Nav_Clips/GlobsDef.h $
- *
- * 28 04-03-16 11:13 Jerryc
- * remove fileX in the union.
- *
- * 27 3/10/04 4:24p Lotan
- * Merge with Divx Certification DB 3
- *
- * 26 04-03-09 21:50 Leslie
- * Mem reduction for JPEG and DRM
- *
- * 25 3/08/04 4:15p Hamadk
- *
- * 24 3/01/04 6:29p Lotan
- * merge with Divx certification DB
- *
- * 23 2/04/04 10:09a Leslie
- * Add JPEG Cache and Display Buffer Toggling
- *
- * 22 11/07/03 12:18p Leonh
- * get mp3 sampling rate
- *
- * 21 10/22/03 19:01 Hamadk
- * Added AVI Clip navigator info in the global navigation union.
- *
- * 20 03-06-03 11:41 Jerryc
- * add filex
- *
- * 19 03-04-25 17:27 Jerryc
- * folders are always list on the top.
- *
- * 18 03-03-14 18:16 Jerryc
- * add data to support synchoronous Clips_getClipFileInfoAt().
- *
- * 17 03-03-10 15:28 Jerryc
- * clean up
- *
- * 16 03-03-07 19:10 Jerryc
- * jerryc, add support for random play mode
- *
- * 15 03-03-06 16:10 Jerryc
- * jerryc, clean up.
- *
- * 14 03-03-05 17:39 Jerryc
- * jerryc, add uExplorerStyleBrowserPlayMode.
- *
- * 13 03-03-04 11:34 Jerryc
- * jerry cai, merge new nav clips lib
- *
- * 12 03-02-08 0:34 Leslie
- * Add MANUAL_DIRECTORY_EXPLORER
- *
- * 11 03-02-06 14:22 Leslie
- * Add iSlowSpeed
- *
- * 10 03-01-24 20:31 Leslie
- * Add bIsIntroPlayMode
- *
- * 9 03-01-09 12:30 Leslie
- *
- * 8 10/30/02 17:48 Rond
- *
- * 3 11/09/02 15:48 Atai
- * Vaddis 5e production update
- *
- * 6 30/07/02 20:35 Nirm
- * - Integrated Multi-Standard support for Clips.
- *
- * 5 23/04/02 9:32 Nirm
- * - Added dependency in "Config.h".
- *
- * 4 3/26/02 19:14 Ettim
- * Added new clips navigation support.
- *
- * 3 18/02/02 11:26 Nirm
- * Added MP3-ID3v1 support.
- *
- * 2 14/02/02 18:13 Nirm
- * Code cleanup.
- *
- * 1 7/02/02 7:49 Nirm
- ****************************************************************************************/
- #include "Config.h" // Global Configuration - do not remove!
- #ifndef __CLIPS_GLOBS_H_
- #define __CLIPS_GLOBS_H_
- #include "IncludeSysDefs.h"
- #include "PlaycoreNav_ClipsNav_Clips.h"
- #include "Decoderdecoder.h"
- #include "PlaycoreNav_ClipsMpeg4ClipsCommon.h"
- //#ifdef AVI_DRM_SUPPORT
- //#include "PlaycoreNav_ClipsAviDrmLibAESrijndael-api-fst.h"
- //#endif
- #ifdef CLIPS_JPEG_SUPPORT
- /*
- #define MAX_MCU_SIZE 64 // 8*4 each 2 pixels have 4 bytes
- #define MULT_MCU_WIDTH 4
- typedef struct JPEG_TEMP_BUFFER_TAG
- {
- BYTE m_ucMcuLine[MAX_MCU_SIZE*MULT_MCU_WIDTH];
- BYTE m_ucYBuff[16*MULT_MCU_WIDTH];
- BYTE m_ucCBuff[16*MULT_MCU_WIDTH];
- BYTE m_ucCTemp[16*MULT_MCU_WIDTH];
- } JPEG_TEMP_BUFFER;
- */
- typedef struct
- {
- // JPEG_TEMP_BUFFER m_JPEG_Temp_Buffer;
- JPEG_DISPLAY_BUFFER eJPEGCurrentDisplayBuffer;
- JPEG_DISPLAY_BUFFER eJPEGCurrentDecodeBuffer;
- DWORD dwWatchDog;
- BOOL bStopRequested;
- BOOL bIsDigest;
- UINT8 g_uPresentationTime;
- } JPEG_GLOBALS;
- #endif//CLIPS_JPEG_SUPPORT
- typedef struct
- {
- int m_frameBytes;
- DWORD dwUsPerFrame;
- BYTE *aHeaderBuffer;
- unsigned int uiBuffNo;
- DWORD dwClipStartAddrForHeadBuffer;
- XHEADDATA m_pXingHeader;
- BYTE ucMP3PlayabckFinishedCounter;
- } MP3_GLOBALS;
- typedef struct
- {
- BOOL bHasIndex;
- BOOL bDrmOn;
- INT32 lPreviousFrameNumber;
- UINT8 uiCurrCachedIdxEntry;
- BOOL bVideoBeforeAudio;
- //#ifdef AVI_DRM_SUPPORT
- // keyInstance m_KeyInstance;
- //#endif
- } AVI_GLOBALS;
- #ifdef IS_ASF_CAPABLE
- typedef struct
- {
- ASFProperties asfProperties;
- UINT32 uiAsfResumePacketNumber; // 1 ~ PacketsCount
- } ASF_GLOBALS;
- #endif
- #ifdef IS_MP4_CAPABLE
- typedef struct
- {
- DWORD dwChunkSizeStartAddr;
- // DWORD dwChunkSizeEndAddr;
- DWORD dwChunkSizeEntryTotal;
- DWORD dwChunkSizeEntryIndex;
- // DWORD dwAudioSyncEntryAddr;
- DWORD dwFirstChunkOffset;
- DWORD dwLastChunkEndOffset;
- DWORD dwSampleTableAddr;
- DWORD dwChunkSizeBuff[MP4_CHUNK_SIZE_TABLE_BUFF_SIZE];
- DWORD dwChunkOffset;
- DWORD dwVideoSyncOffset;
- DWORD dwAudioSyncOffset;
- // support internal subtitle(text)
- DWORD dwSubtitleSampleAddr;
- DWORD dwSubtitleSampleCount;
- DWORD dwSubtitleSampleStartTime;
- // DWORD dwSubtitleWriteCount;
- // DWORD dwSubtitleReadCount;
- DWORD dwSubtitleWriteDRAMAddr;
- DWORD dwSubtitleReadDRAMAddr;
- // DWORD dwSubtitleStorageStartAddr;
- // DWORD dwSubtitleStorageEndAddr;
- DWORD dwChapterOffset; // in file
- DWORD dwChapterDRAMStartAddr;
- UINT16 uiChapterStartTime;
- UINT16 uiChapterEndTime;
- BYTE sharedBuff[256]; // used to store the sampletable when processing info,
- // used to store the transfer chunksize when playback
- BOOL bNeroDigital;
- } MP4_GLOBALS;
- #endif
- typedef struct
- {
- DWORD dwFileLocation;
- DWORD dwClipStartLBA;
- WORD wClipStartOffset;
- WORD wClipEndOffset;
- UINT32 ulTotalBlocksCnt;
- UINT8 subtitle_current_display;
- UINT8 subtitle_available_num;
- UINT8 subtitle_internal_available_num;
- UINT8 audio_current_display;
- UINT8 audio_available_num;
- UINT8 chapter_current_display;
- UINT8 chapter_available_num;
- UINT16 uiTotalDVPIdleTime;
- BOOL bIsIndexProcessed;
- UINT32 uiProcessedFileAddr;
- INT8 iCurrentScanningMode;
- UINT32 uiNumOfDecodedChunksMemory;
- UINT16 uiStartTime;
- BOOL bTrickModeOn;
- BOOL bWasClockEnabled;
- UINT16 NextIndexEntry;
- UINT32 ulRequestedFrameIndex;
- // BOOL bAutoPlay;
- BOOL bPauseToSlow;
- #ifdef PATCH_VIDEO_NOT_B
- BOOL bIsBVopExist;
- #endif
- DWORD dwProcessingEndAddr;
- DWORD dwExternalSubtitleAddr;
- BOOL bExternalSubtitleMultiLang;
- WORD wTotalSubtitleNum; // external subtitle files number
- WORD wInternalSubtitleBufferStartAddr; // in kBytes
- MPEG4VideoStreamInfo VideoStreamInfo;
- MPEG4AudioStreamInfo CurrAudioStreamInfo;
- MPEG4SubtitleStreamInfo CurrSubtitleStreamInfo;
- union {
- AVI_GLOBALS aviGlobals;
- #ifdef IS_ASF_CAPABLE
- ASF_GLOBALS asfGlobals;
- #endif
- #ifdef IS_MP4_CAPABLE
- MP4_GLOBALS mp4Globals;
- #endif
- } globalsEx;
- } MPEG4_GLOBALS;
- typedef struct ASFInfo_TAG
- {
- DWORD cbHeaderSize;
- DWORD cbPacketSize;
- } ASFInfo;
- typedef struct
- {
- #ifdef CLIPS_WMA_UNSUPPORTRATE_HANDLE_BY_CPU
- BOOL bWMAUnsupportedRate;
- #endif
- struct ASFInfoCache_TAG
- {
- DWORD dwID;
- ASFInfo asfInfo;
- } g_ASFInfoCache;
- } WMA_GLOBALS;
- #ifdef IS_OGG_VORBIS_CAPABLE
- typedef struct
- {
- BOOL bOGGUnsupported; //Sean_1213_2004
- } OGG_GLOBALS;
- #endif
- typedef struct Clips_globals_TAG
- {
- UINT16 uClipsCnt;
- UINT16 uCurrentClipNumber;
- UINT32 hDirsArray[2];
- UINT8 ucPeerArrayLocation;
- UINT16 uCurrentDir;
- UINT16 uPeerDirCount;
- UINT16 uSubDirCount;
- UINT8 eWindowsExplorerStyleBrowser;
- enClipsExplorerStyleBrowserPlayMode uExplorerStyleBrowserPlayMode;
- BOOL bDisplayLogoWhenPlayAudioOnlySteam;
- UINT16 iGetClipFileInfoAtNumber;
- UINT16 uCurrPlaylistItem;
- int iCurrentTime;
- UINT16 uTotalPlaybackTime;
- UINT8 eCurrentAngle;
- UINT8 eCurrentTransition;
- int iScanSpeed;
- int iSlowSpeed;
- UINT16 iClipBitRate;
- UINT32 iClipSamplingRate;
- BOOL bIsIntroPlayMode;
- ClipInfoEx cieCurrClip;
- BYTE reserved;
- union
- {
- MPEG4_GLOBALS mpeg4Globals;
- #ifdef CLIPS_JPEG_SUPPORT
- JPEG_GLOBALS jpegGlobals;
- #endif
- MP3_GLOBALS mp3Globals;
- WMA_GLOBALS wmaGlobals;
- #ifdef IS_OGG_VORBIS_CAPABLE
- OGG_GLOBALS oggGlobals; //Sean_1213_2004
- #endif
- } globals;
- #ifdef MANUAL_DIRECTORY_EXPLORER
- UINT16 uSubDirArraySize; //ERICM_4JUN25K
- #endif
- #ifdef I86_HW_FCU
- STRUCT_FILE fMainFile;
- STRUCT_FILE fSubtitleFile;
- #endif
- } S_CLIPS_GLOBALS;
- #define CLIPS_PEER_ARRAY SHARED_INFO.ucPeerArrayLocation
- #define CLIPS_SUB_ARRAY (1 - CLIPS_PEER_ARRAY)
- #endif //__CLIPS_GLOBS_H_