dtk_load_video_gst man page
dtk_load_video_gst — Load the sink of gstreamer pipeline as a texture
dtk_htex dtk_load_video_gst(int flags, const char *desc);
This function loads as a dynamic texture the video stream arriving into the sink of a gstreamer pipeline. The pipeline description desc should follows the syntax used in the gst-launch(1) utility and it must contains an video sink of type appsink named dtksink that will be used to get the data for the dynamic texture. The texture will then been tracked by an internal texture manager so that the next call using the same desc argument will return the same texture handle, thus sparing the resources of the system. If not specified by flags the video will not be played immediately and dtk_video_exec(3) should be called to do start playing.
The argument flags is used to modify the creation. It should contains a bitwise OR combination of the following flags:
DTK_AUTOSTART : Indicates that the video should start immediately after creation.
DTK_NOBLOCKING : Indicates that the creation function should not block waiting that the video pipeline is fully running.
A dynamic texture can be used the same way as a static texture (for example image file). The only difference is that the content of the texture changes automatically with the stream of video. This means that every time a shape using this texture is drawn, the latest frame available from the video stream will be mapped on the shape.
There is no need for a valid window to create successfully a texture, i.e. creation of textures are completely decoupled from the creation of others resources and can even be created in one thread to be used in another one.
Once a the texture is stopped being used, it should be destroyed by dtk_destroy_texture(3).
In case of success, the function returns the handle to the created texture. In case of failure, NULL is returned.
dtk_load_video_gst() is thread-safe.
gst-launch(1), dtk_destroy_texture(3), dtk_video_exec(3), dtk_video_getstate(3)