vaapisink overlay
Víctor M. Jáquez L.
vjaquez at igalia.com
Thu Jan 5 09:57:34 UTC 2017
For sake of completion, there is a closed bug regarding this issue:
https://bugzilla.gnome.org/show_bug.cgi?id=770877
vmjl
On 08/05/16 at 11:54pm, imeshns wrote:
> Hi,
>
> I use example from the internet and when I'm using glimagesink everything is
> ok, but when I use vaapisink the overlay does not work correct, only black
> screen. When I use gst-inspect with vaapisink it's ok, but Gtk overlay does
> not work.
> What's wrong?
> Thanks for all help.
>
> My code:
>
> #include <gst/gst.h>
> #include <gst/video/videooverlay.h>
> #include <gtk/gtk.h>
> #include <gdk/gdk.h>
>
> #if defined (GDK_WINDOWING_X11)
> #include <gdk/gdkx.h>
> #elif defined (GDK_WINDOWING_WIN32)
> #include <gdk/gdkwin32.h>
> #elif defined (GDK_WINDOWING_QUARTZ)
> #include <gdk/gdkquartz.h>
> #endif
>
> static void realize_cb (GtkWidget *widget, GstElement *sink)
> {
> GdkWindow *window = gtk_widget_get_window (widget);
> guintptr window_handle;
>
> if (!gdk_window_ensure_native (window))
> g_error ("Couldn't create native window needed for GstXOverlay!");
>
> #if defined (GDK_WINDOWING_WIN32)
> window_handle = (guintptr)GDK_WINDOW_HWND (window);
> #elif defined (GDK_WINDOWING_QUARTZ)
> window_handle = gdk_quartz_window_get_nsview (window);
> #elif defined (GDK_WINDOWING_X11)
> window_handle = GDK_WINDOW_XID (window);
> #endif
>
> gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (sink),
> window_handle);
> }
>
> int main (void)
> {
> gst_init (NULL, NULL);
> gtk_init (NULL, NULL);
> GError *error = NULL;
>
> GstElement *pipeline, *sink;
>
> GtkWidget *windowHead = gtk_window_new(GTK_WINDOW_TOPLEVEL);
> GtkWidget *video_window;
>
> pipeline = gst_parse_launch ("rtspsrc latency=5 drop-on-latency=true
> protocols=1 location=rtsp://x.x.x.x ! rtph264depay ! h264parse !
> vaapidecodebin ! vaapisink name=sink", &error);
> sink = gst_bin_get_by_name (GST_BIN (pipeline), "sink");
>
> video_window = gtk_drawing_area_new ();
> g_signal_connect (video_window, "realize", G_CALLBACK (realize_cb), sink);
>
> gtk_container_add (GTK_CONTAINER (windowHead), video_window);
> gtk_window_set_default_size (GTK_WINDOW (windowHead), 800, 600);
>
> gtk_widget_show_all (windowHead);
> gst_element_set_state (pipeline, GST_STATE_PLAYING);
>
> g_print ("Now playing...\n");
>
> gtk_main();
>
> return 0;
> }
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/vaapisink-overlay-tp4678988.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
More information about the gstreamer-devel
mailing list