Universal builds of gstreamer on macosx and osxvideosrc

Dan Kegel dank at kegel.com
Mon Sep 30 11:36:31 PDT 2013


I haven't given up yet.  The easiest way to see the problem is

$ rm ~/.gstreamer-0.10/*
$ file /opt/oblong/deps/lib/gstreamer-0.10/libgstosxvideosrc.so
/opt/oblong/deps/lib/gstreamer-0.10/libgstosxvideosrc.so: Mach-O bundle i386
$ file /opt/oblong/deps/bin/gst-inspect
/opt/oblong/deps/bin/gst-inspect: Mach-O universal binary with 2 architectures
/opt/oblong/deps/bin/gst-inspect (for architecture i386): Mach-O executable i386
/opt/oblong/deps/bin/gst-inspect (for architecture x86_64): Mach-O
64-bit executable x86_64
$ file /opt/oblong/deps/libexec/gstreamer-0.10/gst-plugin-scanner
/opt/oblong/deps/libexec/gstreamer-0.10/gst-plugin-scanner: Mach-O
universal binary with 2 architectures
/opt/oblong/deps/libexec/gstreamer-0.10/gst-plugin-scanner (for
architecture i386): Mach-O executable i386
/opt/oblong/deps/libexec/gstreamer-0.10/gst-plugin-scanner (for
architecture x86_64): Mach-O 64-bit executable x86_64
$ arch -i386 /opt/oblong/deps/bin/gst-inspect osxvideosrc

(gst-plugin-scanner:76473): GStreamer-WARNING **: Failed to load
plugin '/opt/oblong/deps/lib/gstreamer-0.10/libgstosxvideosrc.so':
dlopen(/opt/oblong/deps/lib/gstreamer-0.10/libgstosxvideosrc.so, 2):
no suitable image found.  Did find:
/opt/oblong/deps/lib/gstreamer-0.10/libgstosxvideosrc.so: mach-o, but
wrong architecture

$ GST_DEBUG=5  arch -i386 /opt/oblong/deps/bin/gst-inspect osxvideosrc
> log 2>&1
$ cat log | tr '\033' @ | sed 's/@[^m]*m//g;s/^[^ ]* //;s/^[^ ]*
//;s/^[^ ]* //' > log2
$ $ head -n 13 log2
             GST_INIT gst.c:605:init_pre: Initializing GStreamer Core
Library version 0.10.35
             GST_INIT gst.c:606:init_pre: Using library installed in
/opt/oblong/deps/lib
             GST_INIT gst.c:616:init_pre: Darwin
rbb-osx107-host-2.la923.oblong.net 11.4.2 Darwin Kernel Version
11.4.2: Thu Aug 23 16:25:48 PDT 2012;
root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64
             GST_INIT gstquery.c:107:_gst_query_initialize: init queries
             default gstelement.c:285:gst_element_base_class_init:
type GstElement : factory 0x0
             default gstelement.c:285:gst_element_base_class_init:
type GstBin : factory 0x0
                 bin gstbin.c:521:gst_bin_class_init: creating bin thread pool
             GST_INIT gstmessage.c:73:_gst_message_initialize: init messages
   GST_PLUGIN_LOADING gstplugin.c:350:_gst_plugin_initialize:
registering 0 static plugins
    GST_PLUGIN_LOADING gstplugin.c:252:gst_plugin_register_static:
attempting to load static plugin "staticelements" now...
    GST_PLUGIN_LOADING gstplugin.c:540:gst_plugin_register_func:
plugin "(NULL)" looks good
   GST_ELEMENT_FACTORY
gstelementfactory.c:246:gst_element_register:<bin> Created new
elementfactory for type GstBin
        GST_REGISTRY
gstregistry.c:556:gst_registry_add_feature:<registry0> adding feature
0x7fc102033000 (bin)

Note the 64 bit pointer on the last line of the log.
For whatever reason, arch -i386 has not forced gst-inspect into 32 bit
mode.  Confusing...
- Dan


More information about the gstreamer-devel mailing list