| | 274 | @@ -126,24 +130,25 @@ |
|---|
| | 275 | } |
|---|
| | 276 | #endif |
|---|
| | 277 | |
|---|
| | 278 | +#include <dvdread/dvd_input.h> |
|---|
| | 279 | + |
|---|
| | 280 | static void dvd_read_name(char *name, const char *device) { |
|---|
| | 281 | /* Because we are compiling with _FILE_OFFSET_BITS=64 |
|---|
| | 282 | * all off_t are 64bit. |
|---|
| | 283 | */ |
|---|
| | 284 | off_t off; |
|---|
| | 285 | - int fd, i; |
|---|
| | 286 | + dvd_input_t fd; int i; |
|---|
| | 287 | uint8_t data[DVD_VIDEO_LB_LEN]; |
|---|
| | 288 | |
|---|
| | 289 | /* Read DVD name */ |
|---|
| | 290 | - fd = open(device, O_RDONLY); |
|---|
| | 291 | + fd = dvdinput_open(device); |
|---|
| | 292 | if (fd > 0) { |
|---|
| | 293 | - off = lseek( fd, 32 * (off_t) DVD_VIDEO_LB_LEN, SEEK_SET ); |
|---|
| | 294 | - if( off == ( 32 * (off_t) DVD_VIDEO_LB_LEN ) ) { |
|---|
| | 295 | - off = read( fd, data, DVD_VIDEO_LB_LEN ); |
|---|
| | 296 | - close(fd); |
|---|
| | 297 | - if (off == ( (off_t) DVD_VIDEO_LB_LEN )) { |
|---|
| | 298 | + off = dvdinput_seek( fd, 16 ); |
|---|
| | 299 | + if( off == 16 ) { |
|---|
| | 300 | + off = dvdinput_read( fd, data, 1, DVDINPUT_NOFLAGS ); |
|---|
| | 301 | + if (off == 1 ) { |
|---|
| | 302 | fprintf(MSG_OUT, "libdvdnav: DVD Title: "); |
|---|
| | 303 | - for(i=25; i < 73; i++ ) { |
|---|
| | 304 | + for(i=40; i < 73; i++ ) { |
|---|
| | 305 | if((data[i] == 0)) break; |
|---|
| | 306 | if((data[i] > 32) && (data[i] < 127)) { |
|---|
| | 307 | fprintf(MSG_OUT, "%c", data[i]); |
|---|
| | 308 | @@ -151,10 +156,12 @@ |
|---|
| | 309 | fprintf(MSG_OUT, " "); |
|---|
| | 310 | } |
|---|
| | 311 | } |
|---|
| | 312 | - strncpy(name, &data[25], 48); |
|---|
| | 313 | - name[48] = 0; |
|---|
| | 314 | + strncpy(name, &data[40], 32); |
|---|
| | 315 | + i=31; |
|---|
| | 316 | + while( (i >= 0) && (name[i] <= ' ')) --i; |
|---|
| | 317 | + name[i+1] = '\0'; |
|---|
| | 318 | fprintf(MSG_OUT, "\nlibdvdnav: DVD Serial Number: "); |
|---|
| | 319 | - for(i=73; i < 89; i++ ) { |
|---|
| | 320 | + for(i=813; i < 829; i++ ) { |
|---|
| | 321 | if((data[i] == 0)) break; |
|---|
| | 322 | if((data[i] > 32) && (data[i] < 127)) { |
|---|
| | 323 | fprintf(MSG_OUT, "%c", data[i]); |
|---|
| | 324 | @@ -178,7 +185,7 @@ |
|---|
| | 325 | } else { |
|---|
| | 326 | fprintf(MSG_OUT, "libdvdnav: Can't seek to block %u\n", 32 ); |
|---|
| | 327 | } |
|---|
| | 328 | - close(fd); |
|---|
| | 329 | + dvdinput_close(fd); |
|---|
| | 330 | } else { |
|---|
| | 331 | fprintf(MSG_OUT, "NAME OPEN FAILED\n"); |
|---|
| | 332 | } |
|---|