annotate libmpdvdkit2/ifo_print.c @ 15307:58bd9c33864c

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