⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dvd_prv_types.h

📁 SAMSUNG 5009的源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
/****************************************************************************
* File name				
*				Dvd_prv_types.h
*						
* Start date			
*				2002.10.1
*						
* By					
*				Inseo Han 
*						
* Contact				
*				ishan@samsung.com 
*								
* Description					
*				This file contains the structures of DVD-Video and DVD-Audio
*				for the private use.
*				
* HISTORY		
*				
*         NAME            DATE                    REMARKS
*										
*										
*										
*****************************************************************************/

#ifndef _DVD_PRV_TYPES_H_
#define _DVD_PRV_TYPES_H_


/***************************************************************************
 *       INCLUDES
 **************************************************************************/

/**********************************************************
 * 
 *		Defines
 *
 *********************************************************/

#define IS_DVD_VIDEO_DOMAIN(domain)		( (domain) < DVD_DOM_AMGM )
#define IS_DVD_AUDIO_DOMAIN(domain)		( ((domain) == DVD_DOM_STOP) \
											|| ((domain) >= DVD_DOM_AMGM))

#define	DVD_SPACE_SYSTEM		(DVD_DOM_VMGM | DVD_DOM_FP | DVD_DOM_VTSM)
#define	DVD_SPACE_MENU			(DVD_DOM_VMGM | DVD_DOM_VTSM | DVD_DOM_AMGM)
#define	DVD_SPACE_VMG			(DVD_DOM_VMGM | DVD_DOM_FP)
#define	DVD_SPACE_VTS			(DVD_DOM_VTSM | DVD_DOM_TT)
#define   DVD_SPACE_AMG			(DVD_DOM_AMGM | DVD_DOM_FP)  /*FOR DVD audio*/
#define   DVD_SPACE_ATS			(DVD_DOM_TT_GR)

/* Resuming Types */
typedef BYTE1		DvdResumeType_t;

#define DVD_NO_RESUMING				0
#define DVD_NORMAL_RESUMING			1
#define DVD_POWER_OFF_RESUMING		2

/**********************************************************
 * 
 *		SPRMs and GPRMs
 *
 *********************************************************/
typedef struct {
	BYTE2	sprm[DVD_SPRM_NUM];
	BYTE2	gprm[DVD_GPRM_NUM];
} Registers_t;


typedef struct {
	BOOL		valid;
	BYTE4		nv_pck_addr;	/* from the first byte of VOBS */
	
#ifdef _DVD_FAST_RESUME
	BYTE4		ilvu_ea;		/* from the first byte of VOBS */
#endif

	Cn_t		cn;
	Pgcn_t		pgcn;
	Pgcn_t		first_pgcn;

	/* (yanglu, 060219) Add for bookmark time info display */
#ifdef _DVD_DT_BOOKMARK	
	Pgn_t		pgn;
	Pttn_t		pttn;
	PlaybackTime_t	time;
#endif	

	/* For DVD-Video or VOB */
	Ttn_t		ttn;
	Vtsn_t		vtsn;
	VtsTtn_t	vts_ttn;

	BYTE1		angle_num;	
	BYTE1		audio_stream_id;
	BYTE1		subtitle_stream_id;

} DvdBookmarkInfo_t;

/**********************************************************
 * 
 *		Structure for DVD-Audio Navigator 
 *		ATT_GR Information
 *
 *********************************************************/
typedef struct {
	/* Total number of ATT_GR available */
	AttGrn_t	num_group;
	/* Total number of tracks in each ATT_GR */
	Tkn_t		num_track[9];
} DvdaGroupInfo_t;

/***************************************************
*  		Digest  data types define
***************************************************/
/*Digest mode*/
typedef enum{
	TITLE_DIGEST = 3,
	TITLE_INTERVAL,
	CHAPTER_DIGEST,
	CHAPTER_INTERVAL
}Dvdv_digest_mode_et;
/*Digest frame num*/
#define DVD_PRIVIEW_NUM		6
#define DVD_PRIVIEW_LENGTH	10

