- /****************************************************************************************
- * Copyright (c) 2002 ZORAN Corporation, All Rights Reserved
- * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
- *
- * File: $Workfile: GlobsDef.h $
- *
- * Description:
- * ============
- *
- *
- * Log:
- * ====
- * $Revision: 11 $
- * Last Modified by $Author: Terencet $ at $Modtime: 3/11/04 3:30p $
- ****************************************************************************************
- * Updates:
- ****************************************************************************************
- * $Log: /I76/I76_Common/I76_Reference/Playcore/Nav_SVCD/GlobsDef.h $
- *
- * 11 3/11/04 3:31p Terencet
- * add check for VCD version2.0
- *
- * 10 2/16/04 5:13p Lyncolnc
- * Merged S1 Changes.
- *
- * 9 03-04-29 22:32 Leslie
- * Add Entry Information parse
- *
- * 8 03-02-18 10:34 Leslie
- * Support SVCD Total elapsed time
- *
- * 7 03-01-24 20:32 Leslie
- * Add bIsIntroPlayMode
- *
- * 12 2/06/02 17:11 Nirm
- * - Moved SVCD_MAX_BOOKMARKS to Config.h
- *
- * 11 27/05/02 10:46 Ettim
- * Changed the number of available bookmarks to 5.
- *
- * 10 23/04/02 9:35 Nirm
- * - Added dependency in "Config.h".
- *
- * 9 31/03/02 8:48 Nirm
- * - Removed unnecessary dependency.
- *
- * 8 2/27/02 17:31 Ettim
- * Added Digest support.
- *
- * 7 2/18/02 11:01 Ettim
- * Updated Audio SID setting for the channels C0 & C1
- *
- * 6 2/06/02 17:17 Ettim
- * Enabling play after slow mode.
- * Fixing the problem of Fast reverse & play - retrying before abandoning
- * the PTS-based measurement
- * Canceling scanning when moving to the previous or the next item.
- *
- * 5 1/17/02 17:05 Ettim
- * Removed the definition for SC_NULL since it already exists as
- * NULL_HANDLE in scmgr.h
- *
- * 4 9/01/02 17:10 Nirm
- * Corrected Include-Paths.
- *
- * 3 8/01/02 16:27 Nirm
- * Corrected Include-Paths.
- *
- * 2 12/26/01 18:53 Ettim
- * After updating nav_svcd.c & pe_cd.c
- ****************************************************************************************/
- #include "Config.h" // Global Configuration - do not remove!
- #ifndef SVCD_GLOBS_H_
- #define SVCD_GLOBS_H_
- #include "Kernelker_api.h"
- typedef enum { PlayList = 0, SelectionList, EndList, Undetermined } enPSD_ListType;
- typedef enum { eNoError, eIFrameDisplayMiss, ePlaybackHangup } enErrorRecoveryType;
- typedef struct SVCD_Marker_TAG
- {
- enPSD_ListType ListType;
- DWORD dwPSD_Offset;
- WORD uListItem;
- DWORD dwStartAddress;
- } SVCD_Marker;
- typedef struct
- {
- UINT8 ScanFinishGap;
- } SVCD_MESSAGE_GAP_STATE;
- typedef struct SVCD_Info_TAG
- {
- ULONG ulPSD_Size; // The size of the PSD file (if it exists)
- BYTE aFirstSegmentAddress[3]; // The MM:SS:FF Address of the first Segment in Track #1
- BYTE uOffsetMultiplier; // A multiplication factor for PSD Offsets
- WORD uMaxSegmentNumber; // The maximal Segment-number in this Volume
- } SVCD_Info;
- typedef union SVCD_PSDList_TAG
- {
- struct PSD_PlayList
- {
- WORD uItemsCnt; // The number of Play-Items
- WORD uPrevOffset; // Offset to the Previous List
- WORD uNextOffset; // Offset to the Next List
- WORD uReturnOffset; // Offset to the Return List
- WORD uPlayingTime; // The Playback-duration
- BYTE wWaitTime; // Waiting times for Play-Items
- BYTE wAutoPausePeriod; // Pause Period for Auto-Pause
- } PlayList;
- struct PSD_SelectionList
- {
- WORD uSelectionsCnt; // The number of Selection-Items
- WORD uSelectionBase; // The Base-Number of selections in this List
- WORD uPrevOffset; // Offset to the Previous List
- WORD uNextOffset; // Offset to the Next List
- WORD uReturnOffset; // Offset to the Return List
- WORD uDefaultOffset; // Offset to the Default List
- WORD uTimeoutOffset; // Offset to the List to be used on Time-Out
- BYTE wTimeoutWaitTime; // Waiting time for Time-Out
- BYTE bPostponeEventsDuringPlay; // Indicates whether to postpone an event arriving during playback
- WORD uRepeatCnt; // The remaining number of times to repeat the Play item
- WORD uPlayItemNumber; // Identifies the Play-Item to be played
- } SelectionList;
- } SVCD_PSDList;
- typedef struct SVCD_Navigator_TAG
- {
- // Navigator Internal-States
- BYTE m_uCurrPlaybackMode; // The current Playback-Mode
- BOOL m_bIsDisplaying; // Indicates whether or not an image is being displayed
- BOOL m_bIsUsingPSD; // Indicates whether or not the PSD file is being used (PBC On/Off)
- BOOL m_bIsSegment; //Indicates whether in segment play status
- // General Navigation Information
- SVCD_Info m_NavigationInfo;
- WORD m_uDiscStandard; // The Standard used to encode the Disc (VCD or SVCD)
- WORD m_uFirstCDDA_Track; // The serial-number of the first Track which is a CDDA track
- DWORD m_dwSecondTrackAddress; // Start address of the second track - for absolute time calculations
- ULONG m_ulSecondTrackBlocksPerSecond; // Second track's blocks per second
- // Encryption-related Information
- BOOL m_bIsEncrypted; // Indicates whether or not the content is encrypted
- // Event-related Information
- BOOL m_bPendingEvent; // Indicates whether or not there's a pending Event
- EVENT m_PendingEvent; // Holds the pending Event, when there is one
- WORD m_uPendingEventParam; // Holds the parameter accompanying the pending-Event, when there is one
- // Current-Location Information
- BOOL m_bLocationChanging; // Indicates whether or not the current Location is being changed
- DWORD m_dwTargetLocation; // Holds the Target-Address for Location-Changes
- DWORD dwSlowRCurrentPosition; // Holds the Current Position in case of Slow-Reverse (Unsupported!)
- // Scanning-related Information
- DWORD m_aCurrSegment[2]; // An array holding the Starting and Ending points of the current segment
- DWORD m_aCurrTrack[3]; // An array holding the Starting and Ending points of the current Track
- // and VBR of the current track.
- VideoSID m_iCurrVideoType; // The Video Type of the current segment
- AudioSID m_uCurrAudioSID; // The Audio information of the current segment
- BOOL m_bIsMPEG2; // An indication whether there is an MPEG2 directory on the vcd
- // Timing Information
- DWORD m_dwWaitTime; // The Wait-Time associated with Play-Items
- DWORD m_dwTimeout; // The Timeout period associated with Play-Items
- DWORD m_dwPausePeriod; // The Pause-Period associated with Auto-Pause
- // Time-Measurement Information
- struct TimeMeasurementInfo_TAG {
- BOOL bUsePTS; // Indicates whether or not to use PTS's for measurement
- int iTimeOffset; // Holds a fixed offset, from which measurement starts
- BOOL bAcquireStartPTS; // Indictates whether there's need to acquire the first PTS
- DWORD dwStartPTS; // Holds the Start PTS of the current Segment
- DWORD dwLastPTS; // Holds the last-seen PTS
- } m_TimeMeasurementInfo;
- // Repeat-Mode and Random-Access Information
- SVCD_Marker m_PositionA; // Location-Marker for Position A
- SVCD_Marker m_PositionB; // Location-Marker for Position B
- SVCD_Marker m_ResumePlayback; // Playback-Resumption Point
- SVCD_Marker m_Bookmarks[SVCD_MAX_BOOKMARKS]; // Random-Access Bookmarks
- // Error-Handling and Recovery
- struct SVCD_ErrorRecoveryInfo_TAG {
- enErrorRecoveryType eRecoveryType; // Holds the Error-Recovery Mechanism Type to engage
- WORD uTimeout; // Holds the Timeout (in Ticks) to activation
- DWORD dwParam; // Holds a Parameter for the Error-Recovery Mechanism
- BYTE ucRetryCounter; //LX051302: Used to calculate next error recover address
- } m_ErrorRecoveryInfo;
- WORD m_wEntriesUsedCnt; //Number of allocated entries - to be freed in the destructor
- //PSD Caching information
- WORD m_wPSD_CacheOffset; // The Offset in the Scratch-Pad to the PSD-Cache
- DWORD m_dwPSD_CacheBase; // The base of the PSD-Cache (the first DWORD in the PSD-Cache)
- #ifdef SVCD_DIGEST_SUPPORT
- //Digest related information
- BOOL m_bDigestMode; // Indicates whether digest mode is on
- UINT32 m_uiDigestUnits; // Holds the units to be displayed on digest mode
- #endif //SVCD_DIGEST_SUPPORT
- unsigned long m_ulCOP_Mask;
- BYTE ucStillPicturePlaybackFinishedGapCounter;//LX091202
- } SVCD_Nav_Info;
- typedef struct svcd_globals_TAG {
- // Current-Location Information
- SVCD_Marker m_CurrPosition; // Describes the current position of the Navigator
- SVCD_PSDList m_CurrList; // Holds information about the current List being used
- // Scanning-related Information
- int m_iScanSpeed; // The current Scanning-speed (direction is determined by polarity)
- int m_iSlowSpeed; // Holds the Current Slow-Motion Speed
- // Public-access information
- WORD uCurrentTrackNumber; // Holds the Current Track Number
- BYTE ucCurrentTrackInfo; // Holds the Control-field for the Current Track
- BOOL bIsElapsedTimeValid; // Indicates whether or not the Elapsed-Time information is valid
- int iCurrentTime; // Holds the Elapsed-Time since the beginning of the current Segment
- WORD wTotalPlaybackTime; // Holds the Total Playback Time (in Seconds)
- WORD wRemainingPlaybackTime; // Holds the remaining playback time
- WORD wTotalElpasedTime; // Holds the total elapsed time since the begining of first MPEG A/V track
- BOOL bPBC_Available; // Indicates whether or not PBC information is available
- BOOL bDrivePaused;
- //Audio related information
- BYTE uTotalNumberOfAudioChannels; // Total number of currently available audio channels
- BYTE uCurrentAudioSIDChannel; // The current played audio sid channel
- WORD wCurrentEntryNumber;
- BOOL bEntryInfoAvaiable;
- BOOL bIsIntroPlayMode;
- BOOL bIsVCD20; //is VCD version 2.0
- #ifdef D_ENABLE_SVCD_SAMPLE_RATE_DETECTION
- DWORD ulSVDSamplingRate;
- #endif
- // Internal variables
- SVCD_MESSAGE_GAP_STATE SVCDMessageGap;
- UINT32 g_hEntriesTable;
- UINT32 g_hSegmentsContentTable;
- UINT32 g_hTracksTable;
- SVCD_Nav_Info *g_pSVCDNav;
- // <<< SEC BK.LIM062303 // ZKR GLV778
- #ifdef S1_GUI
- DWORD dwCurrentLocation;
- #endif
- // >>>
- } S_SVCD_GLOBALS;
- #endif //SVCD_GLOBS_H_