[libbluray-devel] commit: bd_read_ext(): handle (infinite time) still mode playlists (hpi1 )

git at videolan.org git at videolan.org
Sun Nov 28 16:27:17 CET 2010


libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Sun Nov 28 17:26:24 2010 +0200| [79cd0707a12638afbf625cdef29fb06de313cd46] | committer: hpi1 

bd_read_ext(): handle (infinite time) still mode playlists

> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=79cd0707a12638afbf625cdef29fb06de313cd46
---

 src/libbluray/bluray.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c
index 0e602e5..6d158f9 100644
--- a/src/libbluray/bluray.c
+++ b/src/libbluray/bluray.c
@@ -1839,6 +1839,15 @@ int bd_read_ext(BLURAY *bd, unsigned char *buf, int len, BD_EVENT *event)
     int bytes = bd_read(bd, buf, len);
 
     if (bytes == 0) {
+
+        MPLS_PI  *pi        = &bd->title->pl->play_item[0];
+        if (pi->still_mode == BLURAY_STILL_INFINITE) {
+            // most likely menu background ; waiting for user interaction
+            DEBUG(DBG_BLURAY, "Reached end of infinite still mode play item\n");
+            _get_event(bd, event);
+            return 0;
+        }
+
         if (bd->title_type == title_hdmv) {
             hdmv_vm_resume(bd->hdmv_vm);
             bd->hdmv_suspended = !hdmv_vm_running(bd->hdmv_vm);



More information about the libbluray-devel mailing list