libbluray | branch: master | hpi1 <[email protected]> | Wed Jul 2 14:40:59 2014 +0300| [beff5a17d18e402557b9b97829b1f6a8cba78eb3] | committer: hpi1
nav_*_search(): make sure returned packet number is not outside of the clip > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=beff5a17d18e402557b9b97829b1f6a8cba78eb3 --- ChangeLog | 1 + src/libbluray/bdnav/navigation.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/ChangeLog b/ChangeLog index c8a6d78..5828f9a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,4 @@ +- Fix bd_seek() jumping outside of clip/playlist. - Fix out of array bounds exception in some BD-J menus 2013-05-27: Version 0.6.0 diff --git a/src/libbluray/bdnav/navigation.c b/src/libbluray/bdnav/navigation.c index 22edd85..9612242 100644 --- a/src/libbluray/bdnav/navigation.c +++ b/src/libbluray/bdnav/navigation.c @@ -655,6 +655,9 @@ NAV_CLIP* nav_packet_search(NAV_TITLE *title, uint32_t pkt, uint32_t *clip_pkt, clip = &title->clip_list.clip[ii]; if (clip->cl != NULL) { *clip_pkt = clpi_access_point(clip->cl, pkt - pos + clip->start_pkt, 0, 0, out_time); + if (*clip_pkt < clip->start_pkt) { + *clip_pkt = clip->start_pkt; + } } else { *clip_pkt = clip->start_pkt; } @@ -730,6 +733,9 @@ NAV_CLIP* nav_time_search(NAV_TITLE *title, uint32_t tick, uint32_t *clip_pkt, u if (clip->cl != NULL) { *clip_pkt = clpi_lookup_spn(clip->cl, tick - pos + pi->in_time, 1, title->pl->play_item[clip->ref].clip[clip->angle].stc_id); + if (*clip_pkt < clip->start_pkt) { + *clip_pkt = clip->start_pkt; + } } else { *clip_pkt = clip->start_pkt; } _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
