videogstreamerdynamic-linking

Gstreamer plugin get video meta data, library not linked?


When I call these functions:

meta_api = gst_video_meta_api_get_type();
crop_meta = gst_buffer_get_video_crop_meta (buffer);
meta = gst_buffer_get_video_meta (buffer);

Obviously, I need to include these header files:

#include <gst/gst.h>
#include <gst/video/video.h>
#include <gst/video/gstvideometa.h>

The gstreamer library is dynamically linked at runtime. When I run the whole pipeline through gst-launch-1.0. I got this error:

undefined symbol: gst_video_meta_api_get_type

And all the function call about gstmeta would not work. I have struggled on this for a long time. Please help!

My gstreamer is installed through compiling source code. Any other function call are fine.

Thanks in advance.


Solution

  • You need to make sure you are linking against the needed libraries.

    For the base plugins link against -lgstbase-1.0 and for video plugins link against -lgstvideo-1.0. I am not 100% sure which of the two that function resides but linking against both will fix it for you.