I’m trying out a GStreamer test application, but at runtime the following line fails:
demuxer = gst_element_factory_make ("oggdemux", "ogg-demuxer"); // returns NULL
I am using MacOSX and installed GStreamer, libogg and vorbis-tools through MacPorts. So I don’t see why it fails.
Any suggestions on how to make it work?
EDIT: SOLVED!
The problem was that I needed to install the autodetect plugin from the gst-plugins-good package.
Here’s a list of actions that made it work:
Remove the MacPorts installation:
sudo port uninstall gstreamer
Add the following line to ~/.profile
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
Download gstreamer, gstreamer-plugins-base and gstreamer-plugins-good sources.
Build and install gstreamer (./configure, make, make install)
Build and install gstreamer-plugins-base (./configure, make, make install)
And for gstreamer-plugins-good I only built the autodetect package because building all resulted in errors for some plugins that I don’t need or care about now. I did it like this:
./configure
cd gst/autodetect/
make
sudo make install
Right now the program builds and runs. I don’t seem to be getting any audio output however 🙁 but that’s another issue.
Reading
gstelementfactory.c(GStreamer version 0.10.25) line 463 (gst_element_factory_makefunction definition), there are three errors which cause aNULLreturn:NULL(obviously OK in your code)gst_element_factory_findreturnedNULL)gst_element_Factory_createreturnedNULL)The code performs substantial logging so if you are able to turn this on then you may get further hints as to the underlying problem.
To check that the oggdemux plugin is configured correctly, try running:
If this doesn’t return a result, try using
gst-registerto register it.