typedef struct{
	BOOL 	bDigestFlag;					/*identify the digest play*/
	BOOL 	bRepeatFlag;				/*User select a frame to play repeatly*/
	BOOL      bIsGraphicPlaneCreated;         /*For grahpic plane first time creat*/
	Dvdv_digest_mode_et digest_mode;		/*digest mode*/
	UCHAR 	ucCurrentIndex;    			/*0~(DVD_PRIVEW_NUM-1)*/
	UCHAR    ucCurrentPage;				/*1~ucTotalPage*/
	UCHAR 	ucTotalIndex;			/*!Temply defined ..  Indicate the total frame in Current digest mode*/
 	UCHAR    ucTotalPage;				/*Total page it includes, should be set before*/
}Dvdv_digest_t;

/**********************************************************
 * 
 *		Structure & definitions for DVD Repeat functionality
 *
 *********************************************************/

typedef struct {
	/* If _DVD_REPEAT_AB_IN_OTHER_REPEAT is defined,
		repeat_state should not be DVD_REPEAT_A.
		DVD_REPEAT_A can be represented by "is_repeat_a_set" */
	DvdRepeatState_t	repeat_state;
#ifdef _DVD_REPEAT_AB_IN_OTHER_REPEAT	
	BOOL	is_repeat_a_set;
	/* if repeat_state is DVD_REPEAT_B, prev_repeat_state is the previous repeat state
		to restore when RepeatAB is canceled */
	DvdRepeatState_t	prev_repeat_state;	
#endif
	BYTE4	repeat_a_sec;	/* seconds  when setting Repeat A */
	BYTE4	repeat_b_end_lba;	/* Nav Pack LBA of Repeat B */
	//BYTE4	repeat_b_pts;
} DvdRepeat_t;

/**********************************************************
 * 
 *		Structure & definitions for EZ View (Samsung Specific)
 *
 *********************************************************/

/* Ez view mode */
typedef enum {
	DVD_EZV_NULL = 0,	/* Set the ez view mode automatically according to setup */
	/* Common */
	DVD_EZV_SCREEN_FIT,		/* Remove top/bottom matte */
	DVD_EZV_ZOOM_FIT,		/* Remove top/bottom/left/right */
	/* 16:9 screen */
	DVD_EZV_WIDE_SCREEN,		/* 16:9 source only */
	DVD_EZV_WIDE_NORMAL,	/* 4:3 source only */
	DVD_EZV_VERTICAL_FIT,	/* Shrink 4:3 source (Add vertical matte on the left/right) */
	/* 4:3 screen */
	DVD_EZV_NORMAL_SCREEN,
	DVD_EZV_4_3_LETTER_BOX,	/* 16:9 source only (Letterbox) */
	DVD_EZV_4_3_PAN_SCAN,    /* 16:9 source only (Pan&Scan) */
	DVD_EZV_MAX_NUM
 } DvdEzView_t;

typedef struct {
	BOOL 	processed;
	BYTE2	num_cmd;
	BYTE2	start_cmd_index;
	/* cmd_array should be full pre or post cmds, because of GoTo commands use
	 the command number from the first one */
	DvdNavCmd_t		*cmd_array;		
} DvdTmpPtl_t;

/**********************************************************
 * 
 *		Structure for DVD-Video/Audio state variables
 *
 *********************************************************/
typedef struct {
 	Domain_t	domain;
	Ttn_t	ttn;
	Pgcn_t	pgcn;
	Cn_t		entry_cn_read;
	Ttn_t	num_tt_tried;
} DvdEmergState_t;

/**********************************************************
 * 
 *		Structure for DVD-Video/Audio resuming information
 *
 *********************************************************/
