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;
-- 
2.5.5

_______________________________________________
libbluray-devel mailing list
libbluray-devel@videolan.org
https://mailman.videolan.org/listinfo/libbluray-devel

Reply via email to