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


Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to