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/lua.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/lua.c')
-rw-r--r-- | player/lua.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/player/lua.c b/player/lua.c index 43f549b4ed..4ef772fd84 100644 --- a/player/lua.c +++ b/player/lua.c @@ -860,6 +860,9 @@ static void pushnode(lua_State *L, mpv_node *node) lua_rawset(L, -3); } break; + case MPV_FORMAT_BYTE_ARRAY: + lua_pushlstring(L, node->u.ba->data, node->u.ba->size); + break; default: // unknown value - what do we do? // for now, set a unique dummy value @@ -1252,6 +1255,23 @@ static int script_parse_json(lua_State *L) return 3; } +static int script_format_json(lua_State *L) +{ + void *tmp = mp_lua_PITA(L); + struct mpv_node node; + makenode(tmp, &node, L, 1); + char *dst = talloc_strdup(tmp, ""); + if (json_write(&dst, &node) >= 0) { + lua_pushstring(L, dst); + lua_pushnil(L); + } else { + lua_pushnil(L); + lua_pushstring(L, "error"); + } + talloc_free_children(tmp); + return 2; +} + #define FN_ENTRY(name) {#name, script_ ## name} struct fn_entry { const char *name; @@ -1300,6 +1320,7 @@ static const struct fn_entry utils_fns[] = { FN_ENTRY(join_path), FN_ENTRY(subprocess), FN_ENTRY(parse_json), + FN_ENTRY(format_json), {0} }; |