summaryrefslogtreecommitdiffstats
path: root/libmpv
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2021-11-29 13:12:02 +0100
committersfan5 <sfan5@live.de>2021-12-15 12:29:10 +0100
commit632059816adde518c67f6606e3cfdef5bec18b52 (patch)
treeb5d265830778cb7cea19db50a06c8afc4224c175 /libmpv
parent72915e8b76b2e5da9ddc90e892a544b6de512f39 (diff)
downloadmpv-632059816adde518c67f6606e3cfdef5bec18b52.tar.bz2
mpv-632059816adde518c67f6606e3cfdef5bec18b52.tar.xz
libmpv: remove opengl_cb API and other deprecated symbols
Not all deprecated symbols were removed. Only three events were removed for now since these are not used internally. This bumps the library version to 2.0.
Diffstat (limited to 'libmpv')
-rw-r--r--libmpv/client.h160
-rw-r--r--libmpv/mpv.def12
-rw-r--r--libmpv/opengl_cb.h339
-rw-r--r--libmpv/render_gl.h4
4 files changed, 7 insertions, 508 deletions
diff --git a/libmpv/client.h b/libmpv/client.h
index 5a3d2d202e..77265c2d32 100644
--- a/libmpv/client.h
+++ b/libmpv/client.h
@@ -224,10 +224,8 @@ extern "C" {
* This are the planned changes that will most likely be done on the next major
* bump of the library:
*
- * - remove all symbols and include files that are marked as deprecated
+ * - remove all symbols that are marked as deprecated
* - reassign enum numerical values to remove gaps
- * - remove the mpv_opengl_init_params.extra_exts field
- * - change the type of mpv_event_end_file.reason
* - disabling all events by default
*/
@@ -244,7 +242,7 @@ extern "C" {
* relational operators (<, >, <=, >=).
*/
#define MPV_MAKE_VERSION(major, minor) (((major) << 16) | (minor) | 0UL)
-#define MPV_CLIENT_API_VERSION MPV_MAKE_VERSION(1, 109)
+#define MPV_CLIENT_API_VERSION MPV_MAKE_VERSION(2, 0)
/**
* The API user is allowed to "#define MPV_ENABLE_DEPRECATED 0" before
@@ -510,26 +508,6 @@ MPV_EXPORT int mpv_initialize(mpv_handle *ctx);
*/
MPV_EXPORT void mpv_destroy(mpv_handle *ctx);
-#if MPV_ENABLE_DEPRECATED
-/**
- * @deprecated use mpv_destroy(), which has exactly the same semantics (the
- * deprecation is a mere rename)
- *
- * Since mpv client API version 1.29:
- * If the last mpv_handle is detached, the core player is destroyed. In
- * addition, if there are only weak mpv_handles (such as created by
- * mpv_create_weak_client() or internal scripts), these mpv_handles will
- * be sent MPV_EVENT_SHUTDOWN. This function may block until these clients
- * have responded to the shutdown event, and the core is finally destroyed.
- *
- * Before mpv client API version 1.29:
- * This left the player running. If you want to be sure that the
- * player is terminated, send a "quit" command, and wait until the
- * MPV_EVENT_SHUTDOWN event is received, or use mpv_terminate_destroy().
- */
-MPV_EXPORT void mpv_detach_destroy(mpv_handle *ctx);
-#endif
-
/**
* Similar to mpv_destroy(), but brings the player and all clients down
* as well, and waits until all of them are destroyed. This function blocks. The
@@ -617,43 +595,6 @@ MPV_EXPORT mpv_handle *mpv_create_weak_client(mpv_handle *ctx, const char *name)
*/
MPV_EXPORT int mpv_load_config_file(mpv_handle *ctx, const char *filename);
-#if MPV_ENABLE_DEPRECATED
-
-/**
- * This does nothing since mpv 0.23.0 (API version 1.24). Below is the
- * description of the old behavior.
- *
- * Stop the playback thread. This means the core will stop doing anything, and
- * only run and answer to client API requests. This is sometimes useful; for
- * example, no new frame will be queued to the video output, so doing requests
- * which have to wait on the video output can run instantly.
- *
- * Suspension is reentrant and recursive for convenience. Any thread can call
- * the suspend function multiple times, and the playback thread will remain
- * suspended until the last thread resumes it. Note that during suspension, all
- * clients still have concurrent access to the core, which is serialized through
- * a single mutex.
- *
- * Call mpv_resume() to resume the playback thread. You must call mpv_resume()
- * for each mpv_suspend() call. Calling mpv_resume() more often than
- * mpv_suspend() is not allowed.
- *
- * Calling this on an uninitialized player (see mpv_create()) will deadlock.
- *
- * @deprecated This function, as well as mpv_resume(), are deprecated, and
- * will stop doing anything soon. Their semantics were never
- * well-defined, and their usefulness is extremely limited. The
- * calls will remain stubs in order to keep ABI compatibility.
- */
-MPV_EXPORT void mpv_suspend(mpv_handle *ctx);
-
-/**
- * See mpv_suspend().
- */
-MPV_EXPORT void mpv_resume(mpv_handle *ctx);
-
-#endif
-
/**
* Return the internal time in microseconds. This has an arbitrary start offset,
* but will never wrap or go backwards.
@@ -917,28 +858,11 @@ MPV_EXPORT void mpv_free_node_contents(mpv_node *node);
* Starting with mpv version 0.21.0 (version 1.23) most options can be set
* with mpv_set_property() (and related functions), and even before
* mpv_initialize(). In some obscure corner cases, using this function
- * to set options might still be required (see below, and also section
- * "Inconsistencies between options and properties" on the manpage). Once
+ * to set options might still be required (see
+ * "Inconsistencies between options and properties" in the manpage). Once
* these are resolved, the option setting functions might be fully
* deprecated.
*
- * The following options still need to be set either _before_
- * mpv_initialize() with mpv_set_property() (or related functions), or
- * with mpv_set_option() (or related functions) at any time:
- * - options shadowed by deprecated properties:
- * - demuxer (property deprecated in 0.21.0)
- * - idle (property deprecated in 0.21.0)
- * - fps (property deprecated in 0.21.0)
- * - cache (property deprecated in 0.21.0)
- * - length (property deprecated in 0.10.0)
- * - audio-samplerate (property deprecated in 0.10.0)
- * - audio-channels (property deprecated in 0.10.0)
- * - audio-format (property deprecated in 0.10.0)
- * - deprecated options shadowed by properties:
- * - chapter (option deprecated in 0.21.0)
- * - playlist-pos (option deprecated in 0.21.0)
- * The deprecated properties were removed in mpv 0.23.0.
- *
* @param name Option name. This is the same as on the mpv command line, but
* without the leading "--".
* @param format see enum mpv_format.
@@ -1373,35 +1297,6 @@ typedef enum mpv_event_id {
*/
MPV_EVENT_IDLE = 11,
/**
- * Playback was paused. This indicates the user pause state.
- *
- * The user pause state is the state the user requested (changed with the
- * "pause" property). There is an internal pause state too, which is entered
- * if e.g. the network is too slow (the "core-idle" property generally
- * indicates whether the core is playing or waiting).
- *
- * This event is sent whenever any pause states change, not only the user
- * state. You might get multiple events in a row while these states change
- * independently. But the event ID sent always indicates the user pause
- * state.
- *
- * If you don't want to deal with this, use mpv_observe_property() on the
- * "pause" property and ignore MPV_EVENT_PAUSE/UNPAUSE. Likewise, the
- * "core-idle" property tells you whether video is actually playing or not.
- *
- * @deprecated The event is redundant with mpv_observe_property() as
- * mentioned above, and might be removed in the far future.
- */
- MPV_EVENT_PAUSE = 12,
- /**
- * Playback was unpaused. See MPV_EVENT_PAUSE for not so obvious details.
- *
- * @deprecated The event is redundant with mpv_observe_property() as
- * explained in the MPV_EVENT_PAUSE comments, and might be
- * removed in the far future.
- */
- MPV_EVENT_UNPAUSE = 13,
- /**
* Sent every time after a video frame is displayed. Note that currently,
* this will be sent in lower frequency if there is no video, or playback
* is paused - but that will be removed in the future, and it will be
@@ -1411,15 +1306,6 @@ typedef enum mpv_event_id {
* (such as "playback-time").
*/
MPV_EVENT_TICK = 14,
- /**
- * @deprecated This was used internally with the internal "script_dispatch"
- * command to dispatch keyboard and mouse input for the OSC.
- * It was never useful in general and has been completely
- * replaced with "script-binding".
- * This event never happens anymore, and is included in this
- * header only for compatibility.
- */
- MPV_EVENT_SCRIPT_INPUT_DISPATCH = 15,
#endif
/**
* Triggered by the script-message input command. The command uses the
@@ -1636,12 +1522,11 @@ typedef struct mpv_event_start_file {
typedef struct mpv_event_end_file {
/**
- * Corresponds to the values in enum mpv_end_file_reason (the "int" type
- * will be replaced with mpv_end_file_reason on the next ABI bump).
+ * Corresponds to the values in enum mpv_end_file_reason.
*
* Unknown values should be treated as unknown.
*/
- int reason;
+ mpv_end_file_reason reason;
/**
* If reason==MPV_END_FILE_REASON_ERROR, this contains a mpv error code
* (one of MPV_ERROR_...) giving an approximate reason why playback
@@ -1679,15 +1564,6 @@ typedef struct mpv_event_end_file {
int playlist_insert_num_entries;
} mpv_event_end_file;
-#if MPV_ENABLE_DEPRECATED
-/** @deprecated see MPV_EVENT_SCRIPT_INPUT_DISPATCH for remarks
- */
-typedef struct mpv_event_script_input_dispatch {
- int arg0;
- const char *type;
-} mpv_event_script_input_dispatch;
-#endif
-
typedef struct mpv_event_client_message {
/**
* Arbitrary arguments chosen by the sender of the message. If num_args > 0,
@@ -2043,30 +1919,6 @@ MPV_EXPORT int mpv_hook_continue(mpv_handle *ctx, uint64_t id);
*/
MPV_EXPORT int mpv_get_wakeup_pipe(mpv_handle *ctx);
-/**
- * @deprecated use render.h
- */
-typedef enum mpv_sub_api {
- /**
- * For using mpv's OpenGL renderer on an external OpenGL context.
- * mpv_get_sub_api(MPV_SUB_API_OPENGL_CB) returns mpv_opengl_cb_context*.
- * This context can be used with mpv_opengl_cb_* functions.
- * Will return NULL if unavailable (if OpenGL support was not compiled in).
- * See opengl_cb.h for details.
- *
- * @deprecated use render.h
- */
- MPV_SUB_API_OPENGL_CB = 1
-} mpv_sub_api;
-
-/**
- * This is used for additional APIs that are not strictly part of the core API.
- * See the individual mpv_sub_api member values.
- *
- * @deprecated use render.h
- */
-MPV_EXPORT void *mpv_get_sub_api(mpv_handle *ctx, mpv_sub_api sub_api);
-
#endif
#ifdef __cplusplus
diff --git a/libmpv/mpv.def b/libmpv/mpv.def
index 50a713531f..232490d44d 100644
--- a/libmpv/mpv.def
+++ b/libmpv/mpv.def
@@ -12,7 +12,6 @@ mpv_create
mpv_create_client
mpv_create_weak_client
mpv_destroy
-mpv_detach_destroy
mpv_error_string
mpv_event_to_node
mpv_event_name
@@ -22,7 +21,6 @@ mpv_get_property
mpv_get_property_async
mpv_get_property_osd_string
mpv_get_property_string
-mpv_get_sub_api
mpv_get_time_us
mpv_get_wakeup_pipe
mpv_hook_add
@@ -30,12 +28,6 @@ mpv_hook_continue
mpv_initialize
mpv_load_config_file
mpv_observe_property
-mpv_opengl_cb_draw
-mpv_opengl_cb_init_gl
-mpv_opengl_cb_report_flip
-mpv_opengl_cb_render
-mpv_opengl_cb_set_update_callback
-mpv_opengl_cb_uninit_gl
mpv_render_context_create
mpv_render_context_free
mpv_render_context_get_info
@@ -46,7 +38,6 @@ mpv_render_context_set_update_callback
mpv_render_context_update
mpv_request_event
mpv_request_log_messages
-mpv_resume
mpv_set_option
mpv_set_option_string
mpv_set_property
@@ -54,9 +45,8 @@ mpv_set_property_async
mpv_set_property_string
mpv_set_wakeup_callback
mpv_stream_cb_add_ro
-mpv_suspend
mpv_terminate_destroy
mpv_unobserve_property
mpv_wait_async_requests
mpv_wait_event
-mpv_wakeup \ No newline at end of file
+mpv_wakeup
diff --git a/libmpv/opengl_cb.h b/libmpv/opengl_cb.h
deleted file mode 100644
index 682068133a..0000000000
--- a/libmpv/opengl_cb.h
+++ /dev/null
@@ -1,339 +0,0 @@
-/* Copyright (C) 2017 the mpv developers
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef MPV_CLIENT_API_OPENGL_CB_H_
-#define MPV_CLIENT_API_OPENGL_CB_H_
-
-#include "client.h"
-
-#if !MPV_ENABLE_DEPRECATED
-#error "This header and all API provided by it is deprecated. Use render.h instead."
-#else
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- *
- * Overview
- * --------
- *
- * Warning: this API is deprecated. A very similar API is provided by render.h
- * and render_gl.h. The deprecated API is emulated with the new API.
- *
- * This API can be used to make mpv render into a foreign OpenGL context. It
- * can be used to handle video display.
- *
- * The renderer needs to be explicitly initialized with mpv_opengl_cb_init_gl(),
- * and then video can be drawn with mpv_opengl_cb_draw(). The user thread can
- * be notified by new frames with mpv_opengl_cb_set_update_callback().
- *
- * You can output and embed video without this API by setting the mpv "wid"
- * option to a native window handle (see "Embedding the video window" section
- * in the client.h header). In general, using the opengl-cb API is recommended,
- * because window embedding can cause various issues, especially with GUI
- * toolkits and certain platforms.
- *
- * OpenGL interop
- * --------------
- *
- * This assumes the OpenGL context lives on a certain thread controlled by the
- * API user. The following functions require access to the OpenGL context:
- * mpv_opengl_cb_init_gl
- * mpv_opengl_cb_draw
- * mpv_opengl_cb_uninit_gl
- *
- * The OpenGL context is indirectly accessed through the OpenGL function
- * pointers returned by the get_proc_address callback in mpv_opengl_cb_init_gl.
- * Generally, mpv will not load the system OpenGL library when using this API.
- *
- * Only "desktop" OpenGL version 2.1 and later and OpenGL ES version 2.0 and
- * later are supported. With OpenGL 2.1, the GL_ARB_texture_rg is required. The
- * renderer was written for the OpenGL 3.x core profile, with additional support
- * for OpenGL 2.1 and OpenGL ES 2.0.
- *
- * Note that some hardware decoding interop API (as set with the "hwdec" option)
- * may actually access some sort of host API, such as EGL.
- *
- * OpenGL state
- * ------------
- *
- * OpenGL has a large amount of implicit state. All the mpv functions mentioned
- * above expect that the OpenGL state is reasonably set to OpenGL standard
- * defaults. Likewise, mpv will attempt to leave the OpenGL context with
- * standard defaults. The following state is excluded from this:
- *
- * - the glViewport state
- * - the glScissor state (but GL_SCISSOR_TEST is in its default value)
- * - glBlendFuncSeparate() state (but GL_BLEND is in its default value)
- * - glClearColor() state
- * - mpv may overwrite the callback set with glDebugMessageCallback()
- * - mpv always disables GL_DITHER at init
- *
- * Messing with the state could be avoided by creating shared OpenGL contexts,
- * but this is avoided for the sake of compatibility and interoperability.
- *
- * On OpenGL 2.1, mpv will strictly call functions like glGenTextures() to
- * create OpenGL objects. You will have to do the same. This ensures that
- * objects created by mpv and the API users don't clash. Also, legacy state
- * must be either in its defaults, or not interfere with core state.
- *
- * Threading
- * ---------
- *
- * The mpv_opengl_cb_* functions can be called from any thread, under the
- * following conditions:
- * - only one of the mpv_opengl_cb_* functions can be called at the same time
- * (unless they belong to different mpv cores created by mpv_create())
- * - for functions which need an OpenGL context (see above) the OpenGL context
- * must be "current" in the current thread, and it must be the same context
- * as used with mpv_opengl_cb_init_gl()
- * - never can be called from within the callbacks set with
- * mpv_set_wakeup_callback() or mpv_opengl_cb_set_update_callback()
- *
- * Context and handle lifecycle
- * ----------------------------
- *
- * Video initialization will fail if the OpenGL context was not initialized yet
- * (with mpv_opengl_cb_init_gl()). Likewise, mpv_opengl_cb_uninit_gl() will
- * disable video.
- *
- * When the mpv core is destroyed (e.g. via mpv_terminate_destroy()), the OpenGL
- * context must have been uninitialized. If this doesn't happen, undefined
- * behavior will result.
- *
- * Hardware decoding
- * -----------------
- *
- * Hardware decoding via opengl_cb is fully supported, but requires some
- * additional setup. (At least if direct hardware decoding modes are wanted,
- * instead of copying back surface data from GPU to CPU RAM.)
- *
- * While "normal" mpv loads the OpenGL hardware decoding interop on demand,
- * this can't be done with opengl_cb for internal technical reasons. Instead,
- * it loads them by default, even if hardware decoding is not going to be used.
- * In older mpv releases, this had to be done by setting the
- * "opengl-hwdec-interop" or "hwdec-preload" options before calling
- * mpv_opengl_cb_init_gl(). You can still use the newer "gpu-hwdec-interop"
- * option to prevent loading of interop, or to load only a specific interop.
- *
- * There may be certain requirements on the OpenGL implementation:
- * - Windows: ANGLE is required (although in theory GL/DX interop could be used)
- * - Intel/Linux: EGL is required, and also a glMPGetNativeDisplay() callback
- * must be provided (see sections below)
- * - nVidia/Linux: Both GLX and EGL should work (GLX is required if vdpau is
- * used, e.g. due to old drivers.)
- * - OSX: CGL is required (CGLGetCurrentContext() returning non-NULL)
- * - iOS: EAGL is required (EAGLContext.currentContext returning non-nil)
- *
- * Once these things are setup, hardware decoding can be enabled/disabled at
- * any time by setting the "hwdec" property.
- *
- * Special windowing system interop considerations
- * ------------------------------------------------
- *
- * In some cases, libmpv needs to have access to the windowing system's handles.
- * This can be a pointer to a X11 "Display" for example. Usually this is needed
- * only for hardware decoding.
- *
- * You can communicate these handles to libmpv by adding a pseudo-OpenGL
- * extension "GL_MP_MPGetNativeDisplay" to the additional extension string when
- * calling mpv_opengl_cb_init_gl(). The get_proc_address callback should resolve
- * a function named "glMPGetNativeDisplay", which has the signature:
- *
- * void* GLAPIENTRY glMPGetNativeDisplay(const char* name)
- *
- * See below what names are defined. Usually, libmpv will use the native handle
- * up until mpv_opengl_cb_uninit_gl() is called. If the name is not anything
- * you know/expected, return NULL from the function.
- */
-
-// Legacy - not supported anymore.
-struct mpv_opengl_cb_window_pos {
- int x; // left coordinates of window (usually 0)
- int y; // top coordinates of window (usually 0)
- int width; // width of GL window
- int height; // height of GL window
-};
-
-// Legacy - not supported anymore.
-struct mpv_opengl_cb_drm_params {
- // DRM fd (int). set this to -1 if invalid.
- int fd;
-
- // currently used crtc id
- int crtc_id;
-
- // currently used connector id
- int connector_id;
-
- // pointer to the drmModeAtomicReq that is being used for the renderloop.
- // This atomic request pointer should be usually created at every renderloop.
- struct _drmModeAtomicReq *atomic_request;
-};
-
-/**
- * nVidia/Linux via VDPAU requires GLX, which does not have this problem (the
- * GLX API can return the current X11 Display).
- *
- * Windowing system interop on MS win32
- * ------------------------------------
- *
- * You should use ANGLE, and make sure your application and libmpv are linked
- * to the same ANGLE DLLs. libmpv will pick the device context (needed for
- * hardware decoding) from the current ANGLE EGL context.
- */
-
-/**
- * Opaque context, returned by mpv_get_sub_api(MPV_SUB_API_OPENGL_CB).
- *
- * A context is bound to the mpv_handle it was retrieved from. The context
- * will always be the same (for the same mpv_handle), and is valid until the
- * mpv_handle it belongs to is released.
- */
-typedef struct mpv_opengl_cb_context mpv_opengl_cb_context;
-
-typedef void (*mpv_opengl_cb_update_fn)(void *cb_ctx);
-typedef void *(*mpv_opengl_cb_get_proc_address_fn)(void *fn_ctx, const char *name);
-
-/**
- * Set the callback that notifies you when a new video frame is available, or
- * if the video display configuration somehow changed and requires a redraw.
- * Similar to mpv_set_wakeup_callback(), you must not call any mpv API from
- * the callback, and all the other listed restrictions apply (such as not
- * exiting the callback by throwing exceptions).
- *
- * @param callback callback(callback_ctx) is called if the frame should be
- * redrawn
- * @param callback_ctx opaque argument to the callback
- */
-void mpv_opengl_cb_set_update_callback(mpv_opengl_cb_context *ctx,
- mpv_opengl_cb_update_fn callback,
- void *callback_ctx);
-
-/**
- * Initialize the mpv OpenGL state. This retrieves OpenGL function pointers via
- * get_proc_address, and creates OpenGL objects needed by mpv internally. It
- * will also call APIs needed for rendering hardware decoded video in OpenGL,
- * according to the mpv "hwdec" option.
- *
- * You must free the associated state at some point by calling the
- * mpv_opengl_cb_uninit_gl() function. Not doing so may result in memory leaks
- * or worse.
- *
- * @param exts optional _additional_ extension string, can be NULL
- * @param get_proc_address callback used to retrieve function pointers to OpenGL
- * functions. This is used for both standard functions
- * and extension functions. (The extension string is
- * checked whether extensions are really available.)
- * The callback will be called from this function only
- * (it is not stored and never used later).
- * Usually, GL context APIs do this for you (e.g. with
- * glXGetProcAddressARB or wglGetProcAddress), but
- * some APIs do not always return pointers for all
- * standard functions (even if present); in this case
- * you have to compensate by looking up these functions
- * yourself.
- * @param get_proc_address_ctx arbitrary opaque user context passed to the
- * get_proc_address callback
- * @return error code (same as normal mpv_* API), including but not limited to:
- * MPV_ERROR_UNSUPPORTED: the OpenGL version is not supported
- * (or required extensions are missing)
- * MPV_ERROR_INVALID_PARAMETER: the OpenGL state was already initialized
- */
-int mpv_opengl_cb_init_gl(mpv_opengl_cb_context *ctx, const char *exts,
- mpv_opengl_cb_get_proc_address_fn get_proc_address,
- void *get_proc_address_ctx);
-
-/**
- * Render video. Requires that the OpenGL state is initialized.
- *
- * The video will use the full provided framebuffer. Options like "panscan" are
- * applied to determine which part of the video should be visible and how the
- * video should be scaled. You can change these options at runtime by using the
- * mpv property API.
- *
- * The renderer will reconfigure itself every time the output rectangle/size
- * is changed. (If you want to do animations, it might be better to do the
- * animation on a FBO instead.)
- *
- * This function implicitly pulls a video frame from the internal queue and
- * renders it. If no new frame is available, the previous frame is redrawn.
- * The update callback set with mpv_opengl_cb_set_update_callback() notifies
- * you when a new frame was added.
- *
- * @param fbo The framebuffer object to render on. Because the renderer might
- * manage multiple FBOs internally for the purpose of video
- * postprocessing, it will always bind and unbind FBOs itself. If
- * you want mpv to render on the main framebuffer, pass 0.
- * @param w Width of the framebuffer. This is either the video size if the fbo
- * parameter is 0, or the allocated size of the texture backing the
- * fbo. The renderer will always use the full size of the fbo.
- * @param h Height of the framebuffer. Same as with the w parameter, except
- * that this parameter can be negative. In this case, the video
- * frame will be rendered flipped.
- * @return 0
- */
-int mpv_opengl_cb_draw(mpv_opengl_cb_context *ctx, int fbo, int w, int h);
-
-/**
- * Deprecated. Use mpv_opengl_cb_draw(). This function is equivalent to:
- *
- * 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]); }
- *
- * vp[0] and vp[1] used to have a meaning, but are ignored in newer versions.
- *
- * This function will be removed in the future without version bump (this API
- * was never marked as stable).
- */
-int mpv_opengl_cb_render(mpv_opengl_cb_context *ctx, int fbo, int vp[4]);
-
-/**
- * Tell the renderer that a frame was flipped at the given time. This is
- * optional, but can help the player to achieve better timing.
- *
- * Note that calling this at least once informs libmpv that you will use this
- * function. If you use it inconsistently, expect bad video playback.
- *
- * If this is called while no video or no OpenGL is initialized, it is ignored.
- *
- * @param time The mpv time (using mpv_get_time_us()) at which the flip call
- * returned. If 0 is passed, mpv_get_time_us() is used instead.
- * Currently, this parameter is ignored.
- * @return error code
- */
-int mpv_opengl_cb_report_flip(mpv_opengl_cb_context *ctx, int64_t time);
-
-/**
- * Destroy the mpv OpenGL state.
- *
- * If video is still active (e.g. a file playing), video will be disabled
- * forcefully.
- *
- * Calling this multiple times is ok.
- *
- * @return error code
- */
-int mpv_opengl_cb_uninit_gl(mpv_opengl_cb_context *ctx);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* else #if MPV_ENABLE_DEPRECATED */
-
-#endif
diff --git a/libmpv/render_gl.h b/libmpv/render_gl.h
index 5bc892903c..a2c31f0c72 100644
--- a/libmpv/render_gl.h
+++ b/libmpv/render_gl.h
@@ -120,10 +120,6 @@ typedef struct mpv_opengl_init_params {
* Value passed as ctx parameter to get_proc_address().
*/
void *get_proc_address_ctx;
- /**
- * This should not be used. It is deprecated and ignored.
- */
- const char *extra_exts;
} mpv_opengl_init_params;
/**