diff options
Diffstat (limited to 'player')
-rw-r--r-- | player/client.c | 24 | ||||
-rw-r--r-- | player/client.h | 10 |
2 files changed, 31 insertions, 3 deletions
diff --git a/player/client.c b/player/client.c index 618dbc4165..1df7e659d8 100644 --- a/player/client.c +++ b/player/client.c @@ -1726,6 +1726,17 @@ int mpv_opengl_cb_uninit_gl(mpv_opengl_cb_context *ctx) { return MPV_ERROR_NOT_IMPLEMENTED; } +void mp_client_set_control_callback(struct mpv_opengl_cb_context *ctx, + mpv_opengl_cb_control_fn callback, + void *callback_ctx) +{ +} +void mp_client_set_icc_profile(struct mpv_opengl_cb_context *ctx, bstr icc_data) +{ +} +void mp_client_set_ambient_lux(struct mpv_opengl_cb_context *ctx, int lux) +{ +} #endif int mpv_opengl_cb_render(mpv_opengl_cb_context *ctx, int fbo, int vp[4]) @@ -1733,22 +1744,29 @@ int mpv_opengl_cb_render(mpv_opengl_cb_context *ctx, int fbo, int vp[4]) return mpv_opengl_cb_draw(ctx, fbo, vp[2], vp[3]); } -void *mpv_get_sub_api(mpv_handle *ctx, mpv_sub_api sub_api) +void *mp_get_sub_api2(mpv_handle *ctx, mpv_sub_api sub_api, bool lock) { if (!ctx->mpctx->initialized) return NULL; void *res = NULL; - lock_core(ctx); + if (lock) + lock_core(ctx); switch (sub_api) { case MPV_SUB_API_OPENGL_CB: res = opengl_cb_get_context(ctx); break; default:; } - unlock_core(ctx); + if (lock) + unlock_core(ctx); return res; } +void *mpv_get_sub_api(mpv_handle *ctx, mpv_sub_api sub_api) +{ + return mp_get_sub_api2(ctx, sub_api, true); +} + struct mp_custom_protocol { char *protocol; void *user_data; diff --git a/player/client.h b/player/client.h index 67b287b67f..042934cde3 100644 --- a/player/client.h +++ b/player/client.h @@ -6,6 +6,7 @@ #include "libmpv/client.h" #include "libmpv/stream_cb.h" +#include "misc/bstr.h" struct MPContext; struct mpv_handle; @@ -34,6 +35,7 @@ struct mpv_handle *mp_new_client(struct mp_client_api *clients, const char *name struct mp_log *mp_client_get_log(struct mpv_handle *ctx); struct MPContext *mp_client_get_core(struct mpv_handle *ctx); struct MPContext *mp_client_api_get_core(struct mp_client_api *api); +void *mp_get_sub_api2(mpv_handle *ctx, mpv_sub_api sub_api, bool lock); // m_option.c void *node_get_alloc(struct mpv_node *node); @@ -49,4 +51,12 @@ void kill_video(struct mp_client_api *client_api); bool mp_streamcb_lookup(struct mpv_global *g, const char *protocol, void **out_user_data, mpv_stream_cb_open_ro_fn *out_fn); +typedef int (*mpv_opengl_cb_control_fn)(void *cb_ctx, int *events, uint32_t request, void *data); + +void mp_client_set_control_callback(struct mpv_opengl_cb_context *ctx, + mpv_opengl_cb_control_fn callback, + void *callback_ctx); +void mp_client_set_icc_profile(struct mpv_opengl_cb_context *ctx, bstr icc_data); +void mp_client_set_ambient_lux(struct mpv_opengl_cb_context *ctx, int lux); + #endif |