Developing a custom plugin in gstreamer-vaapi

Víctor Jáquez vjaquez at igalia.com
Thu Mar 15 23:04:18 UTC 2018


Hi,

I would say that the best way to add a new element that need the gstreamer-vaapi
internals, develop it inside the gstreamer-vaapi tree. It would be hard to
extract and isolate certain parts of it.

Since the integration of gstreamer-vaapi into the gstreamer project, there are
no gst-vaapi exportable libraries.

On Fri, 09 Mar 2018 at 11:03, Mats wrote:
> I am developing a custom plugin for gstreamer-vaapi. I am accessing the
> GstVaapiVideoMeta data of the incomming buffer, using the following piece
> of code,
> 
> GstVaapiVideoMeta *meta;
>     .
>     .
> meta = gst_buffer_get_vaapi_video_meta (buf);
> 
> 
> Compilation succeeds. However at the time of linking , I get the error,
> 
> CCLD     libgstmyelement.la
> .libs/libgstmyelement_la-gstmyelement.o: In function `gst_myelement_chain':
> gstreamer-vaapi/gst-libs/gst/vaapi/gstmyelement.c:262: undefined
> reference to `gst_buffer_get_vaapi_video_meta'
> /usr/bin/ld: .libs/libgstmyelement.so.0.0.0: hidden symbol
> `gst_buffer_get_vaapi_video_meta' isn't defined
> /usr/bin/ld: final link failed: Bad value
> collect2: error: ld returned 1 exit status
> Makefile:1218: recipe for target 'libgstmyelement.la' failed
> make[5]: *** [libgstmyelement.la] Error 1
> 
> 
> 
> 
> I've included gstvaapivideometa.h in my c file. Modified the Makefile.am by
> adding
> 
> plugin_LTLIBRARIES = libgstmyelement.la
> 
> libgstmyelement_source_c =                      \
>         gstmyelement.c                          \
>         $(NULL)
> 
> libgstmyelement_source_h =                      \
>         gstmyelement.h                          \
>         gstvaapivideometa.h                     \
>         $(NULL)
> 
> libgstmyelement_la_SOURCES =                    \
>         $(libgstmyelement_source_c) =           \
>         $(libgstmyelement_source_h)             \
>         $(NULL)
> 
> libgstmyelement_la_CFLAGS = -I <Path to gstreamer-vaapi/gst/vaapi/>
> libgstmyelement_la_CFLAGS+=                     \
>         -DIN_LIBGSTVAAPI                        \
>         $(libgstvaapi_cflags)                   \
>         $(NULL)
> 
> 
> libgstmyelement_la_LIBADD =                     \
>         $(libgstvaapi_libs)                     \
>         $(GST_LIBS)                             \
>         $(GST_BASE_LIBS)                        \
>         $(GST_VIDEO_LIBS)                       \
>         $(NULL)
> 
> libgstmyelement_la_LDFLAGS =                    \
>         $(GST_ALL_LDFLAGS)                      \
>         $(NULL)
> 
> libgstmyelement_la_LIBTOOLFLAGS = --tag=disable-static
> 
> 
> Can anyone tell me how I can develop a custom plugin in gstreamer but
> linking into existing libraries/functions/structs defined in other plugins.

> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list