annotate libmpdvdkit2/ifo_print.c @ 15148:067f10ad6538

New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video obtained with MEncoder into different containers. Based on Rich's guide and some tips by Nico Sabi. Reviewed by The Wanderer, Dominik 'Rathann' Mierzejewski and Diego Biurrun
author gpoirier
date Wed, 13 Apr 2005 18:53:30 +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