diff options
author | Dudemanguy <random342@airmail.cc> | 2022-05-30 12:58:57 -0500 |
---|---|---|
committer | Dudemanguy <random342@airmail.cc> | 2022-05-30 19:51:46 +0000 |
commit | 38eda3804f95e9359c0c1730137759682c7decbc (patch) | |
tree | a80066365137612f2188ed7108afbcf9b1565044 /video/out | |
parent | 0ec3bd6ba9838c7a1adcb52610dc4a014dc82fff (diff) | |
download | mpv-38eda3804f95e9359c0c1730137759682c7decbc.tar.bz2 mpv-38eda3804f95e9359c0c1730137759682c7decbc.tar.xz |
vo_vaapi_wayland/wayland_common: code style fixes
A bad person (AKA me) merged this stuff without paying close enough
attention to the code style. Reformat this to be in-line with the rest
of the wayland code and general mpv style (braces for functions on the
next line, horizontally aligning arguments, some cosmetic cleanups for
wayland_common.h, etc.).
Diffstat (limited to 'video/out')
-rw-r--r-- | video/out/vo_vaapi_wayland.c | 188 | ||||
-rw-r--r-- | video/out/wayland_common.c | 61 | ||||
-rw-r--r-- | video/out/wayland_common.h | 66 |
3 files changed, 177 insertions, 138 deletions
diff --git a/video/out/vo_vaapi_wayland.c b/video/out/vo_vaapi_wayland.c index c294a66bb6..1167d05da0 100644 --- a/video/out/vo_vaapi_wayland.c +++ b/video/out/vo_vaapi_wayland.c @@ -29,6 +29,11 @@ #define VA_POOL_NUM_ALLOCATED_INIT 30 +struct va_image_formats { + VAImageFormat *entries; + int num; +}; + struct va_pool_entry { /* key */ VASurfaceID surface; @@ -36,13 +41,14 @@ struct va_pool_entry { VADRMPRIMESurfaceDescriptor desc; struct wl_buffer *buffer; struct zwp_linux_buffer_params_v1 *params; - uint drm_format; + uint32_t drm_format; }; + struct va_pool { struct vo *vo; struct va_pool_entry **entries; - uint num_entries; - uint num_allocated; + int num_entries; + int num_allocated; }; struct priv { @@ -60,14 +66,16 @@ struct priv { struct va_pool *va_pool; }; -static void va_close_surface_descriptor(VADRMPRIMESurfaceDescriptor desc) { - for (uint i = 0; i < desc.num_objects; i++) { +static void va_close_surface_descriptor(VADRMPRIMESurfaceDescriptor desc) +{ + for (int i = 0; i < desc.num_objects; i++) { close(desc.objects[i].fd); desc.objects[i].fd = 0; } } -static void va_free_entry(struct va_pool_entry *entry) { +static void va_free_entry(struct va_pool_entry *entry) +{ if (!entry) return; va_close_surface_descriptor(entry->desc); @@ -79,14 +87,17 @@ static void va_free_entry(struct va_pool_entry *entry) { } static VAStatus va_export_surface_handle(VADisplay display, VASurfaceID surface, - VADRMPRIMESurfaceDescriptor *desc) { + VADRMPRIMESurfaceDescriptor *desc) +{ return vaExportSurfaceHandle(display, surface, - VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2, - VA_EXPORT_SURFACE_COMPOSED_LAYERS | VA_EXPORT_SURFACE_READ_ONLY, - desc); + VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2, + VA_EXPORT_SURFACE_COMPOSED_LAYERS | + VA_EXPORT_SURFACE_READ_ONLY, + desc); } -static struct va_pool_entry* va_alloc_entry(struct vo *vo, struct mp_image *src) { +static struct va_pool_entry *va_alloc_entry(struct vo *vo, struct mp_image *src) +{ struct priv *p = vo->priv; struct vo_wayland_state *wl = vo->wl; VAStatus status; @@ -100,8 +111,7 @@ static struct va_pool_entry* va_alloc_entry(struct vo *vo, struct mp_image *src) MP_VERBOSE(vo, "VA export to composed layers not supported.\n"); va_free_entry(entry); return NULL; - } else if (!vo_wayland_supported_format(vo, - entry->desc.layers[0].drm_format)) { + } else if (!vo_wayland_supported_format(vo, entry->desc.layers[0].drm_format)) { MP_VERBOSE(vo, "%s is not supported.\n", mp_tag_str(entry->desc.layers[0].drm_format)); va_free_entry(entry); @@ -110,64 +120,72 @@ static struct va_pool_entry* va_alloc_entry(struct vo *vo, struct mp_image *src) va_free_entry(entry); return NULL; } else { - uint i, j, plane = 0; + int i, j, plane = 0; entry->params = zwp_linux_dmabuf_v1_create_params(wl->dmabuf); for (i = 0; i < entry->desc.num_layers; i++) { entry->drm_format = entry->desc.layers[i].drm_format; for (j = 0; j < entry->desc.layers[i].num_planes; ++j) { int object = entry->desc.layers[i].object_index[j]; - uint64_t modifier = - entry->desc.objects[object].drm_format_modifier; + uint64_t modifier = entry->desc.objects[object].drm_format_modifier; zwp_linux_buffer_params_v1_add(entry->params, - entry->desc.objects[object].fd, plane++, - entry->desc.layers[i].offset[j], - entry->desc.layers[i].pitch[j], modifier >> 32, - modifier & 0xffffffff); + entry->desc.objects[object].fd, plane++, + entry->desc.layers[i].offset[j], + entry->desc.layers[i].pitch[j], + modifier >> 32, + modifier & 0xffffffff); } } } + entry->buffer = zwp_linux_buffer_params_v1_create_immed(entry->params, - src->params.w, src->params.h, entry->drm_format, 0); + src->params.w, + src->params.h, + entry->drm_format, 0); return entry; } -static void va_pool_clean(struct va_pool *pool) { +static void va_pool_clean(struct va_pool *pool) +{ if (!pool) return; - for (uint i = 0; i < pool->num_entries; ++i) + for (int i = 0; i < pool->num_entries; ++i) va_free_entry(pool->entries[i]); pool->num_entries = 0; } -static void va_pool_free(struct va_pool *pool) { +static void va_pool_free(struct va_pool *pool) +{ if (!pool) return; va_pool_clean(pool); - talloc_free(pool->entries); talloc_free(pool); } -static struct va_pool* va_pool_alloc(struct vo *vo) { + +static struct va_pool *va_pool_alloc(struct vo *vo) +{ struct va_pool *pool = talloc(NULL, struct va_pool); memset(pool, 0, sizeof(struct va_pool)); pool->num_allocated = VA_POOL_NUM_ALLOCATED_INIT; - pool->entries = talloc_array(NULL,struct va_pool_entry*, pool->num_allocated); - memset(pool->entries,0,pool->num_allocated * sizeof(struct va_pool_entry*)); + pool->entries = talloc_array(pool, struct va_pool_entry *, pool->num_allocated); + memset(pool->entries, 0, pool->num_allocated * sizeof(struct va_pool_entry *)); pool->vo = vo; return pool; } -static struct va_pool_entry* va_pool_alloc_entry(struct vo *vo, - struct va_pool *pool, struct mp_image *src) { + +static struct va_pool_entry *va_pool_alloc_entry(struct vo *vo, struct va_pool *pool, + struct mp_image *src) +{ VASurfaceID surface; if (!pool) return NULL; surface = va_surface_id(src); - for (uint i = 0; i < pool->num_entries; ++i) { + for (int i = 0; i < pool->num_entries; ++i) { struct va_pool_entry *item = pool->entries[i]; if (item->surface == surface) return pool->entries[i]; @@ -178,10 +196,11 @@ static struct va_pool_entry* va_pool_alloc_entry(struct vo *vo, return NULL; if (pool->num_entries == pool->num_allocated) { - uint current_num_allocated = pool->num_allocated; + int current_num_allocated = pool->num_allocated; pool->num_allocated *= 2; - pool->entries = talloc_realloc(NULL,pool->entries,struct va_pool_entry*, pool->num_allocated); - for (uint i = current_num_allocated; i < pool->num_allocated; ++i) + pool->entries = talloc_realloc(pool, pool->entries, struct va_pool_entry *, + pool->num_allocated); + for (int i = current_num_allocated; i < pool->num_allocated; ++i) pool->entries[i] = NULL; } pool->entries[pool->num_entries++] = entry; @@ -189,18 +208,14 @@ static struct va_pool_entry* va_pool_alloc_entry(struct vo *vo, return entry; } -struct va_image_formats { - VAImageFormat *entries; - int num; -}; - -static void va_get_formats(struct priv *ctx) { +static void va_get_formats(struct priv *ctx) +{ struct va_image_formats *formats = talloc_ptrtype(ctx, formats); formats->num = vaMaxNumImageFormats(ctx->display); formats->entries = talloc_array(formats, VAImageFormat, formats->num); VAStatus status = vaQueryImageFormats(ctx->display, formats->entries, - &formats->num); + &formats->num); if (!CHECK_VA_STATUS(ctx, "vaQueryImageFormats()")) return; MP_VERBOSE(ctx, "%d image formats available:\n", formats->num); @@ -209,14 +224,17 @@ static void va_get_formats(struct priv *ctx) { ctx->image_formats = formats; } -static void uninit(struct vo *vo) { +static void uninit(struct vo *vo) +{ struct priv *p = vo->priv; va_pool_free(p->va_pool); + if (p->solid_buffer_pool) wl_shm_pool_destroy(p->solid_buffer_pool); if (p->solid_buffer) wl_buffer_destroy(p->solid_buffer); + vo_wayland_uninit(vo); if (vo->hwdec_devs) { @@ -226,10 +244,14 @@ static void uninit(struct vo *vo) { if (p->mpvaapi) va_destroy(p->mpvaapi); } -static int allocate_memfd(size_t size) { + +static int allocate_memfd(struct vo *vo, size_t size) +{ int fd = memfd_create("mpv", MFD_CLOEXEC | MFD_ALLOW_SEALING); - if (fd < 0) + if (fd < 0) { + MP_ERR(vo, "Unable to create memfd file descriptor\n"); return VO_ERROR; + } fcntl(fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_SEAL); @@ -237,10 +259,13 @@ static int allocate_memfd(size_t size) { return fd; close(fd); + MP_ERR(vo, "Unable to allocate memfd file descriptor\n"); + return VO_ERROR; } -static int preinit(struct vo *vo) { +static int preinit(struct vo *vo) +{ struct priv *p = vo->priv; p->vo = vo; @@ -248,8 +273,10 @@ static int preinit(struct vo *vo) { if (!vo_wayland_init(vo)) return VO_ERROR; p->display = vaGetDisplayWl(vo->wl->display); - if (!p->display) + if (!p->display) { + MP_ERR(vo, "Unable to get the VA Display.\n"); return VO_ERROR; + } p->mpvaapi = va_initialize(p->display, p->log, false); if (!p->mpvaapi) { vaTerminate(p->display); @@ -272,11 +299,13 @@ fail: return VO_ERROR; } -static int query_format(struct vo *vo, int format) { +static int query_format(struct vo *vo, int format) +{ return format == IMGFMT_VAAPI; } -static int reconfig(struct vo *vo, struct mp_image_params *params) { +static int reconfig(struct vo *vo, struct mp_image_params *params) +{ struct priv *p = vo->priv; struct vo_wayland_state *wl = vo->wl; @@ -284,47 +313,53 @@ static int reconfig(struct vo *vo, struct mp_image_params *params) { int width = 1; int height = 1; int stride = MP_ALIGN_UP(width * 4, 16); - int fd = allocate_memfd(stride); + int fd = allocate_memfd(vo, stride); if (fd < 0) return VO_ERROR; p->solid_buffer_pool = wl_shm_create_pool(wl->shm, fd, height * stride); if (!p->solid_buffer_pool) return VO_ERROR; p->solid_buffer = wl_shm_pool_create_buffer(p->solid_buffer_pool, 0, - width, height, stride, WL_SHM_FORMAT_XRGB8888); + width, height, stride, + WL_SHM_FORMAT_XRGB8888); if (!p->solid_buffer) return VO_ERROR; } + if (!vo_wayland_reconfig(vo)) return VO_ERROR; return 0; } -static int resize(struct vo *vo) { +static int resize(struct vo *vo) +{ struct vo_wayland_state *wl = vo->wl; struct priv *p = vo->priv; wl_subsurface_set_sync(wl->video_subsurface); vo_wayland_set_opaque_region(wl, 0); - const int32_t width = wl->scaling * mp_rect_w(wl->geometry); - const int32_t height = wl->scaling * mp_rect_h(wl->geometry); + const int width = wl->scaling * mp_rect_w(wl->geometry); + const int height = wl->scaling * mp_rect_h(wl->geometry); vo->dwidth = width; vo->dheight = height; vo_get_src_dst_rects(vo, &p->src, &p->dst, &p->osd); + wp_viewport_set_destination(wl->viewport, - (p->dst.x0 << 1) + mp_rect_w(p->dst), - (p->dst.y0 << 1) + mp_rect_h(p->dst)); + (p->dst.x0 << 1) + mp_rect_w(p->dst), + (p->dst.y0 << 1) + mp_rect_h(p->dst)); wp_viewport_set_destination(wl->video_viewport, mp_rect_w(p->dst), - mp_rect_h(p->dst)); + mp_rect_h(p->dst)); wl_subsurface_set_position(wl->video_subsurface, p->dst.x0, p->dst.y0); + vo->want_redraw = true; wl_subsurface_set_desync(wl->video_subsurface); return VO_TRUE; } -static int control(struct vo *vo, uint32_t request, void *data) { +static int control(struct vo *vo, uint32_t request, void *data) +{ struct priv *p = vo->priv; int events = 0; int ret; @@ -347,7 +382,8 @@ static int control(struct vo *vo, uint32_t request, void *data) { return ret; } -static void draw_frame(struct vo *vo, struct vo_frame *frame) { +static void draw_frame(struct vo *vo, struct vo_frame *frame) +{ struct priv *p = vo->priv; struct vo_wayland_state *wl = vo->wl; @@ -355,7 +391,7 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) { return; struct va_pool_entry *entry = va_pool_alloc_entry(vo, p->va_pool, - frame->current); + frame->current); if (!entry) return; @@ -370,11 +406,13 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) { if (wl->presentation) vo_wayland_sync_swap(wl); } -static void flip_page(struct vo *vo) { +static void flip_page(struct vo *vo) +{ /* no-op */ } -static void get_vsync(struct vo *vo, struct vo_vsync_info *info) { +static void get_vsync(struct vo *vo, struct vo_vsync_info *info) +{ struct vo_wayland_state *wl = vo->wl; if (wl->presentation) { info->vsync_duration = wl->vsync_duration; @@ -383,18 +421,18 @@ static void get_vsync(struct vo *vo, struct vo_vsync_info *info) { } } -const struct vo_driver video_out_vaapi_wayland = { .description = - "VA API with Wayland video output", - .name = "vaapi-wayland", - .preinit = preinit, - .query_format = query_format, - .reconfig = reconfig, - .control = control, - .draw_frame = draw_frame, - .flip_page = flip_page, - .get_vsync = get_vsync, - .wakeup = vo_wayland_wakeup, - .wait_events = vo_wayland_wait_events, - .uninit = uninit, - .priv_size = sizeof(struct priv) +const struct vo_driver video_out_vaapi_wayland = { + .description = "VA API with Wayland video output", + .name = "vaapi-wayland", + .preinit = preinit, + .query_format = query_format, + .reconfig = reconfig, + .control = control, + .draw_frame = draw_frame, + .flip_page = flip_page, + .get_vsync = get_vsync, + .wakeup = vo_wayland_wakeup, + .wait_events = vo_wayland_wait_events, + .uninit = uninit, + .priv_size = sizeof(struct priv) }; diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c index 72a699fdd0..0c41c49e50 100644 --- a/video/out/wayland_common.c +++ b/video/out/wayland_common.c @@ -35,10 +35,10 @@ // Generated from wayland-protocols #include "generated/wayland/idle-inhibit-unstable-v1.h" +#include "generated/wayland/linux-dmabuf-unstable-v1.h" #include "generated/wayland/presentation-time.h" #include "generated/wayland/xdg-decoration-unstable-v1.h" #include "generated/wayland/xdg-shell.h" -#include "generated/wayland/linux-dmabuf-unstable-v1.h" #include "generated/wayland/viewporter.h" #if WAYLAND_VERSION_MAJOR > 1 || WAYLAND_VERSION_MINOR >= 20 @@ -1042,39 +1042,28 @@ static const struct wl_callback_listener frame_listener = { frame_callback, }; -static void dmabuf_format(void *data, - struct zwp_linux_dmabuf_v1 *zwp_linux_dmabuf, uint32_t format) { +static void dmabuf_format(void *data, struct zwp_linux_dmabuf_v1 *zwp_linux_dmabuf, + uint32_t format) +{ struct vo_wayland_state *wl = data; if (wl->drm_format_ct == wl->drm_format_ct_max) { wl->drm_format_ct_max *= 2; - wl->drm_formats = talloc_realloc(NULL,wl->drm_formats,uint, wl->drm_format_ct_max); + wl->drm_formats = talloc_realloc(wl, wl->drm_formats, int, wl->drm_format_ct_max); } + wl->drm_formats[wl->drm_format_ct++] = format; MP_VERBOSE(wl, "%s is supported by the compositor.\n", mp_tag_str(format)); } -bool vo_wayland_supported_format(struct vo *vo, uint drm_format) { - struct vo_wayland_state *wl = vo->wl; - - for (uint i = 0; i < wl->drm_format_ct; ++i) { - if (drm_format == wl->drm_formats[i]) - return true; - } - - return false; -} - -/* currently unused */ -static void dmabuf_modifier(void *data, - struct zwp_linux_dmabuf_v1 *zwp_linux_dmabuf, uint32_t format, - uint32_t modifier_hi, uint32_t modifier_lo) { - +static void dmabuf_modifier(void *data, struct zwp_linux_dmabuf_v1 *zwp_linux_dmabuf, + uint32_t format, uint32_t modifier_hi, uint32_t modifier_lo) +{ } static const struct zwp_linux_dmabuf_v1_listener dmabuf_listener = { - dmabuf_format, - dmabuf_modifier + dmabuf_format, + dmabuf_modifier }; static void registry_handle_add(void *data, struct wl_registry *reg, uint32_t id, @@ -1088,9 +1077,9 @@ static void registry_handle_add(void *data, struct wl_registry *reg, uint32_t id wl->surface = wl_compositor_create_surface(wl->compositor); wl->video_surface = wl_compositor_create_surface(wl->compositor); /* never accept input events on the video surface */ - struct wl_region *region = wl_compositor_create_region (wl->compositor); - wl_surface_set_input_region (wl->video_surface, region); - wl_region_destroy (region); + struct wl_region *region = wl_compositor_create_region(wl->compositor); + wl_surface_set_input_region(wl->video_surface, region); + wl_region_destroy(region); wl->cursor_surface = wl_compositor_create_surface(wl->compositor); wl_surface_add_listener(wl->surface, &surface_listener, wl); } @@ -1100,10 +1089,10 @@ static void registry_handle_add(void *data, struct wl_registry *reg, uint32_t id } if (!strcmp (interface, zwp_linux_dmabuf_v1_interface.name) && (ver >= 2) && found++) { - wl->dmabuf = wl_registry_bind (reg, id, &zwp_linux_dmabuf_v1_interface, 2); - zwp_linux_dmabuf_v1_add_listener (wl->dmabuf, &dmabuf_listener, wl); + wl->dmabuf = wl_registry_bind(reg, id, &zwp_linux_dmabuf_v1_interface, 2); + zwp_linux_dmabuf_v1_add_listener(wl->dmabuf, &dmabuf_listener, wl); wl->drm_format_ct_max = 64; - wl->drm_formats = talloc_array(NULL,uint,wl->drm_format_ct_max); + wl->drm_formats = talloc_array(wl, int, wl->drm_format_ct_max); } if (!strcmp (interface, wp_viewporter_interface.name) && (ver >= 1) && found++) { @@ -1958,6 +1947,18 @@ void vo_wayland_set_opaque_region(struct vo_wayland_state *wl, int alpha) } } +bool vo_wayland_supported_format(struct vo *vo, uint32_t drm_format) +{ + struct vo_wayland_state *wl = vo->wl; + + for (int i = 0; i < wl->drm_format_ct; ++i) { + if (drm_format == wl->drm_formats[i]) + return true; + } + + return false; +} + void vo_wayland_sync_swap(struct vo_wayland_state *wl) { int index = wl->sync_size - 1; @@ -2111,10 +2112,6 @@ void vo_wayland_uninit(struct vo *vo) wl_list_for_each_safe(output, tmp, &wl->output_list, link) remove_output(output); - talloc_free(wl->drm_formats); - - talloc_free(wl->dnd_mime_type); - for (int n = 0; n < 2; n++) close(wl->wakeup_pipe[n]); talloc_free(wl); diff --git a/video/out/wayland_common.h b/video/out/wayland_common.h index 35999e2e20..c85dc200d5 100644 --- a/video/out/wayland_common.h +++ b/video/out/wayland_common.h @@ -29,27 +29,20 @@ struct wayland_opts { }; struct vo_wayland_state { - struct m_config_cache *vo_opts_cache; - struct mp_log *log; - struct mp_vo_opts *vo_opts; - struct vo *vo; - struct wayland_opts *opts; - struct wl_callback *frame_callback; - struct wl_compositor *compositor; - struct wl_subcompositor *subcompositor; - struct wl_display *display; - struct wl_registry *registry; - struct wp_viewporter *viewporter; - struct wp_viewport *viewport; - struct zwp_linux_dmabuf_v1 *dmabuf; - uint *drm_formats; - uint drm_format_ct; - uint drm_format_ct_max; - struct wl_shm *shm; - struct wl_surface *surface; - struct wl_surface *video_surface; - struct wl_subsurface *video_subsurface; - struct wp_viewport *video_viewport; + struct m_config_cache *vo_opts_cache; + struct mp_log *log; + struct mp_vo_opts *vo_opts; + struct vo *vo; + struct wayland_opts *opts; + struct wl_callback *frame_callback; + struct wl_compositor *compositor; + struct wl_subcompositor *subcompositor; + struct wl_display *display; + struct wl_registry *registry; + struct wl_shm *shm; + struct wl_surface *surface; + struct wl_surface *video_surface; + struct wl_subsurface *video_subsurface; /* Geometry */ struct mp_rect geometry; @@ -85,15 +78,11 @@ struct vo_wayland_state { struct zwp_idle_inhibit_manager_v1 *idle_inhibit_manager; struct zwp_idle_inhibitor_v1 *idle_inhibitor; - /* xdg-decoration */ - struct zxdg_decoration_manager_v1 *xdg_decoration_manager; - struct zxdg_toplevel_decoration_v1 *xdg_toplevel_decoration; - int requested_decoration; - - /* xdg-shell */ - struct xdg_wm_base *wm_base; - struct xdg_surface *xdg_surface; - struct xdg_toplevel *xdg_toplevel; + /* linux-dmabuf */ + struct zwp_linux_dmabuf_v1 *dmabuf; + int *drm_formats; + int drm_format_ct; + int drm_format_ct_max; /* presentation-time */ struct wp_presentation *presentation; @@ -107,6 +96,21 @@ struct vo_wayland_state { int64_t refresh_interval; int64_t vsync_duration; + /* xdg-decoration */ + struct zxdg_decoration_manager_v1 *xdg_decoration_manager; + struct zxdg_toplevel_decoration_v1 *xdg_toplevel_decoration; + int requested_decoration; + + /* xdg-shell */ + struct xdg_wm_base *wm_base; + struct xdg_surface *xdg_surface; + struct xdg_toplevel *xdg_toplevel; + + /* viewporter */ + struct wp_viewporter *viewporter; + struct wp_viewport *viewport; + struct wp_viewport *video_viewport; + /* Input */ struct wl_keyboard *keyboard; struct wl_pointer *pointer; @@ -136,6 +140,7 @@ struct vo_wayland_state { }; bool vo_wayland_check_visible(struct vo *vo); +bool vo_wayland_supported_format(struct vo *vo, uint32_t format); int vo_wayland_control(struct vo *vo, int *events, int request, void *arg); int vo_wayland_init(struct vo *vo); @@ -147,6 +152,5 @@ void vo_wayland_uninit(struct vo *vo); void vo_wayland_wait_events(struct vo *vo, int64_t until_time_us); void vo_wayland_wait_frame(struct vo_wayland_state *wl); void vo_wayland_wakeup(struct vo *vo); -bool vo_wayland_supported_format(struct vo *vo,uint format); #endif /* MPLAYER_WAYLAND_COMMON_H */ |