diff options
author | Anton Kindestam <antonki@kth.se> | 2019-09-12 21:00:50 +0200 |
---|---|---|
committer | Jan Ekström <jeebjp@gmail.com> | 2019-09-18 23:59:32 +0300 |
commit | e08f235578aa6305a41e7c7132225e58bd191ef0 (patch) | |
tree | 5a96a85f873f1dc0e117d2fb3fb0191e6e44c462 /libmpv/render_gl.h | |
parent | b04ddcdc0b24c8d594bcb001c964035aa7ebd008 (diff) | |
download | mpv-e08f235578aa6305a41e7c7132225e58bd191ef0.tar.bz2 mpv-e08f235578aa6305a41e7c7132225e58bd191ef0.tar.xz |
drm: fix libmpv ABI breakage introduced in 351c083487050c88adb0e3d60f2174850f869018
Extending the client-allocated mpv_opengl_drm_params struct
constituted a break of ABI that could cause UB.
Create a clean break by deprecating "drm_params" and related structs
and enum values, and replacing it with "drm_params_v2".
Also fix some comments and code that wrongly assumed that open could
return any other negative number than -1 for failure.
This commit updates the libmpv version to 1.104
Diffstat (limited to 'libmpv/render_gl.h')
-rw-r--r-- | libmpv/render_gl.h | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/libmpv/render_gl.h b/libmpv/render_gl.h index 69bec75c47..cb141df564 100644 --- a/libmpv/render_gl.h +++ b/libmpv/render_gl.h @@ -150,11 +150,32 @@ typedef struct mpv_opengl_fbo { } mpv_opengl_fbo; /** - * For MPV_RENDER_PARAM_DRM_DISPLAY. + * Deprecated. For MPV_RENDER_PARAM_DRM_DISPLAY. */ typedef struct mpv_opengl_drm_params { + int fd; + int crtc_id; + int connector_id; + struct _drmModeAtomicReq **atomic_request_ptr; + int render_fd; +} mpv_opengl_drm_params; + +/** + * For MPV_RENDER_PARAM_DRM_DRAW_SURFACE_SIZE. + */ +typedef struct mpv_opengl_drm_draw_surface_size { /** - * DRM fd (int). Set to a negative number if invalid. + * size of the draw plane surface in pixels. + */ + int width, height; +} mpv_opengl_drm_draw_surface_size; + +/** + * For MPV_RENDER_PARAM_DRM_DISPLAY_V2. + */ +typedef struct mpv_opengl_drm_params_v2 { + /** + * DRM fd (int). Set to -1 if invalid. */ int fd; @@ -177,20 +198,11 @@ typedef struct mpv_opengl_drm_params { /** * DRM render node. Used for VAAPI interop. - * Set to a negative number if invalid. + * Set to -1 if invalid. */ int render_fd; -} mpv_opengl_drm_params; +} mpv_opengl_drm_params_v2; -/** - * For MPV_RENDER_PARAM_DRM_DRAW_SURFACE_SIZE. - */ -typedef struct mpv_opengl_drm_draw_surface_size { - /** - * size of the draw plane surface in pixels. - */ - int width, height; -} mpv_opengl_drm_draw_surface_size; /** * For backwards compatibility with the old naming of mpv_opengl_drm_draw_surface_size |