libbluray | branch: master | npzacs <[email protected]> | Sun Dec 1 18:54:07 2013 +0200| [0c6f00cfbe6582f8c57db7f3dc1fdb7255c9c8ae] | committer: npzacs
Forward title change events to libbdplus > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=0c6f00cfbe6582f8c57db7f3dc1fdb7255c9c8ae --- src/libbluray/bluray.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c index 7012cd9..f5580fb 100644 --- a/src/libbluray/bluray.c +++ b/src/libbluray/bluray.c @@ -871,9 +871,6 @@ static int _libbdplus_init(BLURAY *bd) /* connect registers */ libbdplus_psr(bd->libbdplus, (void*)bd->regs, (void*)bd_psr_read, (void*)bd_psr_write); - /* start VM */ - libbdplus_start(bd->libbdplus); - bd->disc_info.bdplus_handled = 1; return 1; } @@ -2132,6 +2129,11 @@ uint32_t bd_get_titles(BLURAY *bd, uint8_t flags, uint32_t min_title_length) return 0; } + /* start BD+. No real title info will be passed to BD+ VM ... */ + if (bd->libbdplus) { + libbdplus_event(bd->libbdplus, 0xffffffff, bd->index->num_titles, 0); + } + return bd->title_list->count; } @@ -2498,6 +2500,7 @@ static void _process_psr_write_event(BLURAY *bd, BD_PSR_EVENT *ev) break; case PSR_TITLE_NUMBER: _queue_event(bd, BD_EVENT_TITLE, ev->new_val); + libbdplus_event(bd->libbdplus, 0x110, ev->new_val, 0); break; case PSR_PLAYLIST: _queue_event(bd, BD_EVENT_PLAYLIST, ev->new_val); @@ -2760,6 +2763,9 @@ int bd_play(BLURAY *bd) _queue_initial_psr_events(bd); bd_psr_unlock(bd->regs); + /* start BD+ VM */ + libbdplus_start(bd->libbdplus); + /* start playback from FIRST PLAY title */ result = _play_title(bd, BLURAY_TITLE_FIRST_PLAY); _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
