How to utilise GStreamer plugins-good/bad/ugly in iOS SDK

1.4k views Asked by At

As per the link here http://gstreamer.freedesktop.org/releases/gst-plugins-base/1.4.5.html

I want to use the Good/Bad plugins for iOS SDK, but somehow I can't figure out how. I understand that plugins can be easily installed on MAC OSX to work with GStreamer for MAC OSX, but how do I make them work with the iOS SDK ?

1

There are 1 answers

0
jonei On

here is how I was finally able to use, among others, the gst-plugins-good soup to use libsoup from the iOS GStreamer interface.

First a note about the installation of the iOS GStreamer framework. One might get a warning that the installer might not install in “this location”. Clicking on the location will remove the message and the installer should work anyway.

The big blob (~1.3 GB) which is installed in /Users/user/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework/Versions/1.0/GStreamer seems to contain all the plugins, both good and bad.

The tutorials in the legacy iOS installation basically show what needs to be included to use the plugins. They must be statically declared and registered. The files gst_ios_init.h and gst_ios_init.m in the tutorials show how this is done. Just open the dmg file and copy the files. I also found at least one plugin mentioned on the net which was not documented on the GStreamer page, but which was still possible to include with the method below. Note the G_BEGIN_DECLS which must be used.

G_BEGIN_DECLS

#define GST_IOS_PLUGINS_NET

#if defined(GST_IOS_PLUGIN_SOUP) || defined(GST_IOS_PLUGINS_NET)
GST_PLUGIN_STATIC_DECLARE(soup);

G_END_DECLS



int main (int   argc, char *argv[])
{

#if defined(GST_IOS_PLUGIN_SOUP) || defined(GST_IOS_PLUGINS_NET)
GST_PLUGIN_STATIC_REGISTER(soup);

QString desc = QString("souphttpsrc location=%1").arg(base_url);
source  = gst_parse_bin_from_description_full(desc.toLatin1().data(),  TRUE, NULL, GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS, &err);
...

}