📄 dvd_prv_types.h
字号:
/****************************************************************************
* 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 + -