libdvdnav_git.bb: add workaround to play random/shuffle titles (untested yet)
authorghost <andreas.monzner@multimedia-labs.de>
Mon, 13 Dec 2010 09:16:55 +0000 (10:16 +0100)
committerghost <andreas.monzner@multimedia-labs.de>
Mon, 13 Dec 2010 09:18:26 +0000 (10:18 +0100)
recipes/libdvdnav/files/dvdnav-fix-random-shuffle-titles.patch [new file with mode: 0644]
recipes/libdvdnav/libdvdnav_git.bb

diff --git a/recipes/libdvdnav/files/dvdnav-fix-random-shuffle-titles.patch b/recipes/libdvdnav/files/dvdnav-fix-random-shuffle-titles.patch
new file mode 100644 (file)
index 0000000..89fe5cb
--- /dev/null
@@ -0,0 +1,28 @@
+diff -Naur git-org/src/vm/vm.c git/src/vm/vm.c
+--- git-org/src/vm/vm.c        2010-06-07 11:28:53.000000000 +0200
++++ git/src/vm/vm.c    2010-12-13 10:08:11.765126889 +0100
+@@ -1662,6 +1662,7 @@
+ /* Figure out the correct pgN from the cell and update (vm->state). */
+ static int set_PGN(vm_t *vm) {
+   int new_pgN = 0;
++  int dummy, part;
+   while(new_pgN < (vm->state).pgc->nr_of_programs
+       && (vm->state).cellN >= (vm->state).pgc->program_map[new_pgN])
+@@ -1678,14 +1679,8 @@
+     if((vm->state).TTN_REG > vm->vmgi->tt_srpt->nr_of_srpts)
+       return 0; /* ?? */
+     pb_ty = &vm->vmgi->tt_srpt->title[(vm->state).TTN_REG - 1].pb_ty;
+-    if(pb_ty->multi_or_random_pgc_title == /* One_Sequential_PGC_Title */ 0) {
+-      int dummy, part;
+-      vm_get_current_title_part(vm, &dummy, &part);
+-      (vm->state).PTTN_REG = part;
+-    } else {
+-      /* FIXME: Handle RANDOM or SHUFFLE titles. */
+-      fprintf(MSG_OUT, "libdvdnav: RANDOM or SHUFFLE titles are NOT handled yet.\n");
+-    }
++    vm_get_current_title_part(vm, &dummy, &part);
++    (vm->state).PTTN_REG = part;
+   }
+   return 1;
+ }
index d8aa652..4cac975 100644 (file)
@@ -6,14 +6,15 @@ DEPENDS = "libdvdread"
 RDEPENDS = "libdvdread"
 
 PV = "4.1.3+git"
-PR = "r7"
+PR = "r8"
 
 #debian/4.1.3-7
 SRCREV="850e513d4fea29b40879378b13003cd677e5214b"
 
 EXTRA_OECONF = "--with-dvdread-prefix=${STAGING_LIBDIR}/.."
 
-SRC_URI = "git://git.debian-maintainers.org/git/daniel/libdvdnav.git;protocol=git;branch=debian"
+SRC_URI = "git://git.debian-maintainers.org/git/daniel/libdvdnav.git;protocol=git;branch=debian \
+       file://dvdnav-fix-random-shuffle-titles.patch;patch=1;pnum=1"
 
 S = "${WORKDIR}/git"