annotate nav_types.h @ 118:48ba92648842 src

current versions of libdvdread use a nav_types.h we cannot use any more, because the structures differ from what is actually on the disc -> provide a private copy
author mroi
date Thu, 06 Mar 2003 22:43:52 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
118
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
1 #ifndef NAV_TYPES_H_INCLUDED
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
2 #define NAV_TYPES_H_INCLUDED
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
3
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
4 /*
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
5 * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
6 *
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
7 * The data structures in this file should represent the layout of the
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
8 * pci and dsi packets as they are stored in the stream. Information
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
9 * found by reading the source to VOBDUMP is the base for the structure
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
10 * and names of these data types.
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
11 *
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
12 * VOBDUMP: a program for examining DVD .VOB files.
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
13 * Copyright 1998, 1999 Eric Smith <eric@brouhaha.com>
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
14 *
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
15 * VOBDUMP is free software; you can redistribute it and/or modify it
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
16 * under the terms of the GNU General Public License version 2 as
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
17 * published by the Free Software Foundation. Note that I am not
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
18 * granting permission to redistribute or modify VOBDUMP under the terms
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
19 * of any later version of the General Public License.
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
20 *
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
21 * This program is distributed in the hope that it will be useful (or at
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
22 * least amusing), but WITHOUT ANY WARRANTY; without even the implied
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
23 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
24 * the GNU General Public License for more details.
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
25 *
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
26 * You should have received a copy of the GNU General Public License
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
27 * along with this program; if not, write to the Free Software
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
28 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
29 * USA
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
30 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
31
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
32 #include <inttypes.h>
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
33 #include <dvdread/ifo_types.h> /* only dvd_time_t, vm_cmd_t and user_ops_t */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
34
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
35
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
36 #undef ATTRIBUTE_PACKED
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
37 #undef PRAGMA_PACK_BEGIN
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
38 #undef PRAGMA_PACK_END
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
39
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
40 #if defined(__GNUC__)
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
41 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
42 #define ATTRIBUTE_PACKED __attribute__ ((packed))
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
43 #define PRAGMA_PACK 0
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
44 #endif
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
45 #endif
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
46
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
47 #if !defined(ATTRIBUTE_PACKED)
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
48 #define ATTRIBUTE_PACKED
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
49 #define PRAGMA_PACK 1
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
50 #endif
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
51
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
52
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
53 /* The length including the substream id byte. */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
54 #define PCI_BYTES 0x3d4
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
55 #define DSI_BYTES 0x3fa
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
56
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
57 #define PS2_PCI_SUBSTREAM_ID 0x00
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
58 #define PS2_DSI_SUBSTREAM_ID 0x01
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
59
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
60 /* Remove this */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
61 #define DSI_START_BYTE 1031
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
62
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
63
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
64 #if PRAGMA_PACK
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
65 #pragma pack(1)
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
66 #endif
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
67
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
68
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
69 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
70 * PCI General Information
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
71 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
72 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
73 uint32_t nv_pck_lbn; /**< sector address of this nav pack */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
74 uint16_t vobu_cat; /**< 'category' of vobu */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
75 uint16_t zero1; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
76 user_ops_t vobu_uop_ctl; /**< UOP of vobu */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
77 uint32_t vobu_s_ptm; /**< start presentation time of vobu */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
78 uint32_t vobu_e_ptm; /**< end presentation time of vobu */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
79 uint32_t vobu_se_e_ptm; /**< end ptm of sequence end in vobu */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
80 dvd_time_t e_eltm; /**< Cell elapsed time */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
81 char vobu_isrc[32];
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
82 } ATTRIBUTE_PACKED pci_gi_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
83
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
84 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
85 * Non Seamless Angle Information
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
86 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
87 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
88 uint32_t nsml_agl_dsta[9]; /**< address of destination vobu in AGL_C#n */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
89 } ATTRIBUTE_PACKED nsml_agli_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
90
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
91 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
92 * Highlight General Information
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
93 *
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
94 * For btngrX_dsp_ty the bits have the following meaning:
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
95 * 000b: normal 4/3 only buttons
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
96 * XX1b: wide (16/9) buttons
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
97 * X1Xb: letterbox buttons
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
98 * 1XXb: pan&scan buttons
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
99 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
100 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
101 uint16_t hli_ss; /**< status, only low 2 bits 0: no buttons, 1: different 2: equal 3: eual except for button cmds */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
102 uint32_t hli_s_ptm; /**< start ptm of hli */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
103 uint32_t hli_e_ptm; /**< end ptm of hli */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
104 uint32_t btn_se_e_ptm; /**< end ptm of button select */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
105 #ifdef WORDS_BIGENDIAN
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
106 unsigned int zero1 : 2; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
107 unsigned int btngr_ns : 2; /**< number of button groups 1, 2 or 3 with 36/18/12 buttons */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
108 unsigned int zero2 : 1; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
109 unsigned int btngr1_dsp_ty : 3; /**< display type of subpic stream for button group 1 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
110 unsigned int zero3 : 1; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
111 unsigned int btngr2_dsp_ty : 3; /**< display type of subpic stream for button group 2 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
112 unsigned int zero4 : 1; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
113 unsigned int btngr3_dsp_ty : 3; /**< display type of subpic stream for button group 3 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
114 #else
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
115 unsigned int btngr1_dsp_ty : 3;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
116 unsigned int zero2 : 1;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
117 unsigned int btngr_ns : 2;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
118 unsigned int zero1 : 2;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
119 unsigned int btngr3_dsp_ty : 3;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
120 unsigned int zero4 : 1;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
121 unsigned int btngr2_dsp_ty : 3;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
122 unsigned int zero3 : 1;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
123 #endif
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
124 uint8_t btn_ofn; /**< button offset number range 0-255 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
125 uint8_t btn_ns; /**< number of valid buttons <= 36/18/12 (low 6 bits) */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
126 uint8_t nsl_btn_ns; /**< number of buttons selectable by U_BTNNi (low 6 bits) nsl_btn_ns <= btn_ns */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
127 uint8_t zero5; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
128 uint8_t fosl_btnn; /**< forcedly selected button (low 6 bits) */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
129 uint8_t foac_btnn; /**< forcedly activated button (low 6 bits) */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
130 } ATTRIBUTE_PACKED hl_gi_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
131
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
132
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
133 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
134 * Button Color Information Table
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
135 * Each entry beeing a 32bit word that contains the color indexs and alpha
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
136 * values to use. They are all represented by 4 bit number and stored
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
137 * like this [Ci3, Ci2, Ci1, Ci0, A3, A2, A1, A0]. The actual palette
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
138 * that the indexes reference is in the PGC.
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
139 * @TODO split the uint32_t into a struct
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
140 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
141 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
142 uint32_t btn_coli[3][2]; /**< [button color number-1][select:0/action:1] */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
143 } ATTRIBUTE_PACKED btn_colit_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
144
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
145 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
146 * Button Information
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
147 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
148 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
149 #ifdef WORDS_BIGENDIAN
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
150 unsigned int btn_coln : 2; /**< button color number */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
151 unsigned int x_start : 10; /**< x start offset within the overlay */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
152 unsigned int zero1 : 2; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
153 unsigned int x_end : 10; /**< x end offset within the overlay */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
154
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
155 unsigned int auto_action_mode : 2; /**< 0: no, 1: activated if selected */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
156 unsigned int y_start : 10; /**< y start offset within the overlay */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
157 unsigned int zero2 : 2; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
158 unsigned int y_end : 10; /**< y end offset within the overlay */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
159
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
160 unsigned int zero3 : 2; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
161 unsigned int up : 6; /**< button index when pressing up */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
162 unsigned int zero4 : 2; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
163 unsigned int down : 6; /**< button index when pressing down */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
164 unsigned int zero5 : 2; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
165 unsigned int left : 6; /**< button index when pressing left */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
166 unsigned int zero6 : 2; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
167 unsigned int right : 6; /**< button index when pressing right */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
168 #else
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
169 unsigned int x_end : 10;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
170 unsigned int zero1 : 2;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
171 unsigned int x_start : 10;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
172 unsigned int btn_coln : 2;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
173
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
174 unsigned int y_end : 10;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
175 unsigned int zero2 : 2;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
176 unsigned int y_start : 10;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
177 unsigned int auto_action_mode : 2;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
178
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
179 unsigned int up : 6;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
180 unsigned int zero3 : 2;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
181 unsigned int down : 6;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
182 unsigned int zero4 : 2;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
183 unsigned int left : 6;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
184 unsigned int zero5 : 2;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
185 unsigned int right : 6;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
186 unsigned int zero6 : 2;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
187 #endif
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
188 vm_cmd_t cmd;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
189 } ATTRIBUTE_PACKED btni_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
190
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
191 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
192 * Highlight Information
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
193 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
194 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
195 hl_gi_t hl_gi;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
196 btn_colit_t btn_colit;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
197 btni_t btnit[36];
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
198 } ATTRIBUTE_PACKED hli_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
199
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
200 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
201 * PCI packet
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
202 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
203 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
204 pci_gi_t pci_gi;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
205 nsml_agli_t nsml_agli;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
206 hli_t hli;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
207 uint8_t zero1[189];
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
208 } ATTRIBUTE_PACKED pci_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
209
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
210
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
211
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
212
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
213 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
214 * DSI General Information
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
215 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
216 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
217 uint32_t nv_pck_scr;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
218 uint32_t nv_pck_lbn; /**< sector address of this nav pack */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
219 uint32_t vobu_ea; /**< end address of this VOBU */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
220 uint32_t vobu_1stref_ea; /**< end address of the 1st reference image */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
221 uint32_t vobu_2ndref_ea; /**< end address of the 2nd reference image */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
222 uint32_t vobu_3rdref_ea; /**< end address of the 3rd reference image */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
223 uint16_t vobu_vob_idn; /**< VOB Id number that this VOBU is part of */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
224 uint8_t zero1; /**< reserved */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
225 uint8_t vobu_c_idn; /**< Cell Id number that this VOBU is part of */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
226 dvd_time_t c_eltm; /**< Cell elapsed time */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
227 } ATTRIBUTE_PACKED dsi_gi_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
228
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
229 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
230 * Seamless Playback Information
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
231 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
232 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
233 uint16_t category; /**< 'category' of seamless VOBU */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
234 uint32_t ilvu_ea; /**< end address of interleaved Unit */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
235 uint32_t ilvu_sa; /**< start address of next interleaved unit */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
236 uint16_t size; /**< size of next interleaved unit */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
237 uint32_t vob_v_s_s_ptm; /**< video start ptm in vob */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
238 uint32_t vob_v_e_e_ptm; /**< video end ptm in vob */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
239 struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
240 uint32_t stp_ptm1;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
241 uint32_t stp_ptm2;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
242 uint32_t gap_len1;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
243 uint32_t gap_len2;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
244 } vob_a[8];
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
245 } ATTRIBUTE_PACKED sml_pbi_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
246
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
247 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
248 * Seamless Angle Infromation for one angle
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
249 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
250 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
251 uint32_t address; /**< offset to next ILVU, high bit is before/after */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
252 uint16_t size; /**< byte size of the ILVU pointed to by address */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
253 } ATTRIBUTE_PACKED sml_agl_data_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
254
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
255 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
256 * Seamless Angle Infromation
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
257 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
258 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
259 sml_agl_data_t data[9];
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
260 } ATTRIBUTE_PACKED sml_agli_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
261
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
262 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
263 * VOBU Search Information
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
264 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
265 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
266 uint32_t next_video; /**< Next vobu that contains video */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
267 uint32_t fwda[19]; /**< Forwards, time */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
268 uint32_t next_vobu;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
269 uint32_t prev_vobu;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
270 uint32_t bwda[19]; /**< Backwards, time */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
271 uint32_t prev_video;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
272 } ATTRIBUTE_PACKED vobu_sri_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
273
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
274 #define SRI_END_OF_CELL 0x3fffffff
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
275
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
276 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
277 * Synchronous Information
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
278 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
279 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
280 uint16_t a_synca[8]; /**< offset to first audio packet for this VOBU */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
281 uint32_t sp_synca[32]; /**< offset to first subpicture packet */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
282 } ATTRIBUTE_PACKED synci_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
283
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
284 /**
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
285 * DSI packet
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
286 */
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
287 typedef struct {
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
288 dsi_gi_t dsi_gi;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
289 sml_pbi_t sml_pbi;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
290 sml_agli_t sml_agli;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
291 vobu_sri_t vobu_sri;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
292 synci_t synci;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
293 uint8_t zero1[471];
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
294 } ATTRIBUTE_PACKED dsi_t;
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
295
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
296
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
297 #if PRAGMA_PACK
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
298 #pragma pack()
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
299 #endif
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
300
48ba92648842 current versions of libdvdread use a nav_types.h we cannot use any more, because the
mroi
parents:
diff changeset
301 #endif /* NAV_TYPES_H_INCLUDED */