From 2adb26d51cd4ce0ac1206d2ee1c8fc870bd56850 Mon Sep 17 00:00:00 2001 From: phintuka Date: Wed, 24 Nov 2010 13:54:59 +0000 Subject: Use bd_read_ext() when playing disc in navigation mode --- xine/BluRay/input_bluray.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/xine/BluRay/input_bluray.c b/xine/BluRay/input_bluray.c index 8d2abd87..dbf30127 100644 --- a/xine/BluRay/input_bluray.c +++ b/xine/BluRay/input_bluray.c @@ -530,8 +530,18 @@ static off_t bluray_plugin_read (input_plugin_t *this_gen, char *buf, off_t len) handle_events(this); - result = bd_read(this->bdh, (unsigned char *)buf, len); - handle_libbluray_events(this); + if (this->nav_mode) { + do { + BD_EVENT ev; + result = bd_read_ext (this->bdh, (unsigned char *)buf, len, &ev); + handle_libbluray_event(this, ev); + if (result == 0) + handle_events(this); + } while (!this->error && result == 0); + } else { + result = bd_read (this->bdh, (unsigned char *)buf, len); + handle_libbluray_events(this); + } if (result < 0) LOGMSG("bd_read() failed: %s (%d of %d)\n", strerror(errno), (int)result, (int)len); -- cgit v1.2.3