diff options
author | xylosper <darklin20@gmail.com> | 2014-03-25 22:41:28 +0900 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-03-25 15:37:14 +0100 |
commit | 448b535d4830c8b21d86f554bb354d9670eaee3f (patch) | |
tree | 8d2200b7fcce2ae21bf8389dc44fe421ac6e49b4 /player | |
parent | cb7cf1cfb11de590a3e76027fbdbd269edfd8825 (diff) | |
download | mpv-448b535d4830c8b21d86f554bb354d9670eaee3f.tar.bz2 mpv-448b535d4830c8b21d86f554bb354d9670eaee3f.tar.xz |
dvdnav: make MP_NAV_EVENT_RESET_ALL handled properly
dvdnav.c did not handle event in regular sequence. Usually this
does not make any trouble except around MP_NAV_EVENT_RESET_ALL.
Those events should be handled in regular sequence. If they're
mixed, it can make wrong result.
For instance, MP_NAV_EVENT_HIGHLIGHT right after
MP_NAV_EVENT_RESET_ALL should not be ignored but it might be
because MP_NAV_EVENT_RESET_ALL makes the demuxer reloaded and osd
hidden.
Diffstat (limited to 'player')
-rw-r--r-- | player/dvdnav.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/player/dvdnav.c b/player/dvdnav.c index 20b11af52c..50b2e93d70 100644 --- a/player/dvdnav.c +++ b/player/dvdnav.c @@ -145,7 +145,9 @@ void mp_handle_nav(struct MPContext *mpctx) case MP_NAV_EVENT_RESET_ALL: { mpctx->stop_play = PT_RELOAD_DEMUXER; MP_VERBOSE(nav, "reload\n"); - break; + // return immediately. + // other events should be handled after reloaded. + return; } case MP_NAV_EVENT_RESET: { nav->nav_still_frame = 0; |