I want qt mutimedia use waylandsink to play video,so "export QT_GSTREAMER_WINDOW_VIDEOSINK=waylandsink".
But the waylandsink plugin in the gst-plugins-bad told me: "Application did not provide a wayland display handle.waylandsink cannot use an externally-supplied surface without an externally-supplied display handle. Consider providing a display handle from your application with GstContext" Anybody have tried this? Any suggestion? How can the application supply a wl_surface handle for the sink to use? |
Hi,
On Mon, 2017-07-10 at 01:36 -0700, kevan.lan wrote: > I want qt mutimedia use waylandsink to play video,so "export > QT_GSTREAMER_WINDOW_VIDEOSINK=waylandsink". > But the waylandsink plugin in the gst-plugins-bad told me: > "Application did > not provide a wayland display handle.waylandsink cannot use an > externally-supplied surface without an externally-supplied display > handle. > Consider providing a display handle from your application with > GstContext" > > Anybody have tried this? Any suggestion? How can the application > supply a > wl_surface handle for the sink to use? The application can supply the surface with gst_video_overlay_set_window_handle(), it must also create a context using gst_wayland_display_handle_context_new() and set that context on the pipeline with gst_element_set_context(). -- Olivier Crête [hidden email] _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Le lundi 10 juillet 2017 à 16:49 -0400, Olivier Crête a écrit :
> Hi, > > On Mon, 2017-07-10 at 01:36 -0700, kevan.lan wrote: > > I want qt mutimedia use waylandsink to play video,so "export > > QT_GSTREAMER_WINDOW_VIDEOSINK=waylandsink". > > But the waylandsink plugin in the gst-plugins-bad told me: > > "Application did > > not provide a wayland display handle.waylandsink cannot use an > > externally-supplied surface without an externally-supplied display > > handle. > > Consider providing a display handle from your application with > > GstContext" > > > > Anybody have tried this? Any suggestion? How can the application > > supply a > > wl_surface handle for the sink to use? > > The application can supply the surface with > gst_video_overlay_set_window_handle(), it must also create a context > using gst_wayland_display_handle_context_new() and set that context on > the pipeline with gst_element_set_context(). > these are unstable and some of them are just not exported. Forturnatly, this function is just a simple helper, here's the implementation: #define GST_WAYLAND_DISPLAY_HANDLE_CONTEXT_TYPE "GstWaylandDisplayHandleContextType" GstContext * gst_wayland_display_handle_context_new (struct wl_display * display) { GstContext *context = gst_context_new (GST_WAYLAND_DISPLAY_HANDLE_CONTEXT_TYPE, TRUE); gst_structure_set (gst_context_writable_structure (context), "handle", G_TYPE_POINTER, display, NULL); return context; } regards, Nicolas _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (201 bytes) Download Attachment |
Free forum by Nabble | Edit this page |