diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2009-11-11 09:09:08 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2009-11-11 09:09:08 +0000 |
commit | 2bf260398ba7b6c39fbb8644be09888c408e4176 (patch) | |
tree | 32fc6adea9fb4881a11d80882a1c202ec5bdb7da /stream | |
parent | 92ac5a8c209ba823330a53da69551d1a9fa6091a (diff) |
Set the EOF flag when dvdnav reached the end of the requested title.
Otherwise it would just hang, either at the menu or trying to play the
last played frame as a still frame.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29893 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'stream')
-rw-r--r-- | stream/stream_dvdnav.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index eafc922f80..9962c0606f 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -349,8 +349,10 @@ static int fill_buffer(stream_t *s, char *but, int len) if(dvdnav_current_title_info(priv->dvdnav, &tit, &part) == DVDNAV_STATUS_OK) { mp_msg(MSGT_CPLAYER,MSGL_V, "\r\nDVDNAV, NEW TITLE %d\r\n", tit); dvdnav_get_highlight (priv, 0); - if(priv->title > 0 && tit != priv->title) + if(priv->title > 0 && tit != priv->title) { + priv->state |= NAV_FLAG_EOF; return 0; + } } break; } @@ -364,8 +366,10 @@ static int fill_buffer(stream_t *s, char *but, int len) priv->state |= NAV_FLAG_WAIT_READ; if(priv->title > 0 && dvd_last_chapter > 0) { int tit=0, part=0; - if(dvdnav_current_title_info(priv->dvdnav, &tit, &part) == DVDNAV_STATUS_OK && part > dvd_last_chapter) + if(dvdnav_current_title_info(priv->dvdnav, &tit, &part) == DVDNAV_STATUS_OK && part > dvd_last_chapter) { + priv->state |= NAV_FLAG_EOF; return 0; + } } dvdnav_get_highlight (priv, 1); } |