summaryrefslogtreecommitdiffstats
path: root/stream
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-12-04 21:06:18 +0100
committerwm4 <wm4@nowhere>2014-12-04 22:42:07 +0100
commitc3d6f4b63b37994a14099e0e88e8ae87121cb7bf (patch)
treef5a9b1460132d2a6d3de28c9ed6e1beacc55cbb4 /stream
parent6e7942af5062570694e08ee868fb9ee6004f102f (diff)
downloadmpv-c3d6f4b63b37994a14099e0e88e8ae87121cb7bf.tar.bz2
mpv-c3d6f4b63b37994a14099e0e88e8ae87121cb7bf.tar.xz
dvd, bd: don't unnecessarily block on demuxer/stream all the time
This was completely breaking any low-level caching. Change it so that at least demuxer caching will work. Do this by using the metadata cache mechanism to funnel through the menu commands. For some incomprehensible reason, I had to reorder the events (which affects their delivery priority), or they would be ignored. Probably some crap about the event state being cleared before it could be delivered. I don't give a shit. All this code sucks. It would probably be better to let discnav.c access the menu event "queue" directly, and to synchronize access with a mutex, instead of going through all the caching layers, making things complicated and slow.
Diffstat (limited to 'stream')
-rw-r--r--stream/discnav.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/stream/discnav.h b/stream/discnav.h
index 9accf0c87a..894418c9fe 100644
--- a/stream/discnav.h
+++ b/stream/discnav.h
@@ -27,13 +27,13 @@
// Note: order matters somewhat (stream_dvdnav sends them in numeric order)
enum mp_nav_event_type {
MP_NAV_EVENT_NONE,
+ MP_NAV_EVENT_MENU_MODE, // menu mode on/off
+ MP_NAV_EVENT_HIGHLIGHT, // highlight changed
MP_NAV_EVENT_RESET, // reinitialize some things
MP_NAV_EVENT_RESET_CLUT, // reinitialize sub palette
MP_NAV_EVENT_RESET_ALL, // reinitialize all things
MP_NAV_EVENT_DRAIN, // reply with MP_NAV_CMD_DRAIN_OK
MP_NAV_EVENT_STILL_FRAME, // keep displaying current frame
- MP_NAV_EVENT_HIGHLIGHT, // highlight changed
- MP_NAV_EVENT_MENU_MODE, // menu mode on/off
MP_NAV_EVENT_EOF, // it's over
MP_NAV_EVENT_OVERLAY, // overlay changed
};