Whereas GStreamer usually spawns multiple threads to take care ofĭifferent tasks. The graphical “widgets” through the main (or application) thread, Moreover, if you are using playbin, it will automatically expose some of the interfaces supported by its internal elements: You can use your interface functions directly on playbin without knowing who is implementing them!Īnother issue is that GUI toolkits usually only allow manipulation of From the application developer point of view, if a certain interface is supported, you can use it and forget about which kind of element is implementing it. For example, video sinks usually create their own windows to display video, but, if they are also capable of rendering to an external window, they can choose to implement the GstVideoOverlay interface and provide functions to specify this external window. If it does, then it is said to support that particular interface. Tell a video sink the handler of the window that should receive theĪ GObject interface (which GStreamer uses) is a set of functions that an element can implement. This independenceĬomes through the GstVideoOverlay interface, that allows the application to Rather, on the windowing system), but GStreamer provides a layer ofĪbstraction for the sake of platform independence. The specific mechanism depends on the operating system (or The main point is telling GStreamer to output the video to a window of Knowledge of GTK+ will help understand this GTK+ toolkit, but the concepts apply to other We are going to build a media player using the Instead of being notified of all of them. Operation forbidden on most GUI toolkits.Ī mechanism to subscribe only to the messages you are interested in,
#Gtk windows update#
How to update the GUI from the multiple threads of GStreamer, an How to continuously refresh the GUI with information from GStreamer. How to tell GStreamer to output video to a particular window GTK+ window and forwarding user actions to GStreamer. Libraries have to interact: Instructing GStreamer to output video to a The most interesting parts are those in which both GStreamer takes care of media playback while the GUI toolkit handles
#Gtk windows how to#
This tutorial shows how to integrate GStreamer in a Graphical User Please port this tutorial to javascript! Goal