I am writing a new meta lib, and have been battling trying to solve: What is interesting about this, is that the exact same library/header/c file defines:``` $ gst-inspect-1.0 decklinkvideosrc (gst-plugin-scanner:10063): GStreamer-WARNING **: Failed to load plugin '/opt/gst/lib/gstreamer-1.0/libgstdecklink.so': /opt/gst/lib/gstreamer-1.0/libgstdecklink.so: undefined symbol: vanc_meta_get_info ``` ``` VANCMeta * gst_buffer_add_vanc_meta (GstBuffer * buffer, gint did, gint dbn_sdid, uint16_t * data, gsize size, uint16_t checksum); ``` ``` const GstMetaInfo *vanc_meta_get_info (void); ``` ``` #ifndef _GST_VANC_META_H_ #define _GST_VANC_META_H_ #ifdef __cplusplus extern "C" { #endif #include <gst/gst.h> #include <stdint.h> ... /* implementation */ const GstMetaInfo *vanc_meta_get_info (void); #define GST_VANC_META_INFO (vanc_meta_get_info ()) VANCMeta * gst_buffer_add_vanc_meta (GstBuffer * buffer, gint did, gint dbn_sdid, uint16_t * data, gsize size, uint16_t checksum); ... ``` ``` #include "gstvancmeta.h" ... const GstMetaInfo *vanc_meta_get_info (void) { static const GstMetaInfo *meta_info = NULL; if (g_once_init_enter (&meta_info)) { const GstMetaInfo *mi = gst_meta_register (VANC_META_API_TYPE, "VANCMeta", sizeof (VANCMeta), vanc_meta_init, vanc_meta_free, vanc_meta_transform); g_once_init_leave (&meta_info, mi); } return meta_info; } VANCMeta * gst_buffer_add_vanc_meta (GstBuffer * buffer, gint did, gint dbn_sdid, uint16_t * data, gsize size, uint16_t checksum) { VANCMeta *vmeta; g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL); vmeta = (VANCMeta *) gst_buffer_add_meta (buffer, GST_VANC_META_INFO, NULL); ... return vmeta; } ``` ``` static void packetizeComponentAncillary(GstDecklinkVideoSrc *self, std::vector<uint16_t> &data, GstBuffer * buffer) { const GstMetaInfo *vanc_info = vanc_meta_get_info (); ... if (usableVANC(did, dbn_sdid)) { gst_buffer_add_vanc_meta (buffer, did, dbn_sdid, &data[idx + 6], data_count, chksum_e); GST_WARNING_OBJECT (self, "VANC meta added"); } } } ``` I only add the call to vanc_meta_get_info () there just to see if it would link, since it does not in gst-libav. It does not either place. In gstdecklink it is linking the .la file, and in gst-libav it is linking the .so file. I will attach the full patch in case it helps. Thank you, John _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gst-plugins-bad-vanc.patch (36K) Download Attachment |
I noticed this warning fly by: gst-libs/gst/vanc/Makefile.am:17: warning: variable 'libgstvanc_@GST_API_VERSION@la_SOURCES' is defined but no program or gst-libs/gst/vanc/Makefile.am:17: library has 'libgstvanc_@GST_API_VERSION@la' as canonical name (possible typo) How does it know that? Could that be part of my problem? John On Mon, Oct 10, 2016 at 4:46 PM John P Poet <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Tue, 2016-10-11 at 23:16 +0000, John P Poet wrote:
> I noticed this warning fly by: > > gst-libs/gst/vanc/Makefile.am:17: warning: variable 'libgstvanc_@GST_ > API_VERSION@la_SOURCES' is defined but no program or > gst-libs/gst/vanc/Makefile.am:17: library has 'libgstvanc_@GST_API_VE > RSION@la' as canonical name (possible typo) > > How does it know that? Could that be part of my problem? Most likely yes. Can you put all your changes up in a git repository somewhere, e.g. on github? And maybe also file a bug in Bugzilla so we can discuss inclusion of it and the API :) -- Sebastian Dröge, Centricular Ltd · http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (985 bytes) Download Attachment |
On Thu, Oct 13, 2016 at 2:16 AM Sebastian Dröge <[hidden email]> wrote: Can you put all your changes up in a git repository I will work on creating a github repository with these changes. A co-working noticed that LDFLAGS has "-export-symbols-regex "^_?(gst_|Gst|GST_).*" and suggested that the problem could be that I was not prefixing my functions with gst_. I made that change, but it didn't help, No it says: (gst-plugin-scanner:25893): GStreamer-WARNING **: Failed to load plugin '/opt/gst/lib/gstreamer-1.0/libgstlibav.so': /opt/gst/lib/gstreamer-1.0/libgstlibav.so: undefined symbol: gst_vanc_meta_get_info John _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Thu, Oct 13, 2016 at 1:29 PM John P Poet <[hidden email]> wrote:
Hi Sebastian, I will be away for the next week or so, but am hopeful that you will figure out what I am doing wrong, while I am gone :-) Thanks, John _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Wed, 2016-10-19 at 22:20 +0000, John P Poet wrote:
> On Thu, Oct 13, 2016 at 1:29 PM John P Poet <[hidden email]> wrote: > > On Thu, Oct 13, 2016 at 2:16 AM Sebastian Dröge <sebastian@centricu > > lar.com> wrote: > > > Can you put all your changes up in a git repository > > > > > > somewhere, e.g. on github? And maybe also file a bug in Bugzilla > > > so we > > > > > > can discuss inclusion of it and the API :) > > > > I will work on creating a github repository with these changes. > > > > A co-working noticed that LDFLAGS has "-export-symbols-regex > > "^_?(gst_|Ghttps://github.com/jpoet/gst-libavst|GST_).*" and > > suggested that the problem could be that I was not prefixing my > > functions with gst_. I made that change, but it didn't help, No > > it says: > > > > (gst-plugin-scanner:25893): GStreamer-WARNING **: Failed to load > > plugin '/opt/gst/lib/gstreamer-1.0/libgstlibav.so': > > /opt/gst/lib/gstreamer-1.0/libgstlibav.so: undefined symbol: > > gst_vanc_meta_get_info > > > > Hi Sebastian, > > I was wondering if you have had any luck with > https://github.com/jpoet/gst-plugins-bad/tree/VANC > and > https://github.com/jpoet/gst-libav > > I will be away for the next week or so, but am hopeful that you will > figure out what I am doing wrong, while I am gone :-) -- Sebastian Dröge, Centricular Ltd · http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (949 bytes) Download Attachment |
On Thu, 2016-10-20 at 07:27 +0300, Sebastian Dröge wrote:
> On Wed, 2016-10-19 at 22:20 +0000, John P Poet wrote: > > On Thu, Oct 13, 2016 at 1:29 PM John P Poet <[hidden email]> > > wrote: > > > On Thu, Oct 13, 2016 at 2:16 AM Sebastian Dröge <sebastian@centri > > > cu > > > lar.com> wrote: > > > > Can you put all your changes up in a git repository > > > > > > > > somewhere, e.g. on github? And maybe also file a bug in > > > > Bugzilla > > > > so we > > > > > > > > can discuss inclusion of it and the API :) > > > > > > I will work on creating a github repository with these changes. > > > > > > A co-working noticed that LDFLAGS has "-export-symbols-regex > > > "^_?(gst_|Ghttps://github.com/jpoet/gst-libavst|GST_).*" and > > > suggested that the problem could be that I was not prefixing my > > > functions with gst_. I made that change, but it didn't help, No > > > it says: > > > > > > (gst-plugin-scanner:25893): GStreamer-WARNING **: Failed to load > > > plugin '/opt/gst/lib/gstreamer-1.0/libgstlibav.so': > > > /opt/gst/lib/gstreamer-1.0/libgstlibav.so: undefined symbol: > > > gst_vanc_meta_get_info > > > > > > > Hi Sebastian, > > > > I was wondering if you have had any luck with > > https://github.com/jpoet/gst-plugins-bad/tree/VANC > > and > > https://github.com/jpoet/gst-libav > > > > I will be away for the next week or so, but am hopeful that you > > will > > figure out what I am doing wrong, while I am gone :-) > > It's still on my list, yes :) also various API related things that I would comment on. Can you put your changes into Bugzilla for review and so we can include them into GStreamer later? :) -- Sebastian Dröge, Centricular Ltd · http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gst-libav.diff (2K) Download Attachment gst-plugins-bad.diff (7K) Download Attachment signature.asc (949 bytes) Download Attachment |
On Mon, Oct 24, 2016 at 1:25 AM Sebastian Dröge <[hidden email]> wrote:
See the attached changes. That makes it compile for now, but there are Thank you, Sebastian. I have pushed those changes to the VANC branch and created https://bugzilla.gnome.org/show_bug.cgi?id=773863 Are you going to add your API comments to that ticket, or here? John _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by jpoet
Based on the error message you provided, it seems that the symbol vanc_meta_get_info is undefined in your shared library libgstdecklink.so. This could be because the library was not linked with the appropriate object file or library containing the definition of that symbol.
One thing you could try is to make sure that the library containing the definition of vanc_meta_get_info is included in the linker command when building libgstdecklink.so. You can do this by adding the appropriate linker flags to your build system. For example, if you are using gcc to link your library, you can add the -l flag followed by the name of the library to link against. For instance, if the library containing the vanc_meta_get_info symbol is called libvancmeta.so, you could add the flag -lvancmeta to your linker command. Alternatively, you could try adding the object file containing the vanc_meta_get_info symbol directly to the linker command when building libgstdecklink.so. For example, if the object file containing the symbol is called vancmeta.o, you could add it to the linker command with the -Wl,-whole-archive vancmeta.o -Wl,-no-whole-archive flags. I hope this helps you resolve the issue. Regards, Rachel Gomez |
Free forum by Nabble | Edit this page |