libbluray | branch: master | hpi1 <[email protected]> | Fri Apr 15 14:30:09 2016 +0300| [cf162d1dde8d5a25593faabf2d09909f853e1baa] | committer: hpi1
Improve BDJ_EVENT_CHAPTER triggering Avoid duplicate chapter event when passing link mark. Do not send chapter event when there are no chapters (psr == 0xffff). > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=cf162d1dde8d5a25593faabf2d09909f853e1baa --- src/libbluray/bluray.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c index 86a92e0..0e60b68 100644 --- a/src/libbluray/bluray.c +++ b/src/libbluray/bluray.c @@ -2288,12 +2288,7 @@ static int _open_playlist(BLURAY *bd, const char *f_name, unsigned angle) bd_psr_write(bd->regs, PSR_PLAYLIST, atoi(bd->title->name)); bd_psr_write(bd->regs, PSR_ANGLE_NUMBER, bd->title->angle + 1); - - if (_is_interactive_title(bd)) { - bd_psr_write(bd->regs, PSR_CHAPTER, 0xffff); - } else { - bd_psr_write(bd->regs, PSR_CHAPTER, 1); - } + bd_psr_write(bd->regs, PSR_CHAPTER, 0xffff); // Get the initial clip of the playlist bd->st0.clip = nav_next_clip(bd->title, NULL); @@ -2943,10 +2938,6 @@ static void _process_psr_write_event(BLURAY *bd, BD_PSR_EVENT *ev) _bdj_event (bd, BDJ_EVENT_PLAYITEM,ev->new_val); _queue_event(bd, BD_EVENT_PLAYITEM, ev->new_val); break; - case PSR_CHAPTER: - _bdj_event (bd, BDJ_EVENT_CHAPTER, ev->new_val); - _queue_event(bd, BD_EVENT_CHAPTER, ev->new_val); - break; case PSR_TIME: _bdj_event (bd, BDJ_EVENT_PTS, ev->new_val); break; @@ -2976,6 +2967,13 @@ static void _process_psr_change_event(BLURAY *bd, BD_PSR_EVENT *ev) disc_event(bd->disc, DISC_EVENT_TITLE, ev->new_val); break; + case PSR_CHAPTER: + _bdj_event (bd, BDJ_EVENT_CHAPTER, ev->new_val); + if (ev->new_val != 0xffff) { + _queue_event(bd, BD_EVENT_CHAPTER, ev->new_val); + } + break; + /* stream selection */ case PSR_IG_STREAM_ID: _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
