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

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: nav_svcd.h $             
  6.  *
  7.  * Description: 
  8.  * ============
  9.  * 
  10.  * 
  11.  * Log:
  12.  * ====
  13.  * $Revision: 10 $
  14.  * Last Modified by $Author: Johnk $ at $Modtime: 4/01/04 9:59p $ 
  15.  ****************************************************************************************
  16.  * Updates:
  17.  ****************************************************************************************
  18.  * $Log: /I76/I76_Common/I76_Reference/Playcore/Nav_SVCD/nav_svcd.h $
  19.  * 
  20.  * 10    4/01/04 10:50p Johnk
  21.  * support HW POWER_ON_RESUME 
  22.  * 
  23.  * 9     2/16/04 5:13p Lyncolnc
  24.  * Merged S1 Changes.
  25.  * 
  26.  * 8     1/25/04 8:21 Nmaurer
  27.  * Add drv_ prefix to Drive routines
  28.  * 
  29.  * 7     03-05-27 22:43 Fwang
  30.  * Code clean up
  31.  * 
  32.  * 6     03-03-26 16:43 Hannahh
  33.  * clean the warnings
  34.  * don't declare the function if not use it
  35.  * 
  36.  * 5     03-01-24 20:33 Leslie
  37.  * Add OnIntro() protype
  38.  * 
  39.  * 15    15/05/02 9:23 Ettim
  40.  * Removed some compilation warning messages.
  41.  * 
  42.  * 14    5/08/02 10:12a Dingming
  43.  * support disc time search(required by china customer)
  44.  * 
  45.  * 13    23/04/02 10:53 Nirm
  46.  * - Added dependency in "Config.h".
  47.  * 
  48.  * 12    11/04/02 9:46 Ettim
  49.  * Getting the parameters for the digest (digest mode & intro frames
  50.  * count) from the UI.
  51.  * 
  52.  * 11    10/04/02 12:25 Ettim
  53.  * Changed OnDigest to be static.
  54.  * 
  55.  * 10    4/01/02 18:54 Ettim
  56.  * Adding thumbnails (digest) support for JPEG.
  57.  * 
  58.  * 9     3/10/02 17:30 Ettim
  59.  * Added Motion Digest support. 
  60.  * 
  61.  * 8     2/27/02 17:31 Ettim
  62.  * Added Digest support.
  63.  * 
  64.  * 7     2/18/02 11:01 Ettim
  65.  * Updated Audio SID setting for the channels C0 & C1
  66.  * 
  67.  * 6     2/10/02 15:04 Ettim
  68.  * Using the Array for SDRAM allocations.
  69.  * Enabling play, next and next on Auto Pause.
  70.  * 
  71.  * 4     1/17/02 19:14 Ettim
  72.  * Handling the CVD encryption
  73.  * 
  74.  * 3     1/16/02 16:18 Ettim
  75.  * Updating the latest changes performed in the I54 svcd navigator (VBR &
  76.  * Tracks.svd file parsing).
  77.  * Setting the operation mask to enable play while scanning.
  78.  * Updating the macro PE_CD_SetDiscType to get only 1 argument.
  79.  * 
  80.  * 2     9/01/02 16:45 Nirm
  81.  * Corrected Include-Paths.
  82.  * 
  83.  * 1     12/26/01 18:53 Ettim
  84.  * After updating nav_svcd.c & pe_cd.c
  85.  ****************************************************************************************/
  86. #include "Config.h" // Global Configuration - do not remove!
  87. #ifndef NAV_SVCD_H_
  88. #define NAV_SVCD_H_
  89. #include "PlaycoreCoremaincoremain.h"
  90. #include "PlaycoreNav_Svcdsvcd.h"
  91. #include "PlaycoreDigestdigest.h"
  92. #include "playcorecoremaincorenvg.h"
  93. #include "eeprom.h"
  94. #ifdef EXINO2
  95. #include "customer.h"
  96. #endif // EXINO2
  97. #define SVCD_PSD_FILE_ADDRESS drv_msf2lbn(0, 4, 34)
  98. #define SVCD_PSD_CACHE_SIZE 2048
  99. #define SVCD_TRACKS_HDR_SIZE 11
  100. #define SVCD_TRACKS_RECORD_SIZE 5
  101. #define SVCD_PLAYLIST_HDR_SIZE 14
  102. #define SVCD_SELECTIONLIST_HDR_SIZE 20
  103. #define SVCD_TICKS_PER_SECOND 5
  104. #define SVCD_BLOCKS_PER_SECOND 75L
  105. #define SVCD_BLOCKS_PER_SEGMENT (SVCD_BLOCKS_PER_SECOND * 2)
  106. #define SVCD_SEGMENTS_TABLE_SIZE 1980
  107. #define SVCD_SEGMENT_OFFSET_IN_INFO 56
  108. #define SVCD_INFINITE -1
  109. //#define SVCD_MAX_PROGRAM_SIZE 300
  110. //LX090502: change from 5 to 15 due to the slow seek of drive
  111. #define SVCD_IFRAME_MISS_TIMEOUT 15 // I-Frame Display Miss tolerance (in Ticks)
  112. #define SVCD_PB_HANGUP_TIMEOUT (SVCD_TICKS_PER_SECOND * 5)  // Playback-Hangup tolerance (in Ticks)
  113. #define SVCD_LOCATION_TOLERANCE (SVCD_BLOCKS_PER_SECOND / 3) // Current-Position tolerance (in Blocks)
  114. #define SVCD_STILL_PICTURE_MISS_TIMEOUT 8//in terms of OnTick//LX091202
  115. //<<<ZORAN LX011702
  116. #define SVCD_LeadOut_Info_ADDR SVCDRsmInfo_ADDR
  117. #define SVCD_CurrentPosition_Info_ADDR (SVCDRsmInfo_ADDR+sizeof(WORD))
  118. #define SVCD_CurrentList_Info_ADDR (SVCD_CurrentPosition_Info_ADDR + sizeof(SVCD_Marker))
  119. #define SVCD_UsingPSD_Info_ADDR    (SVCD_CurrentList_Info_ADDR + sizeof(SVCD_PSDList))
  120. #define SVCD_VideoType_Info_ADDR (SVCD_UsingPSD_Info_ADDR + sizeof(BOOL))
  121. //ZORAN LX011702>>>
  122. // <<< SEC BK.LIM070203 // ZKR GLV778
  123. #ifdef S1_GUI
  124. #define SVCD_PREV_THRESHOLD (5 * SVCD_BLOCKS_PER_SECOND)
  125. #endif // S1_GUI
  126. //>>>
  127. /////////////////////////////////////////////////////////////////////////////////////////////////
  128. // Public Services
  129. int SVCD_Navigator(HDLR_OP op, EVENT evt, void *param);
  130. /////////////////////////////////////////////////////////////////////////////////////////////////
  131. // Private Structures
  132. typedef enum { ePause, eStopResume, eFullStop } enSVCD_StopType;
  133. typedef enum { eMarkerA, eMarkerB, eResumePlayback, eBookmark } enSVCD_MarkerType;
  134. typedef enum { eTimeout, eWaitTimeExpired, ePausePeriodExpired, ePositionA, ePositionB } enSVCD_RendezvousType;
  135. typedef struct SVCD_SegmentPlayItem_TAG {
  136. WORD  uSegmentNumber; // The Serial-number of the first Segment in the Play-Item
  137. BYTE  uContents; // Information about the Contents of the Segment Play-Item
  138. WORD uSubSegmentCnt; // 
  139. } SVCD_SegmentPlayItem;
  140. #endif //NAV_SVCD_H_