📄 dvdv_nv_data.h
字号:
* VTS Tmapt_t Timemap Table
********************************************
*/
typedef struct {
BYTE2 Tmap_Ns;
// BYTE2 Reserved;
BYTE4 Tmapt_Ea;
} Tmapt_t;
/*******************************************
* Cell Piece Information.
********************************************
*/
typedef struct {
BYTE2 Vob_Idn;
BYTE1 C_Idn;
// BYTE1 Reserved;
BYTE4 Cp_Sa;
BYTE4 Cp_Ea;
} Cpi_t;
/*******************************************
* Cell Adr Table
********************************************
*/
typedef struct {
BYTE2 Vob_Ns;
// BYTE2 Reserved;
BYTE4 C_Adt_Ea;
// Cpi_t *Cpi;
} C_Adt_t;
/*******************************************
* VOBU ADMAP.
********************************************
*/
typedef struct {
BYTE4 Vobu_Admap_Ea;
BYTE4 *Vobu_Sa;
} Vobu_Admap_t;
/*******************************************
* VMGI 包访 structure.
********************************************
*/
/*******************************************
* VMGI Management Table
********************************************
*/
typedef struct {
/* aligned data (64 bytes) */
BYTE1 Vmg_Id[12];//VMG Identifier. "DVDVIDEO-VMG" with character set code of ISO646(a-character)
BYTE4 Vmg_Ea;//end address of VMG with RLBN from 1st LB of this VMG.
#ifdef _DVD_DIRECT_COPY
BYTE1 reserved1[12];
#endif
BYTE4 Vmgi_Ea;//end address of VMGI with RLBN from 1st LB of this VMG.
BYTE1 Vern[2];//Vern[1]Version Number of Video spec.
#ifdef _DVD_DIRECT_COPY
BYTE1 reserved2;
#endif
BYTE1 Vmg_Cat;//Vmg_Cat[1]:region management of every VOBS in VMG and VTS under VIDEO_TS directory.
#ifdef _DVD_DIRECT_COPY
BYTE2 reserved3;
#endif
BYTE2 NumberOfVolumes;
BYTE2 VolumeNumber;
BYTE1 DiscSideId;
#ifdef _DVD_DIRECT_COPY
BYTE1 reserved5; /* for 4 bytes alignment */
BYTE1 reserved6[18];
#endif
#ifdef _DVD_DIRECT_COPY
BYTE1 reserved7;
#endif
BYTE1 Vts_Ns;//number of Video Title Set under VIDEO_TS directory. '1'~'99'
/* aligned data, but too small */
BYTE4 Vmgi_Mat_Ea;//end address of Vmgi_Mat_t with RBN from 1st byte of this Vmgi_Mat_t.
BYTE4 Fp_Pgci_Sa;//start address of FP_PGCI with RBN from 1st byte of this Vmgi_Mat_t.
/* aligned data */
BYTE4 Vmgm_Vobs_Sa;//start address of VMGM_VOBS_SA with RLBN from 1st LB of this VMG.
BYTE4 Tt_Srpt_Sa;//start address of TT_SRPT_SA with RLBN from 1st LB of this VMGI.
BYTE4 Vmgm_Pgci_Ut_Sa;//start address of VMGM_PGCI_UT_SA with RLBN from 1st LB of this VMGI.
BYTE4 Ptl_Mait_Sa;//start address of Ptl_Mait_t with RLBN from 1st LB of this VMGI.
BYTE4 Vts_Atrt_Sa;//start address of Vts_Atrt_t with RLBN from 1st LB of this VMGI.
BYTE4 Txtdt_Mg_Sa;//start address of Txtdt_Mg_t with RLBN from 1st LB of this VMGI.
BYTE4 Vmgm_C_Adt_Sa;// start address of VMGM_C_ADT with RLBN from 1st LB of this VMGI.
BYTE4 Vmgm_Vobu_Admap_Sa;//start address of VMGM_VOBU_ADMAP with RLBN from 1st LB of this VMGI.
/* aligned data */
V_Atr_t Vmgm_V_Atr;//Video attribute of VMGM_VOBS.
#ifdef _DVD_DIRECT_COPY
BYTE1 reserved8;
#endif
BYTE1 Vmgm_Ast_Ns;//number of Audio stream for VMGM_VOBS.
Ast_Atr_t Vmgm_Ast_Atr;//Audio stream attribute for VMGM_VOBS.
/* unaligned data */
#ifdef _DVD_DIRECT_COPY
BYTE1 reserved9;
#endif
BYTE1 Vmgm_Spst_Ns;
#ifdef _DVD_DIRECT_COPY
BYTE1 Vmgm_Spst_Atr[6];
#else
Spst_Atr_t Vmgm_Spst_Atr;//Sub-picture stream attribute for VMGM_VOBS.
#endif
} Vmgi_Mat_t;
/*******************************************
* Playback Type.
********************************************
*/
typedef struct {
BYTE4 reserved : 1;
BYTE4 Tt_Ty : 1;//0b:One_Sequential_PGC_Title, 1b:One_Random_PGC_Title or Multi_PGC_Title.
BYTE4 Ljc_In_C_Btn_Cmd : 1;//0b:No Link/Jump/Call instruction exists in Cell, Button cmd. 1b:exist.
BYTE4 Jc_In_C_Btn_Pre_Post_Cmd: 1;//0b:No Jump/Call instruction exists in Cell, Button, Pre-cmd, Post-cmd . 1b:exist.
BYTE4 Ljc_In_Btn_Cmd : 1;//0b:No Link/Jump/Call instruction exists in Buttion Command, 1b:exist.
BYTE4 Ljc_In_Tt_Dom : 1;//0b:No Link/Jump/Call instruction exists in the TT_DOM, 1b:exist.
BYTE4 Uop1 : 1;//0b:PTT_Play(), PTT_Search() permitted, 1b:prohibited.
BYTE4 Uop0 : 1;//0b:Time_Play(), Time_Search() permitted, 1b:prohibited.
} Pb_Ty_t;
/*******************************************
* Title Search Pointer.
********************************************
*/
typedef struct {
BYTE1 Tt_Pb_Ty;//Title Playback Information.
BYTE1 Agl_Ns;//number of Angles in the Angle Block in this Title '1'~'9'.
BYTE2 Ptt_Ns;//number of Part_of_Titles(PTT) in the Title.
//if Tt_Ty = 0b, '1'~'99', else if Tt_Ty = 1b, '1'~'999'.
BYTE2 Tt_Ptl_Id_Fld;//Parental_ID_Field of the Title.
//1000 0000 0000 0000 : Adult(level 7,8),
//0100 0000 0000 0000 : Theatrical(level 2~6),
//0010 0000 0000 0000 : Kids Safe.(level 1).
BYTE1 Vtsn;//VTS number ranging '1'~'99' which indicates the VTS in which this Title is included.
BYTE1 Vts_Ttn;//VTS Title number which is used to access the corresponding TTU in the Vts_Ptt_Srpt_t of the VTS which is indicated with VTSN.
BYTE4 Vts_Sa;//start address of the VTS which is indicated with VTSN with RLBN form 1st LB of this VMG.
} Tt_Srp_t;
/*******************************************
* Title Search Pointer Table.
********************************************
*/
typedef struct {
BYTE2 Tt_Srp_Ns;
//BYTE2 Reserved;
BYTE4 Tt_Srpt_Ea;
//Tt_Srp_t *Tt_Srp;
} Tt_Srpt_t;
/*******************************************
* Parental Management Information.
********************************************
*/
typedef struct {
BYTE2 Ptl_Id_Fld_Vmg;
// BYTE2 *Ptl_Id_Fld_Vtsn;
} Ptl_Lvli_t;
typedef struct {
Ptl_Lvli_t *Ptl_Lvli[8];
} Ptl_Mai_t;
/*******************************************
* Parental Management Information Search Pointer.
********************************************
*/
typedef struct {
BYTE2 Cty_Cd;//Country Code of corresponding Ptl_Mai_t.
BYTE2 Ptl_Mai_Sa;//start address of corresponding Ptl_Mai_t with RBN from 1st byte of this Ptl_Mait_t.
BYTE2 Ptl_Id_Fld;
} Ptl_Mai_Srp_t;
/*******************************************
* Parental Management Table.
********************************************
*/
typedef struct {
BYTE2 Cty_Ns;//the number of PTL_MAIs.'1'~'255'.
#ifdef _DVD_DIRECT_COPY
BYTE1 Reserved;
#endif
BYTE1 Vts_Ns;//number of video title sets. '1'~'99'.
BYTE4 Ptl_Mait_Ea;//end address of Ptl_Mait_t with RBN from 1st byte of Ptl_Mait_t.
Ptl_Mai_Srp_t Ptl_Mai_Srp;
} Ptl_Mait_t;
/*******************************************
* Multi Audio stream atrribute.... not defined.... -_-
********************************************
*/
typedef struct {
BYTE1 Vts_Mu_Ast_Atr[24];
} Vts_Mu_Ast_Atr_t;
/*******************************************
* Vts_Atr_t
********************************************
*/
typedef struct {
BYTE4 Vts_Atr_Ea;
BYTE4 Vts_Cat;
V_Atr_t Vtsm_V_Atr;
BYTE2 Vtsm_Ast_Ns;
Ast_Atr_t Vtsm_Ast_Atr;
// BYTE1 Reserved1[72];
BYTE2 Vtsm_Spst_Ns;
Spst_Atr_t Vtsm_Spst_Atr;
// BYTE1 Reserved2[164];
V_Atr_t Vts_V_Atr;
BYTE2 Vts_Ast_Ns;
Ast_Atr_t Vts_Ast_Atr[8];
// BYTE1 Reserved3[16];
BYTE2 Vts_Spst_Ns;
Spst_Atr_t Vts_Spst_Atr[32];
// BYTE1 Reserved4[2];
Vts_Mu_Ast_Atr_t Vts_Mu_Ast_Atr[8];
} Vts_Atr_t;
/*******************************************
* VTS Attribute Table.
********************************************
*/
typedef struct {
BYTE4 Vts_Atr_Sa;
// Vts_Atr_t *Vts_Atr;
} Vts_Atr_Srp_t;
/*******************************************
* VTS Attribute Table.
********************************************
*/
typedef struct {
BYTE2 Vts_Ns;
// BYTE2 Reserved;
BYTE4 Vts_Atrt_Ea;
// Vts_Atr_Srp_t *Vts_Atr_Srp;
} Vts_Atrt_t;
#if 0
/*******************************************
* Item Text Search Pointer.
********************************************
*/
typedef struct {
BYTE1 It_Txt_Idcd;
// BYTE1 Reserved;
BYTE2 It_Txt_Sa;
BYTE1 *It_Txt;
}It_Txt_Srp_t;
/*******************************************
* Text Data
********************************************
*/
typedef struct {
BYTE2 It_Txt_Srp_Ns;
// BYTE2 Reserved1;
It_Txt_Srp_t *It_Txt_Srp;
} Txtdt_t;
/*******************************************
* Text Data Language Unit.
********************************************
*/
typedef struct {
// BYTE2 Reserved;
BYTE2 Txtdt_Lu_Ea;
BYTE2 It_Txt_Srp_Srp_VLM;
BYTE2 *It_Txt_Srp_Srp_TT;
Txtdt_t *Txtdt;
} Txtdt_Lu_t;
/*******************************************
* Text Data Language Unit Search Pointer.
********************************************
*/
typedef struct {
BYTE2 Txtdt_Lcd;
// BYTE1 Reserved;
BYTE1 Chrs;
BYTE4 Txtdt_Lu_Sa;
Txtdt_Lu_t *Txtdt_Lu;
} Txtdt_Lu_Srp_t;
/*******************************************
* Text Data Manager.
********************************************
*/
typedef struct {
BYTE1 Txtdt_Id[12];
// BYTE2 Reserved;
BYTE2 Txtdt_Lu_Ns;
BYTE4 Txtdt_Mg_Ea;
Txtdt_Lu_Srp_t *Txtdt_Lu_Srp;
} Txtdt_Mg_t;
#endif
/*******************************************
* Video Title Set 包访.
********************************************
*/
/*******************************************
* Video Title Set Information Management Table.
********************************************
*/
#ifdef _DVD_DIRECT_COPY
typedef struct {
/* aligned data */
BYTE1 Vts_Id[12];//describes "DVDVIDEO-VTS" to identify VTSI's File with character set code of ISO646.
BYTE4 Vts_Ea;//end address of VTS with RLBN from the 1st LB of this VTS.
BYTE1 reserved1[12];
BYTE4 Vtsi_Ea;//end address of VTSI with RLBN from the 1st LB of this VTSI.
BYTE1 Vern[2];//0001 0000b : ver 1.0
BYTE2 reserved2;
BYTE1 reserved3;
BYTE1 Vts_Cat;
/* Unaligned data */
BYTE4 Vtsi_Mat_Ea;//end address of Vtsi_Mat_t with RBN from 1st byte of this Vtsi_Mat_t.
/* aligned data */
BYTE4 Vtsm_Vobs_Sa;//start address of VTSM_VOBS with RLBN from 1st byte of this VTS.
BYTE4 Vtstt_Vobs_Sa;//start address of VTSTT_VOBS with RLBN from 1st byte of this VTS.
BYTE4 Vts_Ptt_Srpt_Sa;//start address of Vts_Ptt_Srpt_t with RLBN from 1st LB of this VTSI.
BYTE4 Vts_Pgcit_Sa;//start address of VTS_PGCIT with RLBN from 1st LB of this VTSI.
BYTE4 Vtsm_Pgci_Ut_Sa;//start address of VTS_PGCI_UT with RLBN from 1st LB of this VTSI.
BYTE4 Vts_Tmapt_Sa;//start address of Vts_Tmapt_t with RLBN from 1st LB of this VTSI.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -