On 04/02/2016 06:22 AM, John Stebbins wrote: > From: John Stebbins <jstebb...@jetheaddev.com> > > If the current position is before the first chapter in the current clip, > chapter lookup fails. This can be seen in US Star Wars IV release where > chapter events jump from chapter 3 back to 1. > --- > src/libbluray/bdnav/navigation.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/src/libbluray/bdnav/navigation.c > b/src/libbluray/bdnav/navigation.c > index 60eccbb..4752196 100644 > --- a/src/libbluray/bdnav/navigation.c > +++ b/src/libbluray/bdnav/navigation.c > @@ -754,6 +754,15 @@ uint32_t nav_chapter_get_current(NAV_CLIP *clip, > uint32_t clip_pkt) > else > return 0; > } > + if (mark->clip_ref < clip->ref) { > + if ( ii == title->chap_list.count - 1 ) { > + return ii; > + } > + mark = &title->chap_list.mark[ii+1]; > + if (mark->clip_ref == clip->ref && mark->clip_pkt > clip_pkt) { > + return ii; > + } > + } > if (mark->clip_ref == clip->ref && mark->clip_pkt <= clip_pkt) { > if ( ii == title->chap_list.count - 1 ) { > return ii;
Related to this, is there a reason that a chapter event is generated for every mark? This leads to duplicate chapter events that occur between actual chapter mark positions since not all marks are chapter marks. It is these duplicate chapter events at non-chapter positions that revealed this code error. -- John GnuPG fingerprint: D0EC B3DB C372 D1F1 0B01 83F0 49F1 D7B2 60D4 D0F7
signature.asc
Description: OpenPGP digital signature
_______________________________________________ libbluray-devel mailing list libbluray-devel@videolan.org https://mailman.videolan.org/listinfo/libbluray-devel