annotate dvdread/nav_types.h @ 25026:afead6ecb8ba

Remove the pause filter and the cmd queue hack, to know the mplayer going to pause by checking mpctx directly. If there's any video update before the pause then capture the frame or fallback to use last captured frame as pausing frame.
author ulion
date Thu, 15 Nov 2007 01:07:56 +0000
parents fc9f44db5fcd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
24050
1542693b2a30 Sync libdvdread with version 0.9.5 (cosmetic changes).
diego
parents: 24047
diff changeset
1 /* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
2 #ifndef NAV_TYPES_H_INCLUDED
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
3 #define NAV_TYPES_H_INCLUDED
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
4
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
5 /*
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
6 * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
7 *
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
8 * The data structures in this file should represent the layout of the
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
9 * pci and dsi packets as they are stored in the stream. Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
10 * found by reading the source to VOBDUMP is the base for the structure
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
11 * and names of these data types.
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
12 *
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
13 * VOBDUMP: a program for examining DVD .VOB files.
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
14 * Copyright 1998, 1999 Eric Smith <eric@brouhaha.com>
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 is free software; you can redistribute it and/or modify it
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
17 * under the terms of the GNU General Public License version 2 as
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
18 * published by the Free Software Foundation. Note that I am not
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
19 * granting permission to redistribute or modify VOBDUMP under the terms
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
20 * of any later version of the General Public License.
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
21 *
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
22 * 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
23 * least amusing), but WITHOUT ANY WARRANTY; without even the implied
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
24 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
25 * the GNU General Public License for more details.
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
26 *
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
27 * You should have received a copy of the GNU General Public License
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
28 * along with this program; if not, write to the Free Software
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
29 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
30 * USA
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
31 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
32
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 */
24047
de28f9e8cb00 Sync libdvdread with version 0.9.5 (functional changes).
diego
parents: 20983
diff changeset
34 /* If it's ever removed add a uintX_t test. */
7029
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 */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
105 unsigned int zero1 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
106 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
107 unsigned int zero2 : 1; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
108 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
109 unsigned int zero3 : 1; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
110 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
111 unsigned int zero4 : 1; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
112 unsigned int btngr3_dsp_ty : 3; /**< display type of subpic stream for button group 3 */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
113 uint8_t btn_ofn; /**< button offset number range 0-255 */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
114 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
115 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
116 uint8_t zero5; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
117 uint8_t fosl_btnn; /**< forcedly selected button (low 6 bits) */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
118 uint8_t foac_btnn; /**< forcedly activated button (low 6 bits) */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
119 } ATTRIBUTE_PACKED hl_gi_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
120
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
121
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
122 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
123 * Button Color Information Table
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
124 * 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
125 * 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
126 * 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
127 * that the indexes reference is in the PGC.
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
128 * @TODO split the uint32_t into a struct
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
129 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
130 typedef struct {
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
131 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
132 } ATTRIBUTE_PACKED btn_colit_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
133
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
134 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
135 * Button Information
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
136 *
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
137 * 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
138 * the packing to work with Sun's Forte C compiler.
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
139 * 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
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 unsigned int btn_coln : 2; /**< button color number */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
143 unsigned int x_start : 10; /**< x start offset within the overlay */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
144 unsigned int zero1 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
145 unsigned int x_end : 10; /**< x end offset within the overlay */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
146
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
147 unsigned int auto_action_mode : 2; /**< 0: no, 1: activated if selected */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
148 unsigned int y_start : 10; /**< y start offset within the overlay */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
149 unsigned int zero2 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
150 unsigned int y_end : 10; /**< y end offset within the overlay */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
151
24088
fc9f44db5fcd reimplemented nav_read_PCI() and nav_read_DSI() using getbits() rather than relying on bitfields layout in memory
nicodvb
parents: 24050
diff changeset
152 unsigned int zero3 : 2; /**< reserved */
fc9f44db5fcd reimplemented nav_read_PCI() and nav_read_DSI() using getbits() rather than relying on bitfields layout in memory
nicodvb
parents: 24050
diff changeset
153 unsigned int up : 6; /**< button index when pressing up */
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
154 unsigned int zero4 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
155 unsigned int down : 6; /**< button index when pressing down */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
156 unsigned int zero5 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
157 unsigned int left : 6; /**< button index when pressing left */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
158 unsigned int zero6 : 2; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
159 unsigned int right : 6; /**< button index when pressing right */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
160 vm_cmd_t cmd;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
161 } ATTRIBUTE_PACKED btni_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
162
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
163 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
164 * Highlight Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
165 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
166 typedef struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
167 hl_gi_t hl_gi;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
168 btn_colit_t btn_colit;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
169 btni_t btnit[36];
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
170 } ATTRIBUTE_PACKED hli_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
171
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
172 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
173 * PCI packet
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
174 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
175 typedef struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
176 pci_gi_t pci_gi;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
177 nsml_agli_t nsml_agli;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
178 hli_t hli;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
179 uint8_t zero1[189];
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
180 } ATTRIBUTE_PACKED pci_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
181
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
182
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
183
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
184
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
185 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
186 * DSI General Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
187 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
188 typedef struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
189 uint32_t nv_pck_scr;
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
190 uint32_t nv_pck_lbn; /**< sector address of this nav pack */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
191 uint32_t vobu_ea; /**< end address of this VOBU */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
192 uint32_t vobu_1stref_ea; /**< end address of the 1st reference image */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
193 uint32_t vobu_2ndref_ea; /**< end address of the 2nd reference image */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
194 uint32_t vobu_3rdref_ea; /**< end address of the 3rd reference image */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
195 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
196 uint8_t zero1; /**< reserved */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
197 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
198 dvd_time_t c_eltm; /**< Cell elapsed time */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
199 } ATTRIBUTE_PACKED dsi_gi_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 * Seamless Playback 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 {
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
205 uint16_t category; /**< 'category' of seamless VOBU */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
206 uint32_t ilvu_ea; /**< end address of interleaved Unit */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
207 uint32_t ilvu_sa; /**< start address of next interleaved unit */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
208 uint16_t size; /**< size of next interleaved unit */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
209 uint32_t vob_v_s_s_ptm; /**< video start ptm in vob */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
210 uint32_t vob_v_e_e_ptm; /**< video end ptm in vob */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
211 struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
212 uint32_t stp_ptm1;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
213 uint32_t stp_ptm2;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
214 uint32_t gap_len1;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
215 uint32_t gap_len2;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
216 } vob_a[8];
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
217 } ATTRIBUTE_PACKED sml_pbi_t;
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 * Seamless Angle Infromation for one angle
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 {
24050
1542693b2a30 Sync libdvdread with version 0.9.5 (cosmetic changes).
diego
parents: 24047
diff changeset
223 uint32_t address; /**< offset to next ILVU, high bit is before/after */
1542693b2a30 Sync libdvdread with version 0.9.5 (cosmetic changes).
diego
parents: 24047
diff changeset
224 uint16_t size; /**< byte size of the ILVU pointed to by address */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
225 } ATTRIBUTE_PACKED sml_agl_data_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
226
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
227 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
228 * Seamless Angle Infromation
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
229 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
230 typedef struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
231 sml_agl_data_t data[9];
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
232 } ATTRIBUTE_PACKED sml_agli_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
233
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
234 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
235 * VOBU Search Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
236 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
237 typedef struct {
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
238 uint32_t next_video; /**< Next vobu that contains video */
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
239 uint32_t fwda[19]; /**< Forwards, time */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
240 uint32_t next_vobu;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
241 uint32_t prev_vobu;
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
242 uint32_t bwda[19]; /**< Backwards, time */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
243 uint32_t prev_video;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
244 } ATTRIBUTE_PACKED vobu_sri_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
245
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
246 #define SRI_END_OF_CELL 0x3fffffff
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
247
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
248 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
249 * Synchronous Information
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
250 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
251 typedef struct {
15874
483e955893b8 update libdvdread to v0.9.4
aurel
parents: 14938
diff changeset
252 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
253 uint32_t sp_synca[32]; /**< offset to first subpicture packet */
7029
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
254 } ATTRIBUTE_PACKED synci_t;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
255
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
256 /**
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
257 * DSI packet
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
258 */
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
259 typedef struct {
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
260 dsi_gi_t dsi_gi;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
261 sml_pbi_t sml_pbi;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
262 sml_agli_t sml_agli;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
263 vobu_sri_t vobu_sri;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
264 synci_t synci;
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
265 uint8_t zero1[471];
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
266 } ATTRIBUTE_PACKED dsi_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 #if PRAGMA_PACK
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
270 #pragma pack()
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
271 #endif
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
272
9db58ffbd73c importing libdvdread 0.9.3 files
arpi
parents:
diff changeset
273 #endif /* NAV_TYPES_H_INCLUDED */