| 1 | | diff --git a/configure.ac b/configure.ac |
|---|
| 2 | | index e5ee5c4..b381093 100644 |
|---|
| 3 | | --- a/configure.ac |
|---|
| 4 | | +++ b/configure.ac |
|---|
| 5 | | @@ -161,25 +166,61 @@ AC_SUBST(THREAD_LIBS) |
|---|
| | 1 | Index: src/read_cache.c |
|---|
| | 2 | =================================================================== |
|---|
| | 3 | --- src/read_cache.c (revision 1096) |
|---|
| | 4 | +++ src/read_cache.c (working copy) |
|---|
| | 5 | @@ -37,8 +37,8 @@ |
|---|
| | 6 | #include <sys/time.h> |
|---|
| | 7 | #include <time.h> |
|---|
| | 8 | #include "dvd_types.h" |
|---|
| | 9 | -#include <libdvdread/nav_types.h> |
|---|
| | 10 | -#include <libdvdread/ifo_types.h> |
|---|
| | 11 | +#include <dvdread/nav_types.h> |
|---|
| | 12 | +#include <dvdread/ifo_types.h> |
|---|
| | 13 | #include "remap.h" |
|---|
| | 14 | #include "vm/decoder.h" |
|---|
| | 15 | #include "vm/vm.h" |
|---|
| | 16 | Index: src/navigation.c |
|---|
| | 17 | =================================================================== |
|---|
| | 18 | --- src/navigation.c (revision 1096) |
|---|
| | 19 | +++ src/navigation.c (working copy) |
|---|
| | 20 | @@ -30,8 +30,8 @@ |
|---|
| | 21 | #include <string.h> |
|---|
| | 22 | #include <sys/time.h> |
|---|
| | 23 | #include "dvd_types.h" |
|---|
| | 24 | -#include <libdvdread/nav_types.h> |
|---|
| | 25 | -#include <libdvdread/ifo_types.h> |
|---|
| | 26 | +#include <dvdread/nav_types.h> |
|---|
| | 27 | +#include <dvdread/ifo_types.h> |
|---|
| | 28 | #include "remap.h" |
|---|
| | 29 | #include "vm/decoder.h" |
|---|
| | 30 | #include "vm/vm.h" |
|---|
| | 31 | Index: src/settings.c |
|---|
| | 32 | =================================================================== |
|---|
| | 33 | --- src/settings.c (revision 1096) |
|---|
| | 34 | +++ src/settings.c (working copy) |
|---|
| | 35 | @@ -30,8 +30,8 @@ |
|---|
| | 36 | #include <string.h> |
|---|
| | 37 | #include <sys/time.h> |
|---|
| | 38 | #include "dvd_types.h" |
|---|
| | 39 | -#include <libdvdread/nav_types.h> |
|---|
| | 40 | -#include <libdvdread/ifo_types.h> |
|---|
| | 41 | +#include <dvdread/nav_types.h> |
|---|
| | 42 | +#include <dvdread/ifo_types.h> |
|---|
| | 43 | #include "remap.h" |
|---|
| | 44 | #include "vm/decoder.h" |
|---|
| | 45 | #include "vm/vm.h" |
|---|
| | 46 | Index: src/vm/vm.c |
|---|
| | 47 | =================================================================== |
|---|
| | 48 | --- src/vm/vm.c (revision 1096) |
|---|
| | 49 | +++ src/vm/vm.c (working copy) |
|---|
| | 50 | @@ -40,9 +40,9 @@ |
|---|
| | 51 | #include <sys/time.h> |
|---|
| | 52 | #include <fcntl.h> |
|---|
| | 53 | |
|---|
| | 54 | -#include <libdvdread/nav_types.h> |
|---|
| | 55 | -#include <libdvdread/ifo_types.h> |
|---|
| | 56 | -#include <libdvdread/ifo_read.h> |
|---|
| | 57 | +#include <dvdread/nav_types.h> |
|---|
| | 58 | +#include <dvdread/ifo_types.h> |
|---|
| | 59 | +#include <dvdread/ifo_read.h> |
|---|
| | 60 | #include "dvd_types.h" |
|---|
| | 61 | |
|---|
| | 62 | #include "decoder.h" |
|---|
| | 63 | @@ -139,19 +139,18 @@ |
|---|
| | 64 | * all off_t are 64bit. |
|---|
| | 65 | */ |
|---|
| | 66 | off_t off; |
|---|
| | 67 | - int fd, i; |
|---|
| | 68 | + int i, fd; |
|---|
| | 69 | uint8_t data[DVD_VIDEO_LB_LEN]; |
|---|
| | 70 | |
|---|
| | 71 | /* Read DVD name */ |
|---|
| | 72 | fd = open(device, O_RDONLY); |
|---|
| | 73 | if (fd > 0) { |
|---|
| | 74 | off = lseek( fd, 32 * (off_t) DVD_VIDEO_LB_LEN, SEEK_SET ); |
|---|
| | 75 | - if( off == ( 32 * (off_t) DVD_VIDEO_LB_LEN ) ) { |
|---|
| | 76 | - off = read( fd, data, DVD_VIDEO_LB_LEN ); |
|---|
| | 77 | - close(fd); |
|---|
| | 78 | + if( off == 16 ) { |
|---|
| | 79 | + off = read( fd, data, DVD_VIDEO_LB_LEN ); |
|---|
| | 80 | if (off == ( (off_t) DVD_VIDEO_LB_LEN )) { |
|---|
| | 81 | fprintf(MSG_OUT, "libdvdnav: DVD Title: "); |
|---|
| | 82 | - for(i=25; i < 73; i++ ) { |
|---|
| | 83 | + for(i=40; i < 73; i++ ) { |
|---|
| | 84 | if((data[i] == 0)) break; |
|---|
| | 85 | if((data[i] > 32) && (data[i] < 127)) { |
|---|
| | 86 | fprintf(MSG_OUT, "%c", data[i]); |
|---|
| | 87 | @@ -159,10 +158,12 @@ |
|---|
| | 88 | fprintf(MSG_OUT, " "); |
|---|
| | 89 | } |
|---|
| | 90 | } |
|---|
| | 91 | - strncpy(name, (char*) &data[25], 48); |
|---|
| | 92 | - name[48] = 0; |
|---|
| | 93 | + strncpy(name, (char*) &data[40], 32); |
|---|
| | 94 | + i=31; |
|---|
| | 95 | + while( (i >= 0) && (name[i] <= ' ')) --i; |
|---|
| | 96 | + name[i+1] = '\0'; |
|---|
| | 97 | fprintf(MSG_OUT, "\nlibdvdnav: DVD Serial Number: "); |
|---|
| | 98 | - for(i=73; i < 89; i++ ) { |
|---|
| | 99 | + for(i=813; i < 829; i++ ) { |
|---|
| | 100 | if((data[i] == 0)) break; |
|---|
| | 101 | if((data[i] > 32) && (data[i] < 127)) { |
|---|
| | 102 | fprintf(MSG_OUT, "%c", data[i]); |
|---|
| | 103 | Index: src/vm/decoder.c |
|---|
| | 104 | =================================================================== |
|---|
| | 105 | --- src/vm/decoder.c (revision 1096) |
|---|
| | 106 | +++ src/vm/decoder.c (working copy) |
|---|
| | 107 | @@ -33,8 +33,8 @@ |
|---|
| | 108 | #include <limits.h> |
|---|
| | 109 | #include <string.h> /* For memset */ |
|---|
| | 110 | #include <sys/time.h> |
|---|
| | 111 | -#include <libdvdread/nav_types.h> |
|---|
| | 112 | -#include <libdvdread/ifo_types.h> /* vm_cmd_t */ |
|---|
| | 113 | +#include <dvdread/nav_types.h> |
|---|
| | 114 | +#include <dvdread/ifo_types.h> /* vm_cmd_t */ |
|---|
| | 115 | |
|---|
| | 116 | #include "dvd_types.h" |
|---|
| | 117 | #include "remap.h" |
|---|
| | 118 | Index: src/vm/vmcmd.c |
|---|
| | 119 | =================================================================== |
|---|
| | 120 | --- src/vm/vmcmd.c (revision 1096) |
|---|
| | 121 | +++ src/vm/vmcmd.c (working copy) |
|---|
| | 122 | @@ -34,8 +34,8 @@ |
|---|
| | 123 | #include <sys/time.h> |
|---|
| | 124 | |
|---|
| | 125 | #include "dvd_types.h" |
|---|
| | 126 | -#include <libdvdread/nav_types.h> |
|---|
| | 127 | -#include <libdvdread/ifo_types.h> |
|---|
| | 128 | +#include <dvdread/nav_types.h> |
|---|
| | 129 | +#include <dvdread/ifo_types.h> |
|---|
| | 130 | #include "decoder.h" |
|---|
| | 131 | #include "remap.h" |
|---|
| | 132 | #include "vm.h" |
|---|
| | 133 | Index: src/searching.c |
|---|
| | 134 | =================================================================== |
|---|
| | 135 | --- src/searching.c (revision 1096) |
|---|
| | 136 | +++ src/searching.c (working copy) |
|---|
| | 137 | @@ -33,8 +33,8 @@ |
|---|
| | 138 | #include <stdlib.h> |
|---|
| | 139 | #include <sys/time.h> |
|---|
| | 140 | #include "dvd_types.h" |
|---|
| | 141 | -#include <libdvdread/nav_types.h> |
|---|
| | 142 | -#include <libdvdread/ifo_types.h> |
|---|
| | 143 | +#include <dvdread/nav_types.h> |
|---|
| | 144 | +#include <dvdread/ifo_types.h> |
|---|
| | 145 | #include "remap.h" |
|---|
| | 146 | #include "vm/decoder.h" |
|---|
| | 147 | #include "vm/vm.h" |
|---|
| | 148 | Index: src/remap.c |
|---|
| | 149 | =================================================================== |
|---|
| | 150 | --- src/remap.c (revision 1096) |
|---|
| | 151 | +++ src/remap.c (working copy) |
|---|
| | 152 | @@ -39,8 +39,8 @@ |
|---|
| | 153 | #include <limits.h> |
|---|
| | 154 | #include <sys/time.h> |
|---|
| | 155 | #include "dvd_types.h" |
|---|
| | 156 | -#include <libdvdread/nav_types.h> |
|---|
| | 157 | -#include <libdvdread/ifo_types.h> |
|---|
| | 158 | +#include <dvdread/nav_types.h> |
|---|
| | 159 | +#include <dvdread/ifo_types.h> |
|---|
| | 160 | #include "remap.h" |
|---|
| | 161 | #include "vm/decoder.h" |
|---|
| | 162 | #include "vm/vm.h" |
|---|
| | 163 | Index: src/highlight.c |
|---|
| | 164 | =================================================================== |
|---|
| | 165 | --- src/highlight.c (revision 1096) |
|---|
| | 166 | +++ src/highlight.c (working copy) |
|---|
| | 167 | @@ -32,7 +32,7 @@ |
|---|
| | 168 | #include <limits.h> |
|---|
| | 169 | #include <string.h> |
|---|
| | 170 | #include <sys/time.h> |
|---|
| | 171 | -#include <libdvdread/nav_types.h> |
|---|
| | 172 | +#include <dvdread/nav_types.h> |
|---|
| | 173 | #include "dvd_types.h" |
|---|
| | 174 | #include "remap.h" |
|---|
| | 175 | #include "vm/decoder.h" |
|---|
| | 176 | Index: src/dvdnav.c |
|---|
| | 177 | =================================================================== |
|---|
| | 178 | --- src/dvdnav.c (revision 1096) |
|---|
| | 179 | +++ src/dvdnav.c (working copy) |
|---|
| | 180 | @@ -37,9 +37,9 @@ |
|---|
| | 181 | #include <string.h> |
|---|
| | 182 | #include <sys/time.h> |
|---|
| | 183 | #include "dvd_types.h" |
|---|
| | 184 | -#include <libdvdread/dvd_reader.h> |
|---|
| | 185 | -#include <libdvdread/nav_types.h> |
|---|
| | 186 | -#include <libdvdread/ifo_types.h> /* For vm_cmd_t */ |
|---|
| | 187 | +#include <dvdread/dvd_reader.h> |
|---|
| | 188 | +#include <dvdread/nav_types.h> |
|---|
| | 189 | +#include <dvdread/ifo_types.h> /* For vm_cmd_t */ |
|---|
| | 190 | #include "remap.h" |
|---|
| | 191 | #include "vm/decoder.h" |
|---|
| | 192 | #include "vm/vm.h" |
|---|
| | 193 | @@ -47,7 +47,7 @@ |
|---|
| | 194 | #include "dvdnav_events.h" |
|---|
| | 195 | #include "dvdnav_internal.h" |
|---|
| | 196 | #include "read_cache.h" |
|---|
| | 197 | -#include <libdvdread/nav_read.h> |
|---|
| | 198 | +#include <dvdread/nav_read.h> |
|---|
| | 199 | #include "remap.h" |
|---|
| | 200 | |
|---|
| | 201 | static dvdnav_status_t dvdnav_clear(dvdnav_t * this) { |
|---|
| | 202 | Index: src/dvdnav.h |
|---|
| | 203 | =================================================================== |
|---|
| | 204 | --- src/dvdnav.h (revision 1096) |
|---|
| | 205 | +++ src/dvdnav.h (working copy) |
|---|
| | 206 | @@ -37,9 +37,9 @@ |
|---|
| | 207 | |
|---|
| | 208 | #ifndef DVDNAV_COMPILE |
|---|
| | 209 | # include <dvdnav/dvd_types.h> |
|---|
| | 210 | -# include <libdvdread/dvd_reader.h> |
|---|
| | 211 | -# include <libdvdread/nav_types.h> |
|---|
| | 212 | -# include <libdvdread/ifo_types.h> /* For vm_cmd_t */ |
|---|
| | 213 | +# include <dvdread/dvd_reader.h> |
|---|
| | 214 | +# include <dvdread/nav_types.h> |
|---|
| | 215 | +# include <dvdread/ifo_types.h> /* For vm_cmd_t */ |
|---|
| | 216 | # include <dvdnav/dvdnav_events.h> |
|---|
| | 217 | #endif |
|---|
| | 218 | |
|---|
| | 219 | Index: configure.ac |
|---|
| | 220 | =================================================================== |
|---|
| | 221 | --- configure.ac (revision 1096) |
|---|
| | 222 | +++ configure.ac (working copy) |
|---|
| | 223 | @@ -155,26 +155,62 @@ |
|---|
| 96 | | diff --git a/src/vm/vm.c b/src/vm/vm.c |
|---|
| 97 | | index 53bef88..db855c7 100644 |
|---|
| 98 | | --- a/src/vm/vm.c |
|---|
| 99 | | +++ b/src/vm/vm.c |
|---|
| 100 | | @@ -134,24 +134,25 @@ static void vm_print_current_domain_state(vm_t *vm) { |
|---|
| 101 | | } |
|---|
| 102 | | #endif |
|---|
| 103 | | |
|---|
| 104 | | +#include <libdvdread/dvd_input.h> |
|---|
| 105 | | + |
|---|
| 106 | | static void dvd_read_name(char *name, const char *device) { |
|---|
| 107 | | /* Because we are compiling with _FILE_OFFSET_BITS=64 |
|---|
| 108 | | * all off_t are 64bit. |
|---|
| 109 | | */ |
|---|
| 110 | | off_t off; |
|---|
| 111 | | - int fd, i; |
|---|
| 112 | | + dvd_input_t fd; int i; |
|---|
| 113 | | uint8_t data[DVD_VIDEO_LB_LEN]; |
|---|
| 114 | | |
|---|
| 115 | | /* Read DVD name */ |
|---|
| 116 | | - fd = open(device, O_RDONLY); |
|---|
| 117 | | + fd = dvdinput_open(device); |
|---|
| 118 | | if (fd > 0) { |
|---|
| 119 | | - off = lseek( fd, 32 * (off_t) DVD_VIDEO_LB_LEN, SEEK_SET ); |
|---|
| 120 | | - if( off == ( 32 * (off_t) DVD_VIDEO_LB_LEN ) ) { |
|---|
| 121 | | - off = read( fd, data, DVD_VIDEO_LB_LEN ); |
|---|
| 122 | | - close(fd); |
|---|
| 123 | | - if (off == ( (off_t) DVD_VIDEO_LB_LEN )) { |
|---|
| 124 | | + off = dvdinput_seek( fd, 16 ); |
|---|
| 125 | | + if( off == 16 ) { |
|---|
| 126 | | + off = dvdinput_read( fd, data, 1, DVDINPUT_NOFLAGS ); |
|---|
| 127 | | + if (off == 1 ) { |
|---|
| 128 | | fprintf(MSG_OUT, "libdvdnav: DVD Title: "); |
|---|
| 129 | | - for(i=25; i < 73; i++ ) { |
|---|
| 130 | | + for(i=40; i < 73; i++ ) { |
|---|
| 131 | | if((data[i] == 0)) break; |
|---|
| 132 | | if((data[i] > 32) && (data[i] < 127)) { |
|---|
| 133 | | fprintf(MSG_OUT, "%c", data[i]); |
|---|
| 134 | | @@ -159,10 +160,12 @@ static void dvd_read_name(char *name, const char *device) { |
|---|
| 135 | | fprintf(MSG_OUT, " "); |
|---|
| 136 | | } |
|---|
| 137 | | } |
|---|
| 138 | | - strncpy(name, (char*) &data[25], 48); |
|---|
| 139 | | - name[48] = 0; |
|---|
| 140 | | + strncpy(name, (char*) &data[40], 32); |
|---|
| 141 | | + i=31; |
|---|
| 142 | | + while( (i >= 0) && (name[i] <= ' ')) --i; |
|---|
| 143 | | + name[i+1] = '\0'; |
|---|
| 144 | | fprintf(MSG_OUT, "\nlibdvdnav: DVD Serial Number: "); |
|---|
| 145 | | - for(i=73; i < 89; i++ ) { |
|---|
| 146 | | + for(i=813; i < 829; i++ ) { |
|---|
| 147 | | if((data[i] == 0)) break; |
|---|
| 148 | | if((data[i] > 32) && (data[i] < 127)) { |
|---|
| 149 | | fprintf(MSG_OUT, "%c", data[i]); |
|---|
| 150 | | @@ -186,7 +189,7 @@ static void dvd_read_name(char *name, const char *device) { |
|---|
| 151 | | } else { |
|---|
| 152 | | fprintf(MSG_OUT, "libdvdnav: Can't seek to block %u\n", 32 ); |
|---|
| 153 | | } |
|---|
| 154 | | - close(fd); |
|---|
| 155 | | + dvdinput_close(fd); |
|---|
| 156 | | } else { |
|---|
| 157 | | fprintf(MSG_OUT, "NAME OPEN FAILED\n"); |
|---|
| 158 | | } |
|---|