annotate dvdread/nav_types.h @ 22697:2fe9bd97a7f6

Fix configure -march detection for athlon-xp The configure script uses SSE support to distinguish between athlon and athlon-xp, but SSE support was tested _after_ deciding the basic CPU type. Thus athlon-xp was always misdetected as athlon. Fix this by moving the CPU extensions check before the CPU type check. Patch from Andrew Savchenko, bircoph list ru.
author uau
date Sun, 18 Mar 2007 13:38:55 +0000
parents 4da452b25fd5
children de28f9e8cb00
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 *
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
7 * The data structures in this file should represent the layout of the
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
8 * pci and dsi packets as they are stored in the stream. Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
9 * found by reading the source to VOBDUMP is the base for the structure
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
10 * and names of these data types.
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
11 *
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
12 * VOBDUMP: a program for examining DVD .VOB files.
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
13 * Copyright 1998, 1999 Eric Smith <eric@brouhaha.com>
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
14 *
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
15 * VOBDUMP is free software; you can redistribute it and/or modify it
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
16 * under the terms of the GNU General Public License version 2 as
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
17 * published by the Free Software Foundation. Note that I am not
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
18 * granting permission to redistribute or modify VOBDUMP under the terms
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
19 * of any later version of the General Public License.
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
20 *
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
21 * 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
22 * least amusing), but WITHOUT ANY WARRANTY; without even the implied
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
23 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
24 * the GNU General Public License for more details.
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
25 *
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
26 * You should have received a copy of the GNU General Public License
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
27 * along with this program; if not, write to the Free Software
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
28 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
29 * USA
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
30 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
31
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
32 #include <inttypes.h>
20983
4da452b25fd5 Drop some unnecessary local changes.
diego
parents: 20981
diff changeset
33 #include <dvdread/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
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 #undef ATTRIBUTE_PACKED
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
37 #undef PRAGMA_PACK_BEGIN
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
38 #undef PRAGMA_PACK_END
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
39
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
40 #if defined(__GNUC__)
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
41 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
42 #define ATTRIBUTE_PACKED __attribute__ ((packed))
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
43 #define PRAGMA_PACK 0
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
44 #endif
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
45 #endif
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
46
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
47 #if !defined(ATTRIBUTE_PACKED)
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
48 #define ATTRIBUTE_PACKED
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
49 #define PRAGMA_PACK 1
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
50 #endif
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
51
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
52
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
53 /* The length including the substream id byte. */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
54 #define PCI_BYTES 0x3d4
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
55 #define DSI_BYTES 0x3fa
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
56
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
57 #define PS2_PCI_SUBSTREAM_ID 0x00
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
58 #define PS2_DSI_SUBSTREAM_ID 0x01
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
59
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
60 /* Remove this */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
61 #define DSI_START_BYTE 1031
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
62
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
63
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
64 #if PRAGMA_PACK
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
65 #pragma pack(1)
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
66 #endif
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
67
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
68
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
69 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
70 * PCI General Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
71 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
72 typedef struct {
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
73 uint32_t nv_pck_lbn; /**< sector address of this nav pack */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
74 uint16_t vobu_cat; /**< 'category' of vobu */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
75 uint16_t zero1; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
76 user_ops_t vobu_uop_ctl; /**< UOP of vobu */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
77 uint32_t vobu_s_ptm; /**< start presentation time of vobu */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
78 uint32_t vobu_e_ptm; /**< end presentation time of vobu */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
79 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
80 dvd_time_t e_eltm; /**< Cell elapsed time */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
81 char vobu_isrc[32];
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
82 } ATTRIBUTE_PACKED pci_gi_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
83
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
84 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
85 * Non Seamless Angle Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
86 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
87 typedef struct {
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
88 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
89 } ATTRIBUTE_PACKED nsml_agli_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
90
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
91 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
92 * Highlight General Information
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
93 *
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
94 * For btngrX_dsp_ty the bits have the following meaning:
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
95 * 000b: normal 4/3 only buttons
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
96 * XX1b: wide (16/9) buttons
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
97 * X1Xb: letterbox buttons
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
98 * 1XXb: pan&scan buttons
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
99 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
100 typedef struct {
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
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 */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
102 uint32_t hli_s_ptm; /**< start ptm of hli */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
103 uint32_t hli_e_ptm; /**< end ptm of hli */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
104 uint32_t btn_se_e_ptm; /**< end ptm of button select */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
105 #ifdef WORDS_BIGENDIAN
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
106 unsigned int zero1 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
107 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
108 unsigned int zero2 : 1; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
109 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
110 unsigned int zero3 : 1; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
111 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
112 unsigned int zero4 : 1; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
113 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
114 #else
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
115 unsigned int btngr1_dsp_ty : 3;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
116 unsigned int zero2 : 1;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
117 unsigned int btngr_ns : 2;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
118 unsigned int zero1 : 2;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
119 unsigned int btngr3_dsp_ty : 3;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
120 unsigned int zero4 : 1;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
121 unsigned int btngr2_dsp_ty : 3;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
122 unsigned int zero3 : 1;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
123 #endif
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
124 uint8_t btn_ofn; /**< button offset number range 0-255 */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
125 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
126 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
127 uint8_t zero5; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
128 uint8_t fosl_btnn; /**< forcedly selected button (low 6 bits) */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
129 uint8_t foac_btnn; /**< forcedly activated button (low 6 bits) */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
130 } ATTRIBUTE_PACKED hl_gi_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
131
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
132
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
133 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
134 * Button Color Information Table
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
135 * 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
136 * 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
137 * 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
138 * that the indexes reference is in the PGC.
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
139 * @TODO split the uint32_t into a struct
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
140 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
141 typedef struct {
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
142 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
143 } ATTRIBUTE_PACKED btn_colit_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
144
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
145 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
146 * Button Information
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
147 *
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
148 * 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
149 * the packing to work with Sun's Forte C compiler.
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
150 * 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
151 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
152 typedef struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
153 #ifdef WORDS_BIGENDIAN
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
154 unsigned int btn_coln : 2; /**< button color number */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
155 unsigned int x_start : 10; /**< x start offset within the overlay */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
156 unsigned int zero1 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
157 unsigned int x_end : 10; /**< x end offset within the overlay */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
158
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
159 unsigned int zero3 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
160 unsigned int up : 6; /**< button index when pressing up */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
161
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
162 unsigned int auto_action_mode : 2; /**< 0: no, 1: activated if selected */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
163 unsigned int y_start : 10; /**< y start offset within the overlay */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
164 unsigned int zero2 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
165 unsigned int y_end : 10; /**< y end offset within the overlay */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
166
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
167 unsigned int zero4 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
168 unsigned int down : 6; /**< button index when pressing down */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
169 unsigned int zero5 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
170 unsigned int left : 6; /**< button index when pressing left */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
171 unsigned int zero6 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
172 unsigned int right : 6; /**< button index when pressing right */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
173 #else
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
174 unsigned int x_end : 10;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
175 unsigned int zero1 : 2;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
176 unsigned int x_start : 10;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
177 unsigned int btn_coln : 2;
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
178
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
179 unsigned int up : 6;
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
180 unsigned int zero3 : 2;
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
181
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
182 unsigned int y_end : 10;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
183 unsigned int zero2 : 2;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
184 unsigned int y_start : 10;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
185 unsigned int auto_action_mode : 2;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
186
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
187 unsigned int down : 6;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
188 unsigned int zero4 : 2;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
189 unsigned int left : 6;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
190 unsigned int zero5 : 2;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
191 unsigned int right : 6;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
192 unsigned int zero6 : 2;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
193 #endif
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
194 vm_cmd_t cmd;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
195 } ATTRIBUTE_PACKED btni_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
196
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
197 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
198 * Highlight Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
199 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
200 typedef struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
201 hl_gi_t hl_gi;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
202 btn_colit_t btn_colit;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
203 btni_t btnit[36];
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
204 } ATTRIBUTE_PACKED hli_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
205
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
206 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
207 * PCI packet
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
208 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
209 typedef struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
210 pci_gi_t pci_gi;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
211 nsml_agli_t nsml_agli;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
212 hli_t hli;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
213 uint8_t zero1[189];
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
214 } ATTRIBUTE_PACKED pci_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
215
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
216
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
217
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
218
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
219 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
220 * DSI General Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
221 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
222 typedef struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
223 uint32_t nv_pck_scr;
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
224 uint32_t nv_pck_lbn; /**< sector address of this nav pack */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
225 uint32_t vobu_ea; /**< end address of this VOBU */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
226 uint32_t vobu_1stref_ea; /**< end address of the 1st reference image */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
227 uint32_t vobu_2ndref_ea; /**< end address of the 2nd reference image */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
228 uint32_t vobu_3rdref_ea; /**< end address of the 3rd reference image */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
229 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
230 uint8_t zero1; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
231 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
232 dvd_time_t c_eltm; /**< Cell elapsed time */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
233 } ATTRIBUTE_PACKED dsi_gi_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
234
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
235 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
236 * Seamless Playback Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
237 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
238 typedef struct {
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
239 uint16_t category; /**< 'category' of seamless VOBU */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
240 uint32_t ilvu_ea; /**< end address of interleaved Unit */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
241 uint32_t ilvu_sa; /**< start address of next interleaved unit */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
242 uint16_t size; /**< size of next interleaved unit */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
243 uint32_t vob_v_s_s_ptm; /**< video start ptm in vob */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
244 uint32_t vob_v_e_e_ptm; /**< video end ptm in vob */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
245 struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
246 uint32_t stp_ptm1;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
247 uint32_t stp_ptm2;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
248 uint32_t gap_len1;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
249 uint32_t gap_len2;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
250 } vob_a[8];
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
251 } ATTRIBUTE_PACKED sml_pbi_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
252
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
253 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
254 * Seamless Angle Infromation for one angle
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
255 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
256 typedef struct {
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
257 uint32_t address; /**< offset to next ILVU, high bit is before/after */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
258 uint16_t size; /**< byte size of the ILVU pointed to by address */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
259 } ATTRIBUTE_PACKED sml_agl_data_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
260
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
261 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
262 * Seamless Angle Infromation
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
263 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
264 typedef struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
265 sml_agl_data_t data[9];
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
266 } ATTRIBUTE_PACKED sml_agli_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
267
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
268 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
269 * VOBU Search Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
270 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
271 typedef struct {
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
272 uint32_t next_video; /**< Next vobu that contains video */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
273 uint32_t fwda[19]; /**< Forwards, time */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
274 uint32_t next_vobu;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
275 uint32_t prev_vobu;
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
276 uint32_t bwda[19]; /**< Backwards, time */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
277 uint32_t prev_video;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
278 } ATTRIBUTE_PACKED vobu_sri_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
279
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
280 #define SRI_END_OF_CELL 0x3fffffff
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
281
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
282 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
283 * Synchronous Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
284 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
285 typedef struct {
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
286 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
287 uint32_t sp_synca[32]; /**< offset to first subpicture packet */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
288 } ATTRIBUTE_PACKED synci_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
289
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
290 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
291 * DSI packet
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
292 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
293 typedef struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
294 dsi_gi_t dsi_gi;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
295 sml_pbi_t sml_pbi;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
296 sml_agli_t sml_agli;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
297 vobu_sri_t vobu_sri;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
298 synci_t synci;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
299 uint8_t zero1[471];
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
300 } ATTRIBUTE_PACKED dsi_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
301
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
302
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
303 #if PRAGMA_PACK
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
304 #pragma pack()
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
305 #endif
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
306
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
307 #endif /* NAV_TYPES_H_INCLUDED */