1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-16 12:17:12 +00:00

client API: expose the internal clock

May or may not be useful in some ways.

We require a context parameter for this just to be sure, even if the
internal implementation currently doesn't.

That's one less mpv internal function for the Lua wrapper.
This commit is contained in:
wm4 2014-02-24 21:59:20 +01:00
parent 0797babbfa
commit 5d7007c644
3 changed files with 20 additions and 1 deletions

View File

@ -350,6 +350,18 @@ void mpv_suspend(mpv_handle *ctx);
*/
void mpv_resume(mpv_handle *ctx);
/**
* Return the internal time in microseconds. This has an arbitrary start offset,
* but will never wrap or go backwards (note: the latter is probably a lie in
* the current implementation, it can go backwards on system clock changes).
*
* Note that this is always the real time, and doesn't necessarily have to do
* with playback time. For example, playback could go faster or slower due to
* playback speed, or due to playback being paused. Use the "time-pos" property
* instead to get the playback status.
*/
int64_t mpv_get_time_us(mpv_handle *ctx);
/**
* Data format for options and properties. The API functions to get/set
* properties and options support multiple formats, and this enum describes

View File

@ -24,6 +24,7 @@
#include "options/m_option.h"
#include "options/m_property.h"
#include "osdep/threads.h"
#include "osdep/timer.h"
#include "command.h"
#include "core.h"
@ -992,3 +993,8 @@ void mpv_free(void *data)
{
talloc_free(data);
}
int64_t mpv_get_time_us(mpv_handle *ctx)
{
return mp_time_us();
}

View File

@ -722,7 +722,8 @@ static int script_get_mouse_pos(lua_State *L)
static int script_get_time(lua_State *L)
{
lua_pushnumber(L, mp_time_sec());
struct script_ctx *ctx = get_ctx(L);
lua_pushnumber(L, mpv_get_time_us(ctx->client) / (double)(1000 * 1000));
return 1;
}