typedef struct {
#ifdef _DVD_MENU_RESUME_STOP
	Domain_t	domain;

#if 1	// test.yl
	BYTE4		start_lba_read;
	BYTE4		end_lba_read;
	BYTE1		resume_type;
#endif
#endif	
	
	/* Common */
	BYTE1		hl_btnn;
	BYTE4		nv_pck_addr;	/* from the first byte of VOBS */
								/* from the first byte of AOBS */
#ifdef _DVD_FAST_RESUME
	BYTE4		ilvu_ea;		/* from the first byte of VOBS */
#endif	

								
	Cn_t		cn;
	Pgcn_t		pgcn;
	Pgcn_t		first_pgcn;


	/* For DVD-Video or VOB */
	Ttn_t		ttn;

#ifdef _STORE_RANDOM_HIST	
	BYTE1		pg_loop_count;
	BYTE1		shuffle_history[NUM_HISTORY_ARRAY];
#endif	

	BYTE1		angle_num;

#ifdef _ENABLE_DVD_AUDIO
	/* For DVD-Audio */
	AttGrn_t		att_grn;
	Tkn_t		tkn;
#endif	

	BYTE1		audio_stream_id;
	BYTE1		subtitle_stream_id;
	BYTE2		nav_timer;
	Pgcn_t		nav_timer_pgcn;	
	BYTE2		gprm[16];	
	BYTE2		gprm_mode;	/* GPRM mode (16bit)*/

#ifdef _DVD_EZ_VIEW		
	BYTE1		ez_view_mode;
#endif

} DvdResumeInfo_t;

/**********************************************************
 * 
 *		Structure for DVD-Video/Audio resuming information\
 *		within the current PGC
 *
 *********************************************************/
typedef struct {
	/* Common */
	BYTE4		nv_pck_addr;	/* from the first byte of VOBS */
								/* from the first byte of AOBS */
#ifdef _DVD_FAST_RESUME
	BYTE4		ilvu_ea;		/* from the first byte of VOBS */
#endif	

								
	Cn_t		cn;

	BYTE1		angle_num;

#ifdef _ENABLE_DVD_AUDIO
	/* For DVD-Audio */
	Tkn_t		tkn;
#endif	
} DvdResumeInfoInPgc_t;


#ifdef _DVD_MENU_RETURN
typedef struct {
	BOOL		is_valid;
	Domain_t		menu_domain;
	Pgcn_t		first_pgcn;
	Vtsn_t		vtsn;
	BYTE1		vts_ttn;
} DvdMenuReturnInfo_t;
#endif


typedef struct {

	/********************************************
	 *		Common variables
	 ********************************************/
#ifdef _ENABLE_DVD_AUDIO /* CKLee 05.09.27 */
	BOOL		is_dvd_audio;
#endif

#if 1	/* Yanglu 05.01.10 */
	BOOL		is_full_stop;
#endif
	Domain_t	domain;
	Registers_t registers;	/* SPRM, GPRM at playing time */
	DvdResumeInfo_t	resume_info;
#ifdef _DVD_MENU_RESUME_STOP
	/* Separate the TT resume info to keep the TT resume info after menu resume is executed. 
		(20060220,ishan) */
	/* (Fix the bug) "Species" TT play -> Root menu -> Setup open/close[Or R.Stop -> R.Play] 
				-> select "Play", then it goes to stop state because there's no resume info for TT. */
	DvdResumeInfo_t	resume_tt_info;	
#endif
	DvdResumeInfo_t resume_info_repeat_a;	/* 20050805, ishan */	
	Pgcn_t		pgcn;	/* current PGCN regardless of the current domain */
						/* (Caution) SPRM[6] is PGCN for only DVD_DOM_TT */
	Pgcn_t		first_pgcn;	/* First PGCN of the PGC Block */
							/* If current PGC is not in PGC Block, 
							   first_pgcn is same as pgcn */

	Cn_t		entry_cn_play;
	Cn_t		entry_cn_read;
	Pgn_t		pgn_play;
	Pgn_t		pgn_read;
	BYTE1		angle_ns;
	PlaybackTime_t	pb_time;
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -