diff options
author | Uoti Urpala <uau@mplayer2.org> | 2011-05-04 18:51:36 +0300 |
---|---|---|
committer | Uoti Urpala <uau@mplayer2.org> | 2011-05-04 18:53:17 +0300 |
commit | 618f760866441a01051a0177529c7524082f4e37 (patch) | |
tree | f93381a89eb9a1a173b6a7f156ab7b719809c0fe /mplayer.c | |
parent | 0fff1380b18f4f695d0481fd0cb0e19e1991140a (diff) | |
download | mpv-618f760866441a01051a0177529c7524082f4e37.tar.bz2 mpv-618f760866441a01051a0177529c7524082f4e37.tar.xz |
input: make slave command file descriptors nonblocking
Neither fd 0 slave input (-slave) nor additional opened fds (-input
file=X) were set to nonblocking mode as they should have been. Fix.
Also rename the horribly generic USE_SELECT #define used for a
specific slave input detail.
Diffstat (limited to 'mplayer.c')
-rw-r--r-- | mplayer.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -4030,8 +4030,14 @@ if(!codecs_file || !parse_codec_cfg(codecs_file)){ current_module = "init_input"; mpctx->input = mp_input_init(&opts->input); mp_input_add_key_fd(mpctx->input, -1,0,mplayer_get_key,NULL, mpctx->key_fifo); -if(slave_mode) - mp_input_add_cmd_fd(mpctx->input, 0,USE_SELECT,MP_INPUT_SLAVE_CMD_FUNC,NULL); + if(slave_mode) { +#if USE_FD0_CMD_SELECT + int flags = fcntl(0, F_GETFL); + if (flags != -1) + fcntl(0, F_SETFL, flags | O_NONBLOCK); +#endif + mp_input_add_cmd_fd(mpctx->input, 0,USE_FD0_CMD_SELECT,MP_INPUT_SLAVE_CMD_FUNC,NULL); + } else if (opts->consolecontrols) mp_input_add_key_fd(mpctx->input, 0, 1, read_keys, NULL, mpctx->key_fifo); // Set the libstream interrupt callback |