summaryrefslogtreecommitdiffstats
path: root/mplayer.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@mplayer2.org>2012-04-06 14:24:26 +0300
committerUoti Urpala <uau@mplayer2.org>2012-04-06 14:34:56 +0300
commitb93ed278362185ff980e0ce8f4ab3029f8fe395f (patch)
treeb0915d50baa17cc7ab94180421f8837f7b5b3ee4 /mplayer.c
parent87ae9d3e45ef6e331b34fa92ac1d0c68495f5379 (diff)
downloadmpv-b93ed278362185ff980e0ce8f4ab3029f8fe395f.tar.bz2
mpv-b93ed278362185ff980e0ce8f4ab3029f8fe395f.tar.xz
input: stop trying to read terminal input on EOF
Stop trying to read terminal input if a read attempt returns EOF. The most important case where this matters is when someone runs the player with stdin redirected from /dev/null and without specifying --no-consolecontrols. This used to cause 100% CPU load while paused, as select() would continuously trigger on stdin (the need for --no-consolecontrols was not apparent to people with older mplayer versions, as input reading was less efficient and latencies like hardcoded sleeps kept CPU use well below 100%). Now this will only cause a "Dead key input" error message.
Diffstat (limited to 'mplayer.c')
-rw-r--r--mplayer.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/mplayer.c b/mplayer.c
index edeffef9e4..26555e3c20 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -3798,8 +3798,9 @@ static void run_playloop(struct MPContext *mpctx)
static int read_keys(void *ctx, int fd)
{
- getch2(ctx);
- return MP_INPUT_NOTHING;
+ if (getch2(ctx))
+ return MP_INPUT_NOTHING;
+ return MP_INPUT_DEAD;
}
static bool attachment_is_font(struct demux_attachment *att)