[libdvd] add patch for reenable serial string
[vuplus_xbmc] / lib / libdvd / patches / libdvdnav_reenable_serialstring.diff
diff --git a/lib/libdvd/patches/libdvdnav_reenable_serialstring.diff b/lib/libdvd/patches/libdvdnav_reenable_serialstring.diff
new file mode 100644 (file)
index 0000000..80b2fd9
--- /dev/null
@@ -0,0 +1,28 @@
+diff --git a/libdvdnav/src/vm/vm.c b/libdvdnav/src/vm/vm.c
+index aea50f3..a14e675 100644
+--- a/libdvdnav/src/vm/vm.c
++++ b/libdvdnav/src/vm/vm.c
+@@ -176,7 +176,6 @@ static void dvd_read_name(char *name, char *serial, const char *device) {
+       off = lseek( fd, 32 * (off_t) DVD_VIDEO_LB_LEN, SEEK_SET );
+       if( off == ( 32 * (off_t) DVD_VIDEO_LB_LEN ) ) {
+         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++ ) {
+@@ -399,14 +398,13 @@ int vm_reset(vm_t *vm, const char *dvdroot) {
+       /* return 0; Not really used for now.. */
+     }
+     /* ifoRead_TXTDT_MGI(vmgi); Not implemented yet */
++    dvd_read_name(vm->dvd_name, vm->dvd_serial, dvdroot);
+ #ifdef _XBMC
+     if(DVDUDFVolumeInfo(vm->dvd, vm->dvd_name, sizeof(vm->dvd_name), NULL, 0))
+       if(DVDISOVolumeInfo(vm->dvd, vm->dvd_name, sizeof(vm->dvd_name), NULL, 0))
+         strcpy(vm->dvd_name, "");
+     fprintf(MSG_OUT, "libdvdnav: vm: DVD Title: %s\n", vm->dvd_name);
+-#else
+-    dvd_read_name(vm->dvd_name, vm->dvd_serial, dvdroot);
+ #endif
+     vm->map  = remap_loadmap(vm->dvd_name);
+   }