Hello,
I am super-annoyed, since I have a patch on dvdnav, that I apply on all
VLC release, on Windows and Mac OS X, since (at least 2006).
I understand absolutely nothing of this obscure patch on this obscure
piece of code...
It does work quite, but I can't explain it, since it predates my work on
the project.
I thought I should share it, with you, upstream, as someone could make
some sense out of it.
With my best (sorry) regards
--
Jean-Baptiste Kempf
http://www.jbkempf.com/ - +33 672 704 734
Sent from my Electronic Device
diff -ruN libdvdnav/src/vm/vm.c libdvdnav.new/src/vm/vm.c
--- libdvdnav/src/vm/vm.c 2010-11-22 00:59:43.000000000 +0100
+++ libdvdnav.new/src/vm/vm.c 2011-10-11 01:02:07.852470536 +0200
@@ -174,12 +174,11 @@
fd = open(device, O_RDONLY);
if (fd > 0) {
off = lseek( fd, 32 * (off_t) DVD_VIDEO_LB_LEN, SEEK_SET );
- if( off == ( 32 * (off_t) DVD_VIDEO_LB_LEN ) ) {
+ if (off == 16) {
off = read( fd, data, DVD_VIDEO_LB_LEN );
- close(fd);
if (off == ( (off_t) DVD_VIDEO_LB_LEN )) {
fprintf(MSG_OUT, "libdvdnav: DVD Title: ");
- for(i=25; i < 73; i++ ) {
+ for(i=40; i < 73; i++ ) {
if((data[i] == 0)) break;
if((data[i] > 32) && (data[i] < 127)) {
fprintf(MSG_OUT, "%c", data[i]);
@@ -187,10 +186,12 @@
fprintf(MSG_OUT, " ");
}
}
- strncpy(name, (char*) &data[25], 48);
- name[48] = 0;
+ strncpy(name, (char*) &data[40], 32);
+ i=31;
+ while( (i>=0) && (name[i] <= ' ')) --i;
+ name[i+1] = '\0';
fprintf(MSG_OUT, "\nlibdvdnav: DVD Serial Number: ");
- for(i=73; i < 89; i++ ) {
+ for(i=813; i < 829; i++ ) {
if((data[i] == 0)) break;
if((data[i] > 32) && (data[i] < 127)) {
fprintf(MSG_OUT, "%c", data[i]);
_______________________________________________
DVDnav-discuss mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/dvdnav-discuss