annotate ifo_print.c @ 168:330ef38ad968 src

Add files from libdvdread. This is to provide better integration with libdvdnav. Better error messages reported to the application etc. We will modify libdvdread files to be portable across all compilers. Currently, libdvdread only behaves with gcc. libdvdread does not like Microsoft Compilers. This portability modification will change libdvdread so much, that I thought it best to finally combine libdvdnav and libdvdread into one lib. Currently the added files are not used. Future commits will change that.
author jcdutton
date Sun, 27 Apr 2003 00:00:49 +0000
parents
children b0aa6f7931c0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
168
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1 /*
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
2 * Copyright (C) 2000, 2001, 2002, 2003
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
3 * Björn Englund <d4bjorn@dtek.chalmers.se>,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
4 * Håkan Hjort <d95hjort@dtek.chalmers.se>
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
5 *
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
9 * (at your option) any later version.
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
10 *
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
14 * GNU General Public License for more details.
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
15 *
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
19 */
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
20
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
21 #include "config.h"
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
22
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
23 #include <stdio.h>
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
24 #include <stdlib.h>
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
25 #include <unistd.h>
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
26 #include <inttypes.h>
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
27 #include <string.h>
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
28 #include <ctype.h>
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
29
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
30 #include "ifo_types.h"
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
31 #include "ifo_read.h"
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
32 #include "ifo_print.h"
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
33 #include "dvdread_internal.h"
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
34
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
35 /* Put this in some other file / package? It's used in nav_print too. */
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
36 static void ifoPrint_time(dvd_time_t *dtime) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
37 const char *rate;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
38 CHECK_VALUE((dtime->hour>>4) < 0xa && (dtime->hour&0xf) < 0xa);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
39 CHECK_VALUE((dtime->minute>>4) < 0x7 && (dtime->minute&0xf) < 0xa);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
40 CHECK_VALUE((dtime->second>>4) < 0x7 && (dtime->second&0xf) < 0xa);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
41 CHECK_VALUE((dtime->frame_u&0xf) < 0xa);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
42
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
43 printf("%02x:%02x:%02x.%02x",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
44 dtime->hour,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
45 dtime->minute,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
46 dtime->second,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
47 dtime->frame_u & 0x3f);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
48 switch((dtime->frame_u & 0xc0) >> 6) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
49 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
50 rate = "25.00";
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
51 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
52 case 3:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
53 rate = "29.97";
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
54 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
55 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
56 if(dtime->hour == 0 && dtime->minute == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
57 && dtime->second == 0 && dtime->frame_u == 0)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
58 rate = "no";
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
59 else
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
60 rate = "(please send a bug report)";
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
61 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
62 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
63 printf(" @ %s fps", rate);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
64 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
65
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
66 /* Put this in some other file / package? It's used in nav_print too.
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
67 Possibly also by the vm / navigator. */
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
68 static void ifoPrint_CMD(int row, vm_cmd_t *command) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
69 int i;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
70
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
71 printf("(%03d) ", row + 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
72 for(i=0;i<8;i++)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
73 printf("%02x ", command->bytes[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
74 printf("| ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
75
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
76 //vmcmd(command);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
77 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
78 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
79
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
80 static void ifoPrint_video_attributes(video_attr_t *attr) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
81
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
82 /* The following test is shorter but not correct ISO C,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
83 memcmp(attr,my_friendly_zeros, sizeof(video_attr_t)) */
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
84 if(attr->mpeg_version == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
85 && attr->video_format == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
86 && attr->display_aspect_ratio == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
87 && attr->permitted_df == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
88 && attr->unknown1 == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
89 && attr->line21_cc_1 == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
90 && attr->line21_cc_2 == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
91 && attr->bit_rate == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
92 && attr->video_format == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
93 && attr->letterboxed == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
94 && attr->film_mode == 0) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
95 printf("-- Unspecified --");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
96 return;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
97 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
98
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
99 switch(attr->mpeg_version) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
100 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
101 printf("mpeg1 ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
102 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
103 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
104 printf("mpeg2 ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
105 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
106 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
107 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
108 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
109
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
110 switch(attr->video_format) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
111 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
112 printf("ntsc ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
113 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
114 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
115 printf("pal ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
116 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
117 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
118 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
119 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
120
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
121 switch(attr->display_aspect_ratio) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
122 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
123 printf("4:3 ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
124 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
125 case 3:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
126 printf("16:9 ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
127 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
128 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
129 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
130 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
131
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
132 // Wide is allways allowed..!!!
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
133 switch(attr->permitted_df) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
134 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
135 printf("pan&scan+letterboxed ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
136 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
137 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
138 printf("only pan&scan "); //??
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
139 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
140 case 2:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
141 printf("only letterboxed ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
142 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
143 case 3:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
144 // not specified
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
145 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
146 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
147 printf("(please send a bug report)");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
148 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
149
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
150 printf("U%x ", attr->unknown1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
151 CHECK_VALUE(!attr->unknown1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
152
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
153 if(attr->line21_cc_1 || attr->line21_cc_2) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
154 printf("NTSC CC ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
155 if(attr->line21_cc_1)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
156 printf("1 ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
157 if(attr->line21_cc_2)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
158 printf("2 ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
159 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
160
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
161 switch(attr->bit_rate) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
162 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
163 printf("Variable Bit Rate ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
164 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
165 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
166 printf("Constant Bit Rate ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
167 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
168 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
169 printf("(please send a bug report)");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
170 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
171
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
172 {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
173 int height = 480;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
174 if(attr->video_format != 0)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
175 height = 576;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
176 switch(attr->picture_size) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
177 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
178 printf("720x%d ", height);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
179 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
180 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
181 printf("704x%d ", height);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
182 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
183 case 2:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
184 printf("352x%d ", height);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
185 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
186 case 3:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
187 printf("352x%d ", height/2);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
188 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
189 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
190 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
191 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
192 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
193
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
194 if(attr->letterboxed) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
195 printf("source letterboxed ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
196 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
197
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
198 if(attr->film_mode) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
199 printf("film");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
200 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
201 printf("video"); //camera
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
202 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
203 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
204
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
205 static void ifoPrint_audio_attributes(audio_attr_t *attr) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
206
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
207 if(attr->audio_format == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
208 && attr->multichannel_extension == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
209 && attr->lang_type == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
210 && attr->application_mode == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
211 && attr->quantization == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
212 && attr->sample_frequency == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
213 && attr->channels == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
214 && attr->lang_code == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
215 && attr->lang_extension == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
216 && attr->code_extension == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
217 && attr->unknown3 == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
218 && attr->unknown1 == 0) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
219 printf("-- Unspecified --");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
220 return;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
221 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
222
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
223 switch(attr->audio_format) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
224 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
225 printf("ac3 ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
226 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
227 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
228 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
229 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
230 case 2:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
231 printf("mpeg1 ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
232 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
233 case 3:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
234 printf("mpeg2ext ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
235 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
236 case 4:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
237 printf("lpcm ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
238 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
239 case 5:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
240 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
241 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
242 case 6:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
243 printf("dts ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
244 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
245 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
246 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
247 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
248
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
249 if(attr->multichannel_extension)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
250 printf("multichannel_extension ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
251
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
252 switch(attr->lang_type) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
253 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
254 // not specified
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
255 CHECK_VALUE(attr->lang_code == 0 || attr->lang_code == 0xffff);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
256 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
257 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
258 printf("%c%c (%c) ", attr->lang_code>>8, attr->lang_code & 0xff,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
259 attr->lang_extension ? attr->lang_extension : ' ');
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
260 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
261 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
262 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
263 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
264
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
265 switch(attr->application_mode) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
266 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
267 // not specified
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
268 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
269 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
270 printf("karaoke mode ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
271 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
272 case 2:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
273 printf("surround sound mode ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
274 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
275 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
276 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
277 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
278
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
279 switch(attr->quantization) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
280 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
281 printf("16bit ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
282 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
283 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
284 printf("20bit ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
285 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
286 case 2:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
287 printf("24bit ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
288 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
289 case 3:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
290 printf("drc ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
291 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
292 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
293 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
294 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
295
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
296 switch(attr->sample_frequency) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
297 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
298 printf("48kHz ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
299 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
300 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
301 printf("??kHz ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
302 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
303 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
304 printf("sample_frequency %i (please send a bug report) ",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
305 attr->sample_frequency);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
306 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
307
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
308 printf("%dCh ", attr->channels + 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
309
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
310 switch(attr->code_extension) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
311 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
312 printf("Not specified ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
313 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
314 case 1: // Normal audio
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
315 printf("Normal Caption ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
316 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
317 case 2: // visually imparied
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
318 printf("Audio for visually impaired ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
319 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
320 case 3: // Directors 1
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
321 printf("Director's comments 1 ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
322 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
323 case 4: // Directors 2
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
324 printf("Director's comments 2 ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
325 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
326 //case 4: // Music score ?
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
327 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
328 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
329 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
330
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
331 printf("%d ", attr->unknown3);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
332 if(attr->application_mode == 1) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
333 printf("ca=%d ", attr->app_info.karaoke.channel_assignment);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
334 printf("%d ", attr->app_info.karaoke.version);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
335 if(attr->app_info.karaoke.mc_intro)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
336 printf("mc intro ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
337 printf("%s ", attr->app_info.karaoke.mode ? "duet" : "solo");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
338 printf("%d ", attr->app_info.karaoke.unknown4);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
339 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
340 if(attr->application_mode == 2) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
341 if(attr->app_info.surround.dolby_encoded) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
342 printf("dolby surround ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
343 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
344 printf("%d ", attr->app_info.surround.unknown5);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
345 printf("%d ", attr->app_info.surround.unknown6);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
346 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
347 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
348
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
349 static void ifoPrint_subp_attributes(subp_attr_t *attr) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
350
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
351 if(attr->type == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
352 && attr->code_mode == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
353 && attr->lang_code == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
354 && attr->lang_extension == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
355 && attr->zero1 == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
356 && attr->zero2 == 0
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
357 && attr->code_extension == 0) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
358 printf("-- Unspecified --");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
359 return;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
360 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
361
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
362 switch(attr->code_mode) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
363 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
364 printf("Coding Mode RLE ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
365 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
366 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
367 printf("Coding Mode Extended ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
368 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
369 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
370 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
371 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
372
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
373 if(attr->type == 1) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
374 if(isalpha((int)(attr->lang_code >> 8))
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
375 && isalpha((int)(attr->lang_code & 0xff))) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
376 printf("%c%c ", attr->lang_code >> 8, attr->lang_code & 0xff);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
377 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
378 printf("%02x%02x ", attr->lang_code >> 8, attr->lang_code & 0xff);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
379 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
380 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
381 printf("lang not specified ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
382 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
383
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
384 printf("%d ", attr->zero1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
385 printf("%d ", attr->zero2);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
386 printf("%d ", attr->code_extension);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
387
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
388 /* Is this correct? should it not be subp_code_ext here instead? */
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
389 switch(attr->lang_extension) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
390 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
391 printf("Not specified ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
392 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
393 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
394 printf("Caption with normal size character ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
395 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
396 case 2:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
397 printf("Caption with bigger size character ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
398 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
399 case 3:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
400 printf("Caption for children ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
401 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
402 case 4:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
403 printf("reserved ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
404 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
405 case 5:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
406 printf("Closed Caption with normal size character ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
407 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
408 case 6:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
409 printf("Closed Caption with bigger size character ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
410 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
411 case 7:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
412 printf("Closed Caption for children ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
413 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
414 case 8:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
415 printf("reserved ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
416 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
417 case 9:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
418 printf("Forced Caption");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
419 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
420 case 10:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
421 printf("reserved ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
422 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
423 case 11:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
424 printf("reserved ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
425 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
426 case 12:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
427 printf("reserved ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
428 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
429 case 13:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
430 printf("Director's comments with normal size character ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
431 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
432 case 14:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
433 printf("Director's comments with bigger size character ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
434 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
435 case 15:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
436 printf("Director's comments for children ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
437 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
438 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
439 printf("(please send a bug report) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
440 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
441
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
442 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
443
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
444
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
445 static void ifoPrint_USER_OPS(user_ops_t *user_ops) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
446 uint32_t uops;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
447 unsigned char *ptr = (unsigned char *)user_ops;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
448
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
449 uops = (*ptr++ << 24);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
450 uops |= (*ptr++ << 16);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
451 uops |= (*ptr++ << 8);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
452 uops |= (*ptr++);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
453
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
454 if(uops == 0) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
455 printf("None\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
456 } else if(uops == 0x01ffffff) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
457 printf("All\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
458 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
459 if(user_ops->title_or_time_play)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
460 printf("Title or Time Play, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
461 if(user_ops->chapter_search_or_play)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
462 printf("Chapter Search or Play, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
463 if(user_ops->title_play)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
464 printf("Title Play, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
465 if(user_ops->stop)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
466 printf("Stop, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
467 if(user_ops->go_up)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
468 printf("Go Up, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
469 if(user_ops->time_or_chapter_search)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
470 printf("Time or Chapter Search, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
471 if(user_ops->prev_or_top_pg_search)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
472 printf("Prev or Top PG Search, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
473 if(user_ops->next_pg_search)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
474 printf("Next PG Search, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
475 if(user_ops->forward_scan)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
476 printf("Forward Scan, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
477 if(user_ops->backward_scan)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
478 printf("Backward Scan, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
479 if(user_ops->title_menu_call)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
480 printf("Title Menu Call, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
481 if(user_ops->root_menu_call)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
482 printf("Root Menu Call, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
483 if(user_ops->subpic_menu_call)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
484 printf("SubPic Menu Call, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
485 if(user_ops->audio_menu_call)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
486 printf("Audio Menu Call, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
487 if(user_ops->angle_menu_call)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
488 printf("Angle Menu Call, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
489 if(user_ops->chapter_menu_call)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
490 printf("Chapter Menu Call, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
491 if(user_ops->resume)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
492 printf("Resume, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
493 if(user_ops->button_select_or_activate)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
494 printf("Button Select or Activate, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
495 if(user_ops->still_off)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
496 printf("Still Off, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
497 if(user_ops->pause_on)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
498 printf("Pause On, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
499 if(user_ops->audio_stream_change)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
500 printf("Audio Stream Change, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
501 if(user_ops->subpic_stream_change)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
502 printf("SubPic Stream Change, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
503 if(user_ops->angle_change)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
504 printf("Angle Change, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
505 if(user_ops->karaoke_audio_pres_mode_change)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
506 printf("Karaoke Audio Pres Mode Change, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
507 if(user_ops->video_pres_mode_change)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
508 printf("Video Pres Mode Change, ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
509 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
510 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
511 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
512
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
513
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
514 void ifoPrint_VMGI_MAT(vmgi_mat_t *vmgi_mat) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
515
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
516 printf("VMG Identifier: %.12s\n", vmgi_mat->vmg_identifier);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
517 printf("Last Sector of VMG: %08x\n", vmgi_mat->vmg_last_sector);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
518 printf("Last Sector of VMGI: %08x\n", vmgi_mat->vmgi_last_sector);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
519 printf("Specification version number: %01x.%01x\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
520 vmgi_mat->specification_version >> 4,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
521 vmgi_mat->specification_version & 0xf);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
522 /* Byte 2 of 'VMG Category' (00xx0000) is the Region Code */
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
523 printf("VMG Category: %08x\n", vmgi_mat->vmg_category);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
524 printf("VMG Number of Volumes: %i\n", vmgi_mat->vmg_nr_of_volumes);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
525 printf("VMG This Volume: %i\n", vmgi_mat->vmg_this_volume_nr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
526 printf("Disc side %i\n", vmgi_mat->disc_side);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
527 printf("VMG Number of Title Sets %i\n", vmgi_mat->vmg_nr_of_title_sets);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
528 printf("Provider ID: %.32s\n", vmgi_mat->provider_identifier);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
529 printf("VMG POS Code: %08x", (uint32_t)(vmgi_mat->vmg_pos_code >> 32));
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
530 printf("%08x\n", (uint32_t)vmgi_mat->vmg_pos_code);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
531 printf("End byte of VMGI_MAT: %08x\n", vmgi_mat->vmgi_last_byte);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
532 printf("Start byte of First Play PGC FP PGC: %08x\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
533 vmgi_mat->first_play_pgc);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
534 printf("Start sector of VMGM_VOBS: %08x\n", vmgi_mat->vmgm_vobs);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
535 printf("Start sector of TT_SRPT: %08x\n", vmgi_mat->tt_srpt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
536 printf("Start sector of VMGM_PGCI_UT: %08x\n", vmgi_mat->vmgm_pgci_ut);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
537 printf("Start sector of PTL_MAIT: %08x\n", vmgi_mat->ptl_mait);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
538 printf("Start sector of VTS_ATRT: %08x\n", vmgi_mat->vts_atrt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
539 printf("Start sector of TXTDT_MG: %08x\n", vmgi_mat->txtdt_mgi);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
540 printf("Start sector of VMGM_C_ADT: %08x\n", vmgi_mat->vmgm_c_adt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
541 printf("Start sector of VMGM_VOBU_ADMAP: %08x\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
542 vmgi_mat->vmgm_vobu_admap);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
543 printf("Video attributes of VMGM_VOBS: ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
544 ifoPrint_video_attributes(&vmgi_mat->vmgm_video_attr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
545 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
546 printf("VMGM Number of Audio attributes: %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
547 vmgi_mat->nr_of_vmgm_audio_streams);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
548 if(vmgi_mat->nr_of_vmgm_audio_streams > 0) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
549 printf("\tstream %i status: ", 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
550 ifoPrint_audio_attributes(&vmgi_mat->vmgm_audio_attr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
551 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
552 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
553 printf("VMGM Number of Sub-picture attributes: %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
554 vmgi_mat->nr_of_vmgm_subp_streams);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
555 if(vmgi_mat->nr_of_vmgm_subp_streams > 0) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
556 printf("\tstream %2i status: ", 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
557 ifoPrint_subp_attributes(&vmgi_mat->vmgm_subp_attr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
558 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
559 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
560 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
561
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
562
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
563 void ifoPrint_VTSI_MAT(vtsi_mat_t *vtsi_mat) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
564 int i;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
565
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
566 printf("VTS Identifier: %.12s\n", vtsi_mat->vts_identifier);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
567 printf("Last Sector of VTS: %08x\n", vtsi_mat->vts_last_sector);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
568 printf("Last Sector of VTSI: %08x\n", vtsi_mat->vtsi_last_sector);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
569 printf("Specification version number: %01x.%01x\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
570 vtsi_mat->specification_version>>4,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
571 vtsi_mat->specification_version&0xf);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
572 printf("VTS Category: %08x\n", vtsi_mat->vts_category);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
573 printf("End byte of VTSI_MAT: %08x\n", vtsi_mat->vtsi_last_byte);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
574 printf("Start sector of VTSM_VOBS: %08x\n", vtsi_mat->vtsm_vobs);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
575 printf("Start sector of VTSTT_VOBS: %08x\n", vtsi_mat->vtstt_vobs);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
576 printf("Start sector of VTS_PTT_SRPT: %08x\n", vtsi_mat->vts_ptt_srpt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
577 printf("Start sector of VTS_PGCIT: %08x\n", vtsi_mat->vts_pgcit);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
578 printf("Start sector of VTSM_PGCI_UT: %08x\n", vtsi_mat->vtsm_pgci_ut);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
579 printf("Start sector of VTS_TMAPT: %08x\n", vtsi_mat->vts_tmapt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
580 printf("Start sector of VTSM_C_ADT: %08x\n", vtsi_mat->vtsm_c_adt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
581 printf("Start sector of VTSM_VOBU_ADMAP: %08x\n",vtsi_mat->vtsm_vobu_admap);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
582 printf("Start sector of VTS_C_ADT: %08x\n", vtsi_mat->vts_c_adt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
583 printf("Start sector of VTS_VOBU_ADMAP: %08x\n", vtsi_mat->vts_vobu_admap);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
584
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
585 printf("Video attributes of VTSM_VOBS: ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
586 ifoPrint_video_attributes(&vtsi_mat->vtsm_video_attr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
587 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
588
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
589 printf("VTSM Number of Audio attributes: %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
590 vtsi_mat->nr_of_vtsm_audio_streams);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
591 if(vtsi_mat->nr_of_vtsm_audio_streams > 0) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
592 printf("\tstream %i status: ", 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
593 ifoPrint_audio_attributes(&vtsi_mat->vtsm_audio_attr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
594 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
595 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
596
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
597 printf("VTSM Number of Sub-picture attributes: %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
598 vtsi_mat->nr_of_vtsm_subp_streams);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
599 if(vtsi_mat->nr_of_vtsm_subp_streams > 0) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
600 printf("\tstream %2i status: ", 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
601 ifoPrint_subp_attributes(&vtsi_mat->vtsm_subp_attr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
602 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
603 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
604
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
605 printf("Video attributes of VTS_VOBS: ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
606 ifoPrint_video_attributes(&vtsi_mat->vts_video_attr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
607 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
608
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
609 printf("VTS Number of Audio attributes: %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
610 vtsi_mat->nr_of_vts_audio_streams);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
611 for(i = 0; i < vtsi_mat->nr_of_vts_audio_streams; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
612 printf("\tstream %i status: ", i);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
613 ifoPrint_audio_attributes(&vtsi_mat->vts_audio_attr[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
614 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
615 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
616
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
617 printf("VTS Number of Subpicture attributes: %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
618 vtsi_mat->nr_of_vts_subp_streams);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
619 for(i = 0; i < vtsi_mat->nr_of_vts_subp_streams; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
620 printf("\tstream %2i status: ", i);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
621 ifoPrint_subp_attributes(&vtsi_mat->vts_subp_attr[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
622 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
623 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
624
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
625 /* FIXME: Add printing of MultiChannel Extension */
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
626 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
627
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
628
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
629 static void ifoPrint_PGC_COMMAND_TBL(pgc_command_tbl_t *cmd_tbl) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
630 int i;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
631
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
632 if(cmd_tbl == NULL) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
633 printf("No Command table present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
634 return;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
635 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
636
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
637 printf("Number of Pre commands: %i\n", cmd_tbl->nr_of_pre);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
638 for(i = 0; i < cmd_tbl->nr_of_pre; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
639 ifoPrint_CMD(i, &cmd_tbl->pre_cmds[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
640 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
641
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
642 printf("Number of Post commands: %i\n", cmd_tbl->nr_of_post);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
643 for(i = 0; i < cmd_tbl->nr_of_post; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
644 ifoPrint_CMD(i, &cmd_tbl->post_cmds[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
645 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
646
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
647 printf("Number of Cell commands: %i\n", cmd_tbl->nr_of_cell);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
648 for(i = 0; i < cmd_tbl->nr_of_cell; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
649 ifoPrint_CMD(i, &cmd_tbl->cell_cmds[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
650 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
651 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
652
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
653
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
654 static void ifoPrint_PGC_PROGRAM_MAP(pgc_program_map_t *program_map, int nr) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
655 int i;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
656
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
657 if(program_map == NULL) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
658 printf("No Program map present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
659 return;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
660 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
661
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
662 for(i = 0; i < nr; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
663 printf("Program %3i Entry Cell: %3i\n", i + 1, program_map[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
664 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
665 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
666
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
667
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
668 static void ifoPrint_CELL_PLAYBACK(cell_playback_t *cell_playback, int nr) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
669 int i;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
670
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
671 if(cell_playback == NULL) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
672 printf("No Cell Playback info present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
673 return;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
674 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
675
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
676 for(i=0;i<nr;i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
677 printf("Cell: %3i ", i + 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
678
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
679 ifoPrint_time(&cell_playback[i].playback_time);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
680 printf("\t");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
681
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
682 if(cell_playback[i].block_mode || cell_playback[i].block_type) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
683 const char *s;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
684 switch(cell_playback[i].block_mode) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
685 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
686 s = "not a"; break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
687 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
688 s = "the first"; break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
689 case 2:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
690 default:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
691 s = ""; break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
692 case 3:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
693 s = "last"; break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
694 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
695 printf("%s cell in the block ", s);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
696
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
697 switch(cell_playback[i].block_type) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
698 case 0:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
699 printf("not part of the block ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
700 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
701 case 1:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
702 printf("angle block ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
703 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
704 case 2:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
705 case 3:
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
706 printf("(send bug repport) ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
707 break;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
708 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
709 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
710 if(cell_playback[i].seamless_play)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
711 printf("presented seamlessly ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
712 if(cell_playback[i].interleaved)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
713 printf("cell is interleaved ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
714 if(cell_playback[i].stc_discontinuity)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
715 printf("STC_discontinuty ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
716 if(cell_playback[i].seamless_angle)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
717 printf("only seamless angle ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
718 if(cell_playback[i].restricted)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
719 printf("restricted cell ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
720
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
721 if(cell_playback[i].still_time)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
722 printf("still time %d ", cell_playback[i].still_time);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
723 if(cell_playback[i].cell_cmd_nr)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
724 printf("cell command %d", cell_playback[i].cell_cmd_nr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
725
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
726 printf("\n\tStart sector: %08x\tFirst ILVU end sector: %08x\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
727 cell_playback[i].first_sector,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
728 cell_playback[i].first_ilvu_end_sector);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
729 printf("\tEnd sector: %08x\tLast VOBU start sector: %08x\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
730 cell_playback[i].last_sector,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
731 cell_playback[i].last_vobu_start_sector);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
732 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
733 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
734
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
735 static void ifoPrint_CELL_POSITION(cell_position_t *cell_position, int nr) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
736 int i;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
737
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
738 if(cell_position == NULL) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
739 printf("No Cell Position info present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
740 return;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
741 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
742
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
743 for(i=0;i<nr;i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
744 printf("Cell: %3i has VOB ID: %3i, Cell ID: %3i\n", i + 1,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
745 cell_position[i].vob_id_nr, cell_position[i].cell_nr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
746 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
747 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
748
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
749
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
750 void ifoPrint_PGC(pgc_t *pgc) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
751 int i;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
752
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
753 printf("Number of Programs: %i\n", pgc->nr_of_programs);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
754 printf("Number of Cells: %i\n", pgc->nr_of_cells);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
755 /* Check that time is 0:0:0:0 also if nr_of_programs==0 */
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
756 printf("Playback time: ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
757 ifoPrint_time(&pgc->playback_time); printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
758
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
759 /* If no programs/no time then does this mean anything? */
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
760 printf("Prohibited user operations: ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
761 ifoPrint_USER_OPS(&pgc->prohibited_ops);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
762
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
763 for(i = 0; i < 8; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
764 if(pgc->audio_control[i] & 0x8000) { /* The 'is present' bit */
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
765 printf("Audio stream %i control: %04x\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
766 i, pgc->audio_control[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
767 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
768 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
769
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
770 for(i = 0; i < 32; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
771 if(pgc->subp_control[i] & 0x80000000) { /* The 'is present' bit */
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
772 printf("Subpicture stream %2i control: %08x\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
773 i, pgc->subp_control[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
774 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
775 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
776
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
777 printf("Next PGC number: %i\n", pgc->next_pgc_nr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
778 printf("Prev PGC number: %i\n", pgc->prev_pgc_nr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
779 printf("GoUp PGC number: %i\n", pgc->goup_pgc_nr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
780 if(pgc->nr_of_programs != 0) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
781 printf("Still time: %i seconds (255=inf)\n", pgc->still_time);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
782 if(pgc->pg_playback_mode == 0)
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
783 printf("PG Playback mode: Sequential\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
784 else if(!(pgc->pg_playback_mode & 0x80))
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
785 printf("PG Playback mode: Random %i\n", pgc->pg_playback_mode);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
786 else
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
787 printf("PG Playback mode: Shuffle %i\n", pgc->pg_playback_mode & 0x7f );
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
788 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
789
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
790 if(pgc->nr_of_programs != 0) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
791 for(i = 0; i < 16; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
792 printf("Color %2i: %08x\n", i, pgc->palette[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
793 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
794 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
795
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
796 /* Memmory offsets to div. tables. */
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
797 ifoPrint_PGC_COMMAND_TBL(pgc->command_tbl);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
798 ifoPrint_PGC_PROGRAM_MAP(pgc->program_map, pgc->nr_of_programs);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
799 ifoPrint_CELL_PLAYBACK(pgc->cell_playback, pgc->nr_of_cells);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
800 ifoPrint_CELL_POSITION(pgc->cell_position, pgc->nr_of_cells);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
801 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
802
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
803
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
804 void ifoPrint_TT_SRPT(tt_srpt_t *tt_srpt) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
805 int i;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
806
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
807 printf("Number of TitleTrack search pointers: %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
808 tt_srpt->nr_of_srpts);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
809 for(i=0;i<tt_srpt->nr_of_srpts;i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
810 printf("Title Track index %i\n", i + 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
811 printf("\tTitle set number (VTS): %i",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
812 tt_srpt->title[i].title_set_nr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
813 printf("\tVTS_TTN: %i\n", tt_srpt->title[i].vts_ttn);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
814 printf("\tNumber of PTTs: %i\n", tt_srpt->title[i].nr_of_ptts);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
815 printf("\tNumber of angles: %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
816 tt_srpt->title[i].nr_of_angles);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
817 printf("\tTitle playback type: %s%s%s%s%s%s%s\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
818 tt_srpt->title[i].pb_ty.multi_or_random_pgc_title ?
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
819 " One Random PGC Title or Multi PGC Title" :
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
820 " One Sequential PGC Title",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
821 tt_srpt->title[i].pb_ty.jlc_exists_in_cell_cmd ?
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
822 "" : ", No Link/Jump/Call exists in Cell command",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
823 tt_srpt->title[i].pb_ty.jlc_exists_in_prepost_cmd ?
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
824 "" : ", No Link/Jump/Call exists in Pre- and/or Post-command",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
825 tt_srpt->title[i].pb_ty.jlc_exists_in_button_cmd ?
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
826 "" : ", No Link/Jump/Call exists in Button command",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
827 tt_srpt->title[i].pb_ty.jlc_exists_in_tt_dom ?
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
828 "" : ", No Link/Jump/Call exists in TT_DOM",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
829 tt_srpt->title[i].pb_ty.chapter_search_or_play ?
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
830 ", UOP1 (TT_Play and PTT_Search) prohibited" : "",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
831 tt_srpt->title[i].pb_ty.title_or_time_play ?
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
832 ", UOP0 (Time_Play and Time_Search) prohibited" : ""
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
833 );
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
834 printf("\tParental ID field: %04x\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
835 tt_srpt->title[i].parental_id);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
836 printf("\tTitle set starting sector %08x\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
837 tt_srpt->title[i].title_set_sector);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
838 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
839 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
840
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
841
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
842 void ifoPrint_VTS_PTT_SRPT(vts_ptt_srpt_t *vts_ptt_srpt) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
843 int i, j;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
844 printf(" nr_of_srpts %i last byte %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
845 vts_ptt_srpt->nr_of_srpts,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
846 vts_ptt_srpt->last_byte);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
847 for(i=0;i<vts_ptt_srpt->nr_of_srpts;i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
848 printf("\nVTS_PTT number %d has a offset %d relative to VTS_PTT_SRPT\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
849 i + 1, vts_ptt_srpt->ttu_offset[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
850 for(j=0;j<vts_ptt_srpt->title[i].nr_of_ptts;j++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
851 printf("VTS_PTT_SRPT - Title %3i part %3i: PGC: %3i PG: %3i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
852 i + 1, j + 1,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
853 vts_ptt_srpt->title[i].ptt[j].pgcn,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
854 vts_ptt_srpt->title[i].ptt[j].pgn );
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
855 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
856 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
857 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
858
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
859
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
860 void ifoPrint_PTL_MAIT(ptl_mait_t *ptl_mait) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
861 int i, level, vts;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
862
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
863 printf("Number of Countries: %i\n", ptl_mait->nr_of_countries);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
864 printf("Number of VTSs: %i\n", ptl_mait->nr_of_vtss);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
865 printf("Last byte: %i\n", ptl_mait->last_byte);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
866
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
867 for(i = 0; i < ptl_mait->nr_of_countries; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
868
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
869 printf("Start byte: %i\n", ptl_mait->countries[i].pf_ptl_mai_start_byte);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
870 printf("Parental Masks for country: %c%c\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
871 ptl_mait->countries[i].country_code >> 8,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
872 ptl_mait->countries[i].country_code & 0xff);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
873
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
874 for(vts = 0; vts <= ptl_mait->nr_of_vtss; vts++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
875 if( vts == 0 ) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
876 printf("VMG ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
877 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
878 printf("VTS %2d ", vts);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
879 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
880 for(level = 0; level < 8; level++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
881 printf("%d: %04x ", level,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
882 ptl_mait->countries[i].pf_ptl_mai[vts][level] );
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
883 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
884 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
885 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
886 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
887 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
888
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
889 void ifoPrint_VTS_TMAPT(vts_tmapt_t *vts_tmapt) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
890 unsigned int timeunit;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
891 int i, j;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
892
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
893 printf("Number of VTS_TMAPS: %i\n", vts_tmapt->nr_of_tmaps);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
894 printf("Last byte: %i\n", vts_tmapt->last_byte);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
895
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
896 for(i = 0; i < vts_tmapt->nr_of_tmaps; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
897 printf("TMAP %i\n", i + 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
898 printf(" offset %d relative to VTS_TMAPTI\n", vts_tmapt->tmap_offset[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
899 printf(" Time unit (seconds): %i\n", vts_tmapt->tmap[i].tmu);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
900 printf(" Number of entries: %i\n", vts_tmapt->tmap[i].nr_of_entries);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
901 timeunit = vts_tmapt->tmap[i].tmu;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
902 for(j = 0; j < vts_tmapt->tmap[i].nr_of_entries; j++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
903 unsigned int ac_time = timeunit * (j + 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
904 printf("Time: %2i:%02i:%02i VOBU Sector: 0x%08x %s\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
905 ac_time / (60 * 60), (ac_time / 60) % 60, ac_time % 60,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
906 vts_tmapt->tmap[i].map_ent[j] & 0x7fffffff,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
907 (vts_tmapt->tmap[i].map_ent[j] >> 31) ? "discontinuity" : "");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
908 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
909 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
910 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
911
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
912 void ifoPrint_C_ADT(c_adt_t *c_adt) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
913 int i, entries;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
914
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
915 printf("Number of VOBs in this VOBS: %i\n", c_adt->nr_of_vobs);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
916 //entries = c_adt->nr_of_vobs;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
917 entries = (c_adt->last_byte + 1 - C_ADT_SIZE)/sizeof(c_adt_t);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
918
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
919 for(i = 0; i < entries; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
920 printf("VOB ID: %3i, Cell ID: %3i ",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
921 c_adt->cell_adr_table[i].vob_id, c_adt->cell_adr_table[i].cell_id);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
922 printf("Sector (first): 0x%08x (last): 0x%08x\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
923 c_adt->cell_adr_table[i].start_sector,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
924 c_adt->cell_adr_table[i].last_sector);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
925 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
926 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
927
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
928
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
929 void ifoPrint_VOBU_ADMAP(vobu_admap_t *vobu_admap) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
930 int i, entries;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
931
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
932 entries = (vobu_admap->last_byte + 1 - VOBU_ADMAP_SIZE)/4;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
933 for(i = 0; i < entries; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
934 printf("VOBU %5i First sector: 0x%08x\n", i + 1,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
935 vobu_admap->vobu_start_sectors[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
936 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
937 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
938
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
939
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
940 void ifoPrint_PGCIT(pgcit_t *pgcit) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
941 int i;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
942
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
943 for(i = 0; i < pgcit->nr_of_pgci_srp; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
944 printf("\nProgram (PGC): %3i\t", i + 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
945 printf("PGC Category: Entry id 0x%02x, ", pgcit->pgci_srp[i].entry_id);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
946 printf("Parental ID mask 0x%04x\n", pgcit->pgci_srp[i].ptl_id_mask);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
947 ifoPrint_PGC(pgcit->pgci_srp[i].pgc);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
948 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
949 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
950
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
951
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
952 void ifoPrint_PGCI_UT(pgci_ut_t *pgci_ut) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
953 int i;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
954
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
955 printf("Number of Menu Language Units (PGCI_LU): %3i\n", pgci_ut->nr_of_lus);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
956 for(i = 0; i < pgci_ut->nr_of_lus; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
957 printf("\nMenu Language Code: %c%c (%c)\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
958 pgci_ut->lu[i].lang_code >> 8,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
959 pgci_ut->lu[i].lang_code & 0xff,
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
960 pgci_ut->lu[i].lang_extension ? pgci_ut->lu[i].lang_extension :' ');
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
961 printf("Menu Existence: %02x\n", pgci_ut->lu[i].exists);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
962 ifoPrint_PGCIT(pgci_ut->lu[i].pgcit);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
963 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
964 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
965
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
966
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
967 static void ifoPrint_VTS_ATTRIBUTES(vts_attributes_t *vts_attributes) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
968 int i;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
969
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
970 printf("VTS_CAT Application type: %08x\n", vts_attributes->vts_cat);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
971
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
972 printf("Video attributes of VTSM_VOBS: ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
973 ifoPrint_video_attributes(&vts_attributes->vtsm_vobs_attr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
974 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
975 printf("Number of Audio streams: %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
976 vts_attributes->nr_of_vtsm_audio_streams);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
977 if(vts_attributes->nr_of_vtsm_audio_streams > 0) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
978 printf("\tstream %i attributes: ", 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
979 ifoPrint_audio_attributes(&vts_attributes->vtsm_audio_attr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
980 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
981 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
982 printf("Number of Subpicture streams: %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
983 vts_attributes->nr_of_vtsm_subp_streams);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
984 if(vts_attributes->nr_of_vtsm_subp_streams > 0) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
985 printf("\tstream %2i attributes: ", 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
986 ifoPrint_subp_attributes(&vts_attributes->vtsm_subp_attr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
987 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
988 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
989
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
990 printf("Video attributes of VTSTT_VOBS: ");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
991 ifoPrint_video_attributes(&vts_attributes->vtstt_vobs_video_attr);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
992 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
993 printf("Number of Audio streams: %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
994 vts_attributes->nr_of_vtstt_audio_streams);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
995 for(i = 0; i < vts_attributes->nr_of_vtstt_audio_streams; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
996 printf("\tstream %i attributes: ", i);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
997 ifoPrint_audio_attributes(&vts_attributes->vtstt_audio_attr[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
998 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
999 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1000
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1001 printf("Number of Subpicture streams: %i\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1002 vts_attributes->nr_of_vtstt_subp_streams);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1003 for(i = 0; i < vts_attributes->nr_of_vtstt_subp_streams; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1004 printf("\tstream %2i attributes: ", i);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1005 ifoPrint_subp_attributes(&vts_attributes->vtstt_subp_attr[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1006 printf("\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1007 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1008 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1009
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1010
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1011 void ifoPrint_VTS_ATRT(vts_atrt_t *vts_atrt) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1012 int i;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1013
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1014 printf("Number of Video Title Sets: %3i\n", vts_atrt->nr_of_vtss);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1015 for(i = 0; i < vts_atrt->nr_of_vtss; i++) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1016 printf("\nVideo Title Set %i\n", i + 1);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1017 printf(" offset %d relative to VMG_VTS_ATRT\n",
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1018 vts_atrt->vts_atrt_offsets[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1019 ifoPrint_VTS_ATTRIBUTES(&vts_atrt->vts[i]);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1020 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1021 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1022
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1023
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1024 void ifoPrint(dvd_reader_t *dvd, int title) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1025 ifo_handle_t *ifohandle;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1026
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1027 ifohandle = ifoOpen(dvd, title);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1028 if(!ifohandle) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1029 fprintf(stderr, "Can't open info file for title %d\n", title);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1030 return;
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1031 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1032
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1033
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1034 if(ifohandle->vmgi_mat) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1035
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1036 printf("VMG top level\n-------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1037 ifoPrint_VMGI_MAT(ifohandle->vmgi_mat);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1038
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1039 printf("\nFirst Play PGC\n--------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1040 ifoPrint_PGC(ifohandle->first_play_pgc);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1041
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1042 printf("\nTitle Track search pointer table\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1043 printf( "------------------------------------------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1044 ifoPrint_TT_SRPT(ifohandle->tt_srpt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1045
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1046 printf("\nMenu PGCI Unit table\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1047 printf( "--------------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1048 if(ifohandle->pgci_ut) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1049 ifoPrint_PGCI_UT(ifohandle->pgci_ut);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1050 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1051 printf("No PGCI Unit table present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1052 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1053
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1054 printf("\nParental Manegment Information table\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1055 printf( "------------------------------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1056 if(ifohandle->ptl_mait) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1057 ifoPrint_PTL_MAIT(ifohandle->ptl_mait);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1058 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1059 printf("No Parental Management Information present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1060 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1061
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1062 printf("\nVideo Title Set Attribute Table\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1063 printf( "-------------------------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1064 ifoPrint_VTS_ATRT(ifohandle->vts_atrt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1065
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1066 printf("\nText Data Manager Information\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1067 printf( "-----------------------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1068 if(ifohandle->txtdt_mgi) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1069 //ifoPrint_TXTDT_MGI(&(vmgi->txtdt_mgi));
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1070 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1071 printf("No Text Data Manager Information present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1072 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1073
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1074 printf("\nMenu Cell Adress table\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1075 printf( "-----------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1076 if(ifohandle->menu_c_adt) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1077 ifoPrint_C_ADT(ifohandle->menu_c_adt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1078 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1079 printf("No Menu Cell Adress table present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1080 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1081
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1082 printf("\nVideo Manager Menu VOBU address map\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1083 printf( "-----------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1084 if(ifohandle->menu_vobu_admap) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1085 ifoPrint_VOBU_ADMAP(ifohandle->menu_vobu_admap);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1086 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1087 printf("No Menu VOBU address map present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1088 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1089 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1090
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1091
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1092 if(ifohandle->vtsi_mat) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1093
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1094 printf("VTS top level\n-------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1095 ifoPrint_VTSI_MAT(ifohandle->vtsi_mat);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1096
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1097 printf("\nPart of Title Track search pointer table\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1098 printf( "----------------------------------------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1099 ifoPrint_VTS_PTT_SRPT(ifohandle->vts_ptt_srpt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1100
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1101 printf("\nPGCI Unit table\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1102 printf( "--------------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1103 ifoPrint_PGCIT(ifohandle->vts_pgcit);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1104
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1105 printf("\nMenu PGCI Unit table\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1106 printf( "--------------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1107 if(ifohandle->pgci_ut) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1108 ifoPrint_PGCI_UT(ifohandle->pgci_ut);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1109 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1110 printf("No Menu PGCI Unit table present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1111 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1112
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1113 printf("\nTime Search table\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1114 printf( "-----------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1115 if(ifohandle->vts_tmapt) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1116 ifoPrint_VTS_TMAPT(ifohandle->vts_tmapt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1117 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1118 printf("No Time Search table present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1119 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1120
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1121 printf("\nMenu Cell Adress table\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1122 printf( "-----------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1123 if(ifohandle->menu_c_adt) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1124 ifoPrint_C_ADT(ifohandle->menu_c_adt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1125 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1126 printf("No Cell Adress table present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1127 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1128
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1129 printf("\nVideo Title Set Menu VOBU address map\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1130 printf( "-----------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1131 if(ifohandle->menu_vobu_admap) {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1132 ifoPrint_VOBU_ADMAP(ifohandle->menu_vobu_admap);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1133 } else {
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1134 printf("No Menu VOBU address map present\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1135 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1136
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1137 printf("\nCell Adress table\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1138 printf( "-----------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1139 ifoPrint_C_ADT(ifohandle->vts_c_adt);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1140
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1141 printf("\nVideo Title Set VOBU address map\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1142 printf( "-----------------\n");
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1143 ifoPrint_VOBU_ADMAP(ifohandle->vts_vobu_admap);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1144 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1145
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1146 ifoClose(ifohandle);
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1147 }
330ef38ad968 Add files from libdvdread.
jcdutton
parents:
diff changeset
1148