summaryrefslogtreecommitdiffstats
path: root/video/out/drm_prime.h
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/drm_prime.h')
-rw-r--r--video/out/drm_prime.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/video/out/drm_prime.h b/video/out/drm_prime.h
index 0653fdbebf..69acba6061 100644
--- a/video/out/drm_prime.h
+++ b/video/out/drm_prime.h
@@ -27,7 +27,19 @@ struct drm_prime_framebuffer {
uint32_t gem_handles[AV_DRM_MAX_PLANES];
};
+struct drm_prime_handle_refs {
+ uint32_t *handle_ref_count;
+ size_t size;
+ void *ctx;
+};
+
int drm_prime_create_framebuffer(struct mp_log *log, int fd, AVDRMFrameDescriptor *descriptor, int width, int height,
- struct drm_prime_framebuffer *framebuffers);
-void drm_prime_destroy_framebuffer(struct mp_log *log, int fd, struct drm_prime_framebuffer *framebuffers);
+ struct drm_prime_framebuffer *framebuffers,
+ struct drm_prime_handle_refs *handle_refs);
+void drm_prime_destroy_framebuffer(struct mp_log *log, int fd, struct drm_prime_framebuffer *framebuffers,
+ struct drm_prime_handle_refs *handle_refs);
+void drm_prime_init_handle_ref_count(void *talloc_parent, struct drm_prime_handle_refs *handle_refs);
+void drm_prime_add_handle_ref(struct drm_prime_handle_refs *handle_refs, uint32_t handle);
+void drm_prime_remove_handle_ref(struct drm_prime_handle_refs *handle_refs, uint32_t handle);
+uint32_t drm_prime_get_handle_ref_count(struct drm_prime_handle_refs *handle_refs, uint32_t handle);
#endif // DRM_PRIME_H