NAME¶
dtk_load_video_gst - Load the sink of gstreamer pipeline as a texture
SYNOPSIS¶
#include <dtk_video.h>
dtk_htex dtk_load_video_gst(int flags, const char
*desc);
DESCRIPTION¶
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).
RETURN VALUE¶
In case of success, the function returns the handle to the created texture. In
case of failure,
NULL is returned.
THREAD SAFETY¶
dtk_load_video_gst() is thread-safe.
SEE ALSO¶
gst-launch(1),
dtk_destroy_texture(3),
dtk_video_exec(3),
dtk_video_getstate(3)