summaryrefslogtreecommitdiff
path: root/xine
diff options
context:
space:
mode:
Diffstat (limited to 'xine')
-rw-r--r--xine/BluRay/input_bluray.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/xine/BluRay/input_bluray.c b/xine/BluRay/input_bluray.c
index 3a7e3e87..b72c9c81 100644
--- a/xine/BluRay/input_bluray.c
+++ b/xine/BluRay/input_bluray.c
@@ -661,8 +661,14 @@ static off_t bluray_plugin_read (input_plugin_t *this_gen, char *buf, off_t len)
BD_EVENT ev;
result = bd_read_ext (this->bdh, (unsigned char *)buf, len, &ev);
handle_libbluray_event(this, ev);
- if (result == 0)
+ if (result == 0) {
handle_events(this);
+ if (ev.event == BD_EVENT_NONE) {
+ if (this->stream->demux_action_pending) {
+ break;
+ }
+ }
+ }
} while (!this->error && result == 0);
} else {
result = bd_read (this->bdh, (unsigned char *)buf, len);