diff options
author | van <[email protected]> | 2009-05-16 07:00:02 +0000 |
---|---|---|
committer | van <[email protected]> | 2009-05-16 07:00:02 +0000 |
commit | 9088803bc54b71516392ba83d7b6c58b55a89be8 (patch) | |
tree | 382f64befa66d02475e86d5d09a0414706319bc4 /contrib | |
parent | 8bb84abfb17b321ddaa5e2c5dd2c43486fe3dc29 (diff) |
- Handle titles that use more than one PGC (like the one in this thread: http://forum.handbrake.fr/viewtopic.php?f=5&t=10678&p=55575&hilit=genesis#p55620).
- Make pgcn_map local rather than static since there can be simultaneous scans from both GUI and queue service threads and statics aren't thread safe. Also make map 32 bytes since standard allows only 255 PGCs per title.
- Fix minor bugs in NextPgcn (used pgcn rather than next_pgcn so tested wrong bit) and dvdnav_seek (missing 'break' & extraneous 'while').
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2420 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/libdvdnav/A02-mult-pgc.patch | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/contrib/libdvdnav/A02-mult-pgc.patch b/contrib/libdvdnav/A02-mult-pgc.patch new file mode 100644 index 000000000..5ccaa689e --- /dev/null +++ b/contrib/libdvdnav/A02-mult-pgc.patch @@ -0,0 +1,22 @@ +# the bit tested here does not indicate 'random or shuffle' - it only says +# that the title uses multiple PGCs. Since libdvdnav mostly deals correctly +# with mult PGC titles (modulo some weirdness when seeking) we need the +# state to get set correctly. +--- libdvdnav/src/vm/vm.c.orig 2009-05-13 20:44:12.000000000 -0700 ++++ libdvdnav/src/vm/vm.c 2009-05-13 20:46:02.000000000 -0700 +@@ -1758,14 +1758,10 @@ + 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"); +- } + } + return 1; + } |