Показать видео с помощью Gstremer1.0 GTK + 3.0

Я не могу правильно вставить видео в GtkWidget. Скажи мне, что я делаю неправильно? Видео открывается в новом окне, а не в том, что я отправляю. Видеоизображение должно открыться в этом окне на фоне.

Изображение результата приложения

#include <iostream> #include <gtk/gtk.h> #include <gst/gst.h> #include <gdk/gdkx.h> using namespace std; GstElement *pipeline, *src, *sink, *b; int main(int argc, char *argv[]) { cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! GtkWidget *window; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); //gtk_container_border_width (GTK_CONTAINER (window), 10); GdkColor color; gdk_color_parse ("black", &color); gtk_widget_modify_bg ( window, GTK_STATE_NORMAL, &color); gtk_window_fullscreen((GtkWindow*)window); std::string path = std::string("file:///home/stas/eclipse-workspace/TestGTK/0.mp4"); gst_init (&argc, &argv); src = gst_element_factory_make ("videotestsrc", NULL); sink = gst_element_factory_make ("gtksink", NULL); b = gst_element_factory_make("playbin", "playbin"); g_object_set(b, "uri", path.c_str()); gst_bin_add_many (GST_BIN (b), src, sink, NULL); gst_element_link (src, sink); GtkWidget *area; g_object_get (sink, "widget", &area, NULL); gtk_container_add (GTK_CONTAINER (window), area); gtk_widget_realize(area); gtk_widget_show_all (window); gst_element_set_state (b, GST_STATE_PLAYING); gtk_widget_show (window); gtk_main (); return 0;

}

0
задан 29 April 2018 в 21:57

0 ответов

Другие вопросы по тегам:

Похожие вопросы: