diff options
author | Diogo Franco (Kovensky) <diogomfranco@gmail.com> | 2015-04-25 18:28:17 +0900 |
---|---|---|
committer | Diogo Franco (Kovensky) <diogomfranco@gmail.com> | 2015-04-25 18:28:17 +0900 |
commit | 5f1d6b6e5ae515abfb77c78c44d21ee21beb0fc3 (patch) | |
tree | 6b757d37d296709dfd5955ef9d4d41426cd47da6 /player/client.c | |
parent | d64ff3aa51b49451348383a6ff6de7697a52dc62 (diff) | |
parent | 983d24e3b9ce9c9c7755279138c14170e85fbf37 (diff) | |
download | mpv-5f1d6b6e5ae515abfb77c78c44d21ee21beb0fc3.tar.bz2 mpv-5f1d6b6e5ae515abfb77c78c44d21ee21beb0fc3.tar.xz |
Merge branch 'master' into release/0.9
* master: (87 commits)
manpage: move --autosync description
player: add --window-scale option
player: flush decoder even if cover art is decoded
player: don't show A/V desync message in non-sense situations
w32_common: add more rounded-down frame rates
w32_common: use the current monitor's refresh rate
dxva2: fix broken build with gcc 5.1
terminal: printf() is not signal-safe
man: fix PDF build
DOCS/mplayer-changes: Eleborate on joystick input
osc: add nil check for element.eventresponder
mp_image: remove some unused interlacing flags
vf_vapoursynth: update _FieldBased semantics
options: remove unneeded hack from command line parser
manpage: document ff-index sub-property
demux_mkv: limit timestamp fixing to 1ms max
demux_mkv: attempt to fix rounded timestamps
demux_mkv: move global options to the demuxer
demux_mkv: better seeking after video end
lua: add utils.format_json() function
...
Diffstat (limited to 'player/client.c')
-rw-r--r-- | player/client.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/player/client.c b/player/client.c index 614d64205f..43c7c07c60 100644 --- a/player/client.c +++ b/player/client.c @@ -954,6 +954,7 @@ static int run_async(mpv_handle *ctx, void (*fn)(void *fn_data), void *fn_data) struct cmd_request { struct MPContext *mpctx; struct mp_cmd *cmd; + struct mpv_node *res; int status; struct mpv_handle *reply_ctx; uint64_t userdata; @@ -962,7 +963,7 @@ struct cmd_request { static void cmd_fn(void *data) { struct cmd_request *req = data; - int r = run_command(req->mpctx, req->cmd); + int r = run_command(req->mpctx, req->cmd, req->res); req->status = r >= 0 ? 0 : MPV_ERROR_COMMAND; talloc_free(req->cmd); if (req->reply_ctx) { @@ -971,7 +972,7 @@ static void cmd_fn(void *data) } } -static int run_client_command(mpv_handle *ctx, struct mp_cmd *cmd) +static int run_client_command(mpv_handle *ctx, struct mp_cmd *cmd, mpv_node *res) { if (!ctx->mpctx->initialized) return MPV_ERROR_UNINITIALIZED; @@ -986,6 +987,7 @@ static int run_client_command(mpv_handle *ctx, struct mp_cmd *cmd) struct cmd_request req = { .mpctx = ctx->mpctx, .cmd = cmd, + .res = res, }; run_locked(ctx, cmd_fn, &req); return req.status; @@ -993,21 +995,22 @@ static int run_client_command(mpv_handle *ctx, struct mp_cmd *cmd) int mpv_command(mpv_handle *ctx, const char **args) { - return run_client_command(ctx, mp_input_parse_cmd_strv(ctx->log, args)); + return run_client_command(ctx, mp_input_parse_cmd_strv(ctx->log, args), NULL); } int mpv_command_node(mpv_handle *ctx, mpv_node *args, mpv_node *result) { - int r = run_client_command(ctx, mp_input_parse_cmd_node(ctx->log, args)); + struct mpv_node rn = {.format = MPV_FORMAT_NONE}; + int r = run_client_command(ctx, mp_input_parse_cmd_node(ctx->log, args), &rn); if (result && r >= 0) - *result = (mpv_node){.format = MPV_FORMAT_NONE}; + *result = rn; return r; } int mpv_command_string(mpv_handle *ctx, const char *args) { return run_client_command(ctx, - mp_input_parse_cmd(ctx->mpctx->input, bstr0((char*)args), ctx->name)); + mp_input_parse_cmd(ctx->mpctx->input, bstr0((char*)args), ctx->name), NULL); } static int run_cmd_async(mpv_handle *ctx, uint64_t ud, struct mp_cmd *cmd) |