Developing a custom plugin in gstreamer-vaapi

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Developing a custom plugin in gstreamer-vaapi

Mats

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
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Developing a custom plugin in gstreamer-vaapi

Victor Jaquez
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
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel