annotate dvdread/nav_types.h @ 20981:22cb9d5f1e21

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