summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavi Artigas <xartigas@fluendo.com>2013-05-07 18:33:37 +0200
committerXavi Artigas <xartigas@fluendo.com>2013-05-07 18:33:37 +0200
commitb2fadd6d9050523258b57ab9987b1b5e8b1686d7 (patch)
treeaa414ed7d02f8be572a3ba0baab7f4b071347b9f
parentc7b0aeb341f5dba6ffd194550a81402951dfbb77 (diff)
New iOS Tutorial 3 (copied from Tutorial 2)
-rw-r--r--gst-sdk/tutorials/xcode iOS/GStreamer iOS Tutorials.xcodeproj/project.pbxproj311
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/AppDelegate.h7
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/AppDelegate.m38
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/Default-568h@2x.pngbin0 -> 18594 bytes
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/Default.pngbin0 -> 6540 bytes
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/Default@2x.pngbin0 -> 16107 bytes
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/GStreamerBackend.h16
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/GStreamerBackend.m177
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/GStreamerBackendDelegate.h14
-rwxr-xr-xgst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPad.pngbin0 -> 7051 bytes
-rwxr-xr-xgst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPad@2x.pngbin0 -> 18108 bytes
-rwxr-xr-xgst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPhone.pngbin0 -> 5502 bytes
-rwxr-xr-xgst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPhone@2x.pngbin0 -> 12896 bytes
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/Tutorial 3-Info.plist62
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/Tutorial 3-Prefix.pch14
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/ViewController.h17
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/ViewController.m65
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/en.lproj/InfoPlist.strings2
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/en.lproj/MainStoryboard_iPad.storyboard79
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/en.lproj/MainStoryboard_iPhone.storyboard66
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/gst_ios_init.c995
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/gst_ios_init.h25
-rw-r--r--gst-sdk/tutorials/xcode iOS/Tutorial 3/main.m13
23 files changed, 1901 insertions, 0 deletions
diff --git a/gst-sdk/tutorials/xcode iOS/GStreamer iOS Tutorials.xcodeproj/project.pbxproj b/gst-sdk/tutorials/xcode iOS/GStreamer iOS Tutorials.xcodeproj/project.pbxproj
index 249835f..1a0f77f 100644
--- a/gst-sdk/tutorials/xcode iOS/GStreamer iOS Tutorials.xcodeproj/project.pbxproj
+++ b/gst-sdk/tutorials/xcode iOS/GStreamer iOS Tutorials.xcodeproj/project.pbxproj
@@ -44,6 +44,25 @@
C67B4146172FEA3C008359CC /* appicon-2-iPad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4142172FEA3C008359CC /* appicon-2-iPad@2x.png */; };
C67B4147172FEA3C008359CC /* appicon-2-iPhone.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4143172FEA3C008359CC /* appicon-2-iPhone.png */; };
C67B4148172FEA3C008359CC /* appicon-2-iPhone@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4144172FEA3C008359CC /* appicon-2-iPhone@2x.png */; };
+ C6B6126017395CF2003FC410 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C67B40CC172EBEA3008359CC /* UIKit.framework */; };
+ C6B6126117395CF2003FC410 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C67B40CE172EBEA3008359CC /* Foundation.framework */; };
+ C6B6126217395CF2003FC410 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C67B40D0172EBEA3008359CC /* CoreGraphics.framework */; };
+ C6B6126317395CF2003FC410 /* GStreamer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C67B40D2172EBEA3008359CC /* GStreamer.framework */; };
+ C6B6126917395CF2003FC410 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C6B6126717395CF2003FC410 /* InfoPlist.strings */; };
+ C6B6126B17395CF2003FC410 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C6B6126A17395CF2003FC410 /* main.m */; };
+ C6B6126F17395CF2003FC410 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C6B6126E17395CF2003FC410 /* AppDelegate.m */; };
+ C6B6127117395CF2003FC410 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = C6B6127017395CF2003FC410 /* Default.png */; };
+ C6B6127317395CF2003FC410 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6B6127217395CF2003FC410 /* Default@2x.png */; };
+ C6B6127517395CF2003FC410 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6B6127417395CF2003FC410 /* Default-568h@2x.png */; };
+ C6B6127817395CF2003FC410 /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C6B6127617395CF2003FC410 /* MainStoryboard_iPhone.storyboard */; };
+ C6B6127B17395CF2003FC410 /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C6B6127917395CF2003FC410 /* MainStoryboard_iPad.storyboard */; };
+ C6B6127E17395CF2003FC410 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C6B6127D17395CF2003FC410 /* ViewController.m */; };
+ C6B6128B17395D4F003FC410 /* GStreamerBackend.m in Sources */ = {isa = PBXBuildFile; fileRef = C6B6128917395D4F003FC410 /* GStreamerBackend.m */; };
+ C6B6128E17395EE2003FC410 /* gst_ios_init.c in Sources */ = {isa = PBXBuildFile; fileRef = C6B6128C17395EE2003FC410 /* gst_ios_init.c */; };
+ C6B6129417396231003FC410 /* appicon-3-iPad.png in Resources */ = {isa = PBXBuildFile; fileRef = C6B6129017396231003FC410 /* appicon-3-iPad.png */; };
+ C6B6129517396231003FC410 /* appicon-3-iPad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6B6129117396231003FC410 /* appicon-3-iPad@2x.png */; };
+ C6B6129617396231003FC410 /* appicon-3-iPhone.png in Resources */ = {isa = PBXBuildFile; fileRef = C6B6129217396231003FC410 /* appicon-3-iPhone.png */; };
+ C6B6129717396231003FC410 /* appicon-3-iPhone@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6B6129317396231003FC410 /* appicon-3-iPhone@2x.png */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@@ -96,6 +115,29 @@
C67B4142172FEA3C008359CC /* appicon-2-iPad@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-2-iPad@2x.png"; sourceTree = "<group>"; };
C67B4143172FEA3C008359CC /* appicon-2-iPhone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-2-iPhone.png"; sourceTree = "<group>"; };
C67B4144172FEA3C008359CC /* appicon-2-iPhone@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-2-iPhone@2x.png"; sourceTree = "<group>"; };
+ C6B6125F17395CF1003FC410 /* Tutorial 3.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Tutorial 3.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+ C6B6126617395CF2003FC410 /* Tutorial 3-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tutorial 3-Info.plist"; sourceTree = "<group>"; };
+ C6B6126817395CF2003FC410 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ C6B6126A17395CF2003FC410 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ C6B6126C17395CF2003FC410 /* Tutorial 3-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tutorial 3-Prefix.pch"; sourceTree = "<group>"; };
+ C6B6126D17395CF2003FC410 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
+ C6B6126E17395CF2003FC410 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
+ C6B6127017395CF2003FC410 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
+ C6B6127217395CF2003FC410 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; };
+ C6B6127417395CF2003FC410 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
+ C6B6127717395CF2003FC410 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPhone.storyboard; sourceTree = "<group>"; };
+ C6B6127A17395CF2003FC410 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPad.storyboard; sourceTree = "<group>"; };
+ C6B6127C17395CF2003FC410 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
+ C6B6127D17395CF2003FC410 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
+ C6B6128817395D4F003FC410 /* GStreamerBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GStreamerBackend.h; sourceTree = "<group>"; };
+ C6B6128917395D4F003FC410 /* GStreamerBackend.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GStreamerBackend.m; sourceTree = "<group>"; };
+ C6B6128A17395D4F003FC410 /* GStreamerBackendDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GStreamerBackendDelegate.h; sourceTree = "<group>"; };
+ C6B6128C17395EE2003FC410 /* gst_ios_init.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gst_ios_init.c; sourceTree = "<group>"; };
+ C6B6128D17395EE2003FC410 /* gst_ios_init.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gst_ios_init.h; sourceTree = "<group>"; };
+ C6B6129017396231003FC410 /* appicon-3-iPad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-3-iPad.png"; sourceTree = "<group>"; };
+ C6B6129117396231003FC410 /* appicon-3-iPad@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-3-iPad@2x.png"; sourceTree = "<group>"; };
+ C6B6129217396231003FC410 /* appicon-3-iPhone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-3-iPhone.png"; sourceTree = "<group>"; };
+ C6B6129317396231003FC410 /* appicon-3-iPhone@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-3-iPhone@2x.png"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -121,6 +163,17 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ C6B6125C17395CF1003FC410 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ C6B6126017395CF2003FC410 /* UIKit.framework in Frameworks */,
+ C6B6126117395CF2003FC410 /* Foundation.framework in Frameworks */,
+ C6B6126217395CF2003FC410 /* CoreGraphics.framework in Frameworks */,
+ C6B6126317395CF2003FC410 /* GStreamer.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -129,6 +182,7 @@
children = (
C67B40D4172EBEA3008359CC /* Tutorial 1 */,
C67B4104172FC7F4008359CC /* Tutorial 2 */,
+ C6B6126417395CF2003FC410 /* Tutorial 3 */,
C67B40CB172EBEA3008359CC /* Frameworks */,
C67B40CA172EBEA3008359CC /* Products */,
);
@@ -139,6 +193,7 @@
children = (
C67B40C9172EBEA3008359CC /* Tutorial 1.app */,
C67B40FF172FC7F4008359CC /* Tutorial 2.app */,
+ C6B6125F17395CF1003FC410 /* Tutorial 3.app */,
);
name = Products;
sourceTree = "<group>";
@@ -243,6 +298,51 @@
path = Images;
sourceTree = "<group>";
};
+ C6B6126417395CF2003FC410 /* Tutorial 3 */ = {
+ isa = PBXGroup;
+ children = (
+ C6B6128F17396231003FC410 /* Images */,
+ C6B6128817395D4F003FC410 /* GStreamerBackend.h */,
+ C6B6128917395D4F003FC410 /* GStreamerBackend.m */,
+ C6B6126D17395CF2003FC410 /* AppDelegate.h */,
+ C6B6126E17395CF2003FC410 /* AppDelegate.m */,
+ C6B6127617395CF2003FC410 /* MainStoryboard_iPhone.storyboard */,
+ C6B6127917395CF2003FC410 /* MainStoryboard_iPad.storyboard */,
+ C6B6127C17395CF2003FC410 /* ViewController.h */,
+ C6B6127D17395CF2003FC410 /* ViewController.m */,
+ C6B6126517395CF2003FC410 /* Supporting Files */,
+ );
+ path = "Tutorial 3";
+ sourceTree = "<group>";
+ };
+ C6B6126517395CF2003FC410 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ C6B6128C17395EE2003FC410 /* gst_ios_init.c */,
+ C6B6128D17395EE2003FC410 /* gst_ios_init.h */,
+ C6B6126617395CF2003FC410 /* Tutorial 3-Info.plist */,
+ C6B6126717395CF2003FC410 /* InfoPlist.strings */,
+ C6B6126A17395CF2003FC410 /* main.m */,
+ C6B6126C17395CF2003FC410 /* Tutorial 3-Prefix.pch */,
+ C6B6127017395CF2003FC410 /* Default.png */,
+ C6B6127217395CF2003FC410 /* Default@2x.png */,
+ C6B6127417395CF2003FC410 /* Default-568h@2x.png */,
+ C6B6128A17395D4F003FC410 /* GStreamerBackendDelegate.h */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+ C6B6128F17396231003FC410 /* Images */ = {
+ isa = PBXGroup;
+ children = (
+ C6B6129017396231003FC410 /* appicon-3-iPad.png */,
+ C6B6129117396231003FC410 /* appicon-3-iPad@2x.png */,
+ C6B6129217396231003FC410 /* appicon-3-iPhone.png */,
+ C6B6129317396231003FC410 /* appicon-3-iPhone@2x.png */,
+ );
+ path = Images;
+ sourceTree = "<group>";
+ };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -280,6 +380,23 @@
productReference = C67B40FF172FC7F4008359CC /* Tutorial 2.app */;
productType = "com.apple.product-type.application";
};
+ C6B6125E17395CF1003FC410 /* Tutorial 3 */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C6B6128517395CF2003FC410 /* Build configuration list for PBXNativeTarget "Tutorial 3" */;
+ buildPhases = (
+ C6B6125B17395CF1003FC410 /* Sources */,
+ C6B6125C17395CF1003FC410 /* Frameworks */,
+ C6B6125D17395CF1003FC410 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = "Tutorial 3";
+ productName = "Tutorial 3";
+ productReference = C6B6125F17395CF1003FC410 /* Tutorial 3.app */;
+ productType = "com.apple.product-type.application";
+ };
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -302,6 +419,7 @@
targets = (
C67B40C8172EBEA3008359CC /* Tutorial 1 */,
C67B40FE172FC7F4008359CC /* Tutorial 2 */,
+ C6B6125E17395CF1003FC410 /* Tutorial 3 */,
);
};
/* End PBXProject section */
@@ -340,6 +458,23 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ C6B6125D17395CF1003FC410 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ C6B6126917395CF2003FC410 /* InfoPlist.strings in Resources */,
+ C6B6127117395CF2003FC410 /* Default.png in Resources */,
+ C6B6127317395CF2003FC410 /* Default@2x.png in Resources */,
+ C6B6127517395CF2003FC410 /* Default-568h@2x.png in Resources */,
+ C6B6127817395CF2003FC410 /* MainStoryboard_iPhone.storyboard in Resources */,
+ C6B6127B17395CF2003FC410 /* MainStoryboard_iPad.storyboard in Resources */,
+ C6B6129417396231003FC410 /* appicon-3-iPad.png in Resources */,
+ C6B6129517396231003FC410 /* appicon-3-iPad@2x.png in Resources */,
+ C6B6129617396231003FC410 /* appicon-3-iPhone.png in Resources */,
+ C6B6129717396231003FC410 /* appicon-3-iPhone@2x.png in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -367,6 +502,18 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ C6B6125B17395CF1003FC410 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ C6B6126B17395CF2003FC410 /* main.m in Sources */,
+ C6B6126F17395CF2003FC410 /* AppDelegate.m in Sources */,
+ C6B6127E17395CF2003FC410 /* ViewController.m in Sources */,
+ C6B6128B17395D4F003FC410 /* GStreamerBackend.m in Sources */,
+ C6B6128E17395EE2003FC410 /* gst_ios_init.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
@@ -418,6 +565,30 @@
name = MainStoryboard_iPad.storyboard;
sourceTree = "<group>";
};
+ C6B6126717395CF2003FC410 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C6B6126817395CF2003FC410 /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+ C6B6127617395CF2003FC410 /* MainStoryboard_iPhone.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C6B6127717395CF2003FC410 /* en */,
+ );
+ name = MainStoryboard_iPhone.storyboard;
+ sourceTree = "<group>";
+ };
+ C6B6127917395CF2003FC410 /* MainStoryboard_iPad.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C6B6127A17395CF2003FC410 /* en */,
+ );
+ name = MainStoryboard_iPad.storyboard;
+ sourceTree = "<group>";
+ };
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
@@ -697,6 +868,138 @@
};
name = Release;
};
+ C6B6128617395CF2003FC410 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = armv7;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = (
+ "\"~/Library/Developer/GStreamer/iPhone.sdk\"",
+ "\"$(SYSTEM_APPS_DIR)/Xcode.app/Contents/Developer/Library/Frameworks\"",
+ );
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "Tutorial 3/Tutorial 3-Prefix.pch";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = "\"~/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework/Headers\"";
+ INFOPLIST_FILE = "Tutorial 3/Tutorial 3-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 6.1;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_LDFLAGS = (
+ "-lresolv",
+ "-lstdc++",
+ "-framework",
+ CoreFoundation,
+ "-framework",
+ Foundation,
+ "-framework",
+ AVFoundation,
+ "-framework",
+ CoreMedia,
+ "-framework",
+ CoreVideo,
+ "-framework",
+ CoreAudio,
+ "-framework",
+ AudioToolbox,
+ "-framework",
+ OpenGLES,
+ "-framework",
+ AssetsLibrary,
+ "-framework",
+ QuartzCore,
+ "-framework",
+ AssetsLibrary,
+ );
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ C6B6128717395CF2003FC410 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = armv7;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ FRAMEWORK_SEARCH_PATHS = (
+ "\"~/Library/Developer/GStreamer/iPhone.sdk\"",
+ "\"$(SYSTEM_APPS_DIR)/Xcode.app/Contents/Developer/Library/Frameworks\"",
+ );
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "Tutorial 3/Tutorial 3-Prefix.pch";
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = "\"~/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework/Headers\"";
+ INFOPLIST_FILE = "Tutorial 3/Tutorial 3-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 6.1;
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ OTHER_LDFLAGS = (
+ "-lresolv",
+ "-lstdc++",
+ "-framework",
+ CoreFoundation,
+ "-framework",
+ Foundation,
+ "-framework",
+ AVFoundation,
+ "-framework",
+ CoreMedia,
+ "-framework",
+ CoreVideo,
+ "-framework",
+ CoreAudio,
+ "-framework",
+ AudioToolbox,
+ "-framework",
+ OpenGLES,
+ "-framework",
+ AssetsLibrary,
+ "-framework",
+ QuartzCore,
+ "-framework",
+ AssetsLibrary,
+ );
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -727,6 +1030,14 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ C6B6128517395CF2003FC410 /* Build configuration list for PBXNativeTarget "Tutorial 3" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C6B6128617395CF2003FC410 /* Debug */,
+ C6B6128717395CF2003FC410 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ };
/* End XCConfigurationList section */
};
rootObject = C67B40BF172EBDF1008359CC /* Project object */;
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/AppDelegate.h b/gst-sdk/tutorials/xcode iOS/Tutorial 3/AppDelegate.h
new file mode 100644
index 0000000..a5a8b38
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/AppDelegate.h
@@ -0,0 +1,7 @@
+#import <UIKit/UIKit.h>
+
+@interface AppDelegate : UIResponder <UIApplicationDelegate>
+
+@property (strong, nonatomic) UIWindow *window;
+
+@end
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/AppDelegate.m b/gst-sdk/tutorials/xcode iOS/Tutorial 3/AppDelegate.m
new file mode 100644
index 0000000..31ef04e
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/AppDelegate.m
@@ -0,0 +1,38 @@
+#import "AppDelegate.h"
+
+@implementation AppDelegate
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ // Override point for customization after application launch.
+ return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application
+{
+ // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+ // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application
+{
+ // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
+ // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application
+{
+ // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+ // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application
+{
+ // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
+}
+
+@end
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/Default-568h@2x.png b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Default-568h@2x.png
new file mode 100644
index 0000000..0891b7a
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Default-568h@2x.png
Binary files differ
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/Default.png b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Default.png
new file mode 100644
index 0000000..4c8ca6f
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Default.png
Binary files differ
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/Default@2x.png b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Default@2x.png
new file mode 100644
index 0000000..35b84cf
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Default@2x.png
Binary files differ
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/GStreamerBackend.h b/gst-sdk/tutorials/xcode iOS/Tutorial 3/GStreamerBackend.h
new file mode 100644
index 0000000..b00f758
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/GStreamerBackend.h
@@ -0,0 +1,16 @@
+#import <Foundation/Foundation.h>
+#import "GStreamerBackendDelegate.h"
+
+@interface GStreamerBackend : NSObject
+
+/* Initialization method. Pass the delegate that will take care of the UI.
+ * This delegate must implement the GStreamerBackendDelegate protocol */
+-(id) init:(id) uiDelegate;
+
+/* Set the pipeline to PLAYING */
+-(void) play;
+
+/* Set the pipeline to PAUSED */
+-(void) pause;
+
+@end \ No newline at end of file
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/GStreamerBackend.m b/gst-sdk/tutorials/xcode iOS/Tutorial 3/GStreamerBackend.m
new file mode 100644
index 0000000..814d15a
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/GStreamerBackend.m
@@ -0,0 +1,177 @@
+#import "GStreamerBackend.h"
+
+#include <gst/gst.h>
+
+GST_DEBUG_CATEGORY_STATIC (debug_category);
+#define GST_CAT_DEFAULT debug_category
+
+@interface GStreamerBackend()
+-(void)setUIMessage:(gchar*) message;
+-(void)app_function;
+-(void)check_initialization_complete;
+@end
+
+@implementation GStreamerBackend {
+ id ui_delegate; /* Class that we use to interact with the user interface */
+ GstElement *pipeline; /* The running pipeline */
+ GMainContext *context; /* GLib context used to run the main loop */
+ GMainLoop *main_loop; /* GLib main loop */
+ gboolean initialized; /* To avoid informing the UI multiple times about the initialization */
+}
+
+/*
+ * Interface methods
+ */
+
+-(id) init:(id) uiDelegate
+{
+ if (self = [super init])
+ {
+ self->ui_delegate = uiDelegate;
+
+ GST_DEBUG_CATEGORY_INIT (debug_category, "tutorial-2", 0, "iOS tutorial 2");
+ gst_debug_set_threshold_for_name("tutorial-2", GST_LEVEL_DEBUG);
+
+ /* Start the bus monitoring task */
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+ [self app_function];
+ });
+ }
+
+ return self;
+}
+
+-(void) dealloc
+{
+ if (pipeline) {
+ GST_DEBUG("Setting the pipeline to NULL");
+ gst_element_set_state(pipeline, GST_STATE_NULL);
+ gst_object_unref(pipeline);
+ pipeline = NULL;
+ }
+}
+
+-(void) play
+{
+ if(gst_element_set_state(pipeline, GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) {
+ [self setUIMessage:"Failed to set pipeline to playing"];
+ }
+}
+
+-(void) pause
+{
+ if(gst_element_set_state(pipeline, GST_STATE_PAUSED) == GST_STATE_CHANGE_FAILURE) {
+ [self setUIMessage:"Failed to set pipeline to paused"];
+ }
+}
+
+/*
+ * Private methods
+ */
+
+/* Change the message on the UI through the UI delegate */
+-(void)setUIMessage:(gchar*) message
+{
+ NSString *string = [NSString stringWithUTF8String:message];
+ if(ui_delegate && [ui_delegate respondsToSelector:@selector(gstreamerSetUIMessage:)])
+ {
+ [ui_delegate gstreamerSetUIMessage:string];
+ }
+}
+
+/* Retrieve errors from the bus and show them on the UI */
+static void error_cb (GstBus *bus, GstMessage *msg, GStreamerBackend *self)
+{
+ GError *err;
+ gchar *debug_info;
+ gchar *message_string;
+
+ gst_message_parse_error (msg, &err, &debug_info);
+ message_string = g_strdup_printf ("Error received from element %s: %s", GST_OBJECT_NAME (msg->src), err->message);
+ g_clear_error (&err);
+ g_free (debug_info);
+ [self setUIMessage:message_string];
+ g_free (message_string);
+ gst_element_set_state (self->pipeline, GST_STATE_NULL);
+}
+
+/* Notify UI about pipeline state changes */
+static void state_changed_cb (GstBus *bus, GstMessage *msg, GStreamerBackend *self)
+{
+ GstState old_state, new_state, pending_state;
+ gst_message_parse_state_changed (msg, &old_state, &new_state, &pending_state);
+ /* Only pay attention to messages coming from the pipeline, not its children */
+ if (GST_MESSAGE_SRC (msg) == GST_OBJECT (self->pipeline)) {
+ gchar *message = g_strdup_printf("State changed to %s", gst_element_state_get_name(new_state));
+ [self setUIMessage:message];
+ g_free (message);
+ }
+}
+
+/* Check if all conditions are met to report GStreamer as initialized.
+ * These conditions will change depending on the application */
+-(void) check_initialization_complete
+{
+ if (!initialized && main_loop) {
+ GST_DEBUG ("Initialization complete, notifying application.");
+ if (ui_delegate && [ui_delegate respondsToSelector:@selector(gstreamerInitialized)])
+ {
+ [ui_delegate gstreamerInitialized];
+ }
+ initialized = TRUE;
+ }
+}
+
+/* Main method for the bus monitoring code */
+-(void) app_function
+{
+ GstBus *bus;
+ GSource *bus_source;
+ GError *error = NULL;
+
+ GST_DEBUG ("Creating pipeline");
+
+ /* Create our own GLib Main Context and make it the default one */
+ context = g_main_context_new ();
+ g_main_context_push_thread_default(context);
+
+ /* Build pipeline */
+ pipeline = gst_parse_launch("audiotestsrc ! audioconvert ! audioresample ! autoaudiosink", &error);
+ if (error) {
+ gchar *message = g_strdup_printf("Unable to build pipeline: %s", error->message);
+ g_clear_error (&error);
+ [self setUIMessage:message];
+ g_free (message);
+ return;
+ }
+
+ /* Instruct the bus to emit signals for each received message, and connect to the interesting signals */
+ bus = gst_element_get_bus (pipeline);
+ bus_source = gst_bus_create_watch (bus);
+ g_source_set_callback (bus_source, (GSourceFunc) gst_bus_async_signal_func, NULL, NULL);
+ g_source_attach (bus_source, context);
+ g_source_unref (bus_source);
+ g_signal_connect (G_OBJECT (bus), "message::error", (GCallback)error_cb, (__bridge void *)self);
+ g_signal_connect (G_OBJECT (bus), "message::state-changed", (GCallback)state_changed_cb, (__bridge void *)self);
+ gst_object_unref (bus);
+
+ /* Create a GLib Main Loop and set it to run */
+ GST_DEBUG ("Entering main loop...");
+ main_loop = g_main_loop_new (context, FALSE);
+ [self check_initialization_complete];
+ g_main_loop_run (main_loop);
+ GST_DEBUG ("Exited main loop");
+ g_main_loop_unref (main_loop);
+ main_loop = NULL;
+
+ /* Free resources */
+ g_main_context_pop_thread_default(context);
+ g_main_context_unref (context);
+ gst_element_set_state (pipeline, GST_STATE_NULL);
+ gst_object_unref (pipeline);
+
+ return;
+}
+
+@end
+
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/GStreamerBackendDelegate.h b/gst-sdk/tutorials/xcode iOS/Tutorial 3/GStreamerBackendDelegate.h
new file mode 100644
index 0000000..5586373
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/GStreamerBackendDelegate.h
@@ -0,0 +1,14 @@
+#import <Foundation/Foundation.h>
+
+@protocol GStreamerBackendDelegate <NSObject>
+
+@optional
+/* Called when the GStreamer backend has finished initializing
+ * and is ready to accept orders. */
+-(void) gstreamerInitialized;
+
+/* Called when the GStreamer backend wants to output some message
+ * to the screen. */
+-(void) gstreamerSetUIMessage:(NSString *)message;
+
+@end
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPad.png b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPad.png
new file mode 100755
index 0000000..d119186
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPad.png
Binary files differ
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPad@2x.png b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPad@2x.png
new file mode 100755
index 0000000..2fa612a
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPad@2x.png
Binary files differ
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPhone.png b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPhone.png
new file mode 100755
index 0000000..9fded2d
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPhone.png
Binary files differ
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPhone@2x.png b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPhone@2x.png
new file mode 100755
index 0000000..1a4b4f9
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Images/appicon-3-iPhone@2x.png
Binary files differ
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/Tutorial 3-Info.plist b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Tutorial 3-Info.plist
new file mode 100644
index 0000000..b00c1bf
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Tutorial 3-Info.plist
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleDisplayName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIcons</key>
+ <dict>
+ <key>CFBundlePrimaryIcon</key>
+ <dict>
+ <key>CFBundleIconFiles</key>
+ <array>
+ <string>appicon-3-iPad.png</string>
+ <string>appicon-3-iPad@2x.png</string>
+ <string>appicon-3-iPhone.png</string>
+ <string>appicon-3-iPhone@2x.png</string>
+ </array>
+ </dict>
+ </dict>
+ <key>CFBundleIdentifier</key>
+ <string>gstreamer-sdk.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>UIMainStoryboardFile</key>
+ <string>MainStoryboard_iPhone</string>
+ <key>UIMainStoryboardFile~ipad</key>
+ <string>MainStoryboard_iPad</string>
+ <key>UIRequiredDeviceCapabilities</key>
+ <array>
+ <string>armv7</string>
+ </array>
+ <key>UISupportedInterfaceOrientations</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+ <key>UISupportedInterfaceOrientations~ipad</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+</dict>
+</plist>
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/Tutorial 3-Prefix.pch b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Tutorial 3-Prefix.pch
new file mode 100644
index 0000000..e41cee4
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/Tutorial 3-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'Tutorial 3' target in the 'Tutorial 3' project
+//
+
+#import <Availability.h>
+
+#ifndef __IPHONE_5_0
+#warning "This project uses features only available in iOS SDK 5.0 and later."
+#endif
+
+#ifdef __OBJC__
+ #import <UIKit/UIKit.h>
+ #import <Foundation/Foundation.h>
+#endif
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/ViewController.h b/gst-sdk/tutorials/xcode iOS/Tutorial 3/ViewController.h
new file mode 100644
index 0000000..be19276
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/ViewController.h
@@ -0,0 +1,17 @@
+#import <UIKit/UIKit.h>
+#import "GStreamerBackendDelegate.h"
+
+@interface ViewController : UIViewController <GStreamerBackendDelegate> {
+ IBOutlet UILabel *message_label;
+ IBOutlet UIBarButtonItem *play_button;
+ IBOutlet UIBarButtonItem *pause_button;
+}
+
+-(IBAction) play:(id)sender;
+-(IBAction) pause:(id)sender;
+
+/* From GStreamerBackendDelegate */
+-(void) gstreamerInitialized;
+-(void) gstreamerSetUIMessage:(NSString *)message;
+
+@end
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/ViewController.m b/gst-sdk/tutorials/xcode iOS/Tutorial 3/ViewController.m
new file mode 100644
index 0000000..512ede7
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/ViewController.m
@@ -0,0 +1,65 @@
+#import "ViewController.h"
+#import "GStreamerBackend.h"
+#import <UIKit/UIKit.h>
+
+@interface ViewController () {
+ GStreamerBackend *gst_backend;
+}
+
+@end
+
+@implementation ViewController
+
+/*
+ * Methods from UIViewController
+ */
+
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+
+ play_button.enabled = FALSE;
+ pause_button.enabled = FALSE;
+
+ gst_backend = [[GStreamerBackend alloc] init:self];
+}
+
+- (void)didReceiveMemoryWarning
+{
+ [super didReceiveMemoryWarning];
+ // Dispose of any resources that can be recreated.
+}
+
+/* Called when the Play button is pressed */
+-(IBAction) play:(id)sender
+{
+ [gst_backend play];
+}
+
+/* Called when the Pause button is pressed */
+-(IBAction) pause:(id)sender
+{
+ [gst_backend pause];
+}
+
+/*
+ * Methods from GstreamerBackendDelegate
+ */
+
+-(void) gstreamerInitialized
+{
+ dispatch_async(dispatch_get_main_queue(), ^{
+ play_button.enabled = TRUE;
+ pause_button.enabled = TRUE;
+ message_label.text = @"Ready";
+ });
+}
+
+-(void) gstreamerSetUIMessage:(NSString *)message
+{
+ dispatch_async(dispatch_get_main_queue(), ^{
+ message_label.text = message;
+ });
+}
+
+@end
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/en.lproj/InfoPlist.strings b/gst-sdk/tutorials/xcode iOS/Tutorial 3/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..477b28f
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/en.lproj/MainStoryboard_iPad.storyboard b/gst-sdk/tutorials/xcode iOS/Tutorial 3/en.lproj/MainStoryboard_iPad.storyboard
new file mode 100644
index 0000000..c96f025
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/en.lproj/MainStoryboard_iPad.storyboard
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="3084" systemVersion="11G63" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" initialViewController="z7O-8l-Zeo">
+ <dependencies>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="2083"/>
+ </dependencies>
+ <scenes>
+ <!--View Controller-->
+ <scene sceneID="P93-nn-HBJ">
+ <objects>
+ <viewController id="z7O-8l-Zeo" customClass="ViewController" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="CqS-Gu-I1O">
+ <rect key="frame" x="0.0" y="20" width="768" height="1004"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Initializing..." textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="728" translatesAutoresizingMaskIntoConstraints="NO" id="iLX-h1-Ko5" userLabel="Message">
+ <constraints>
+ <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="50" type="user" id="7Z8-1b-Y41"/>
+ </constraints>
+ <fontDescription key="fontDescription" type="system" pointSize="16"/>
+ <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MUi-CE-Ydy">
+ <items>
+ <barButtonItem style="plain" systemItem="flexibleSpace" id="onU-hf-FS4"/>
+ <barButtonItem systemItem="play" id="UlF-Ga-2VX">
+ <connections>
+ <action selector="play:" destination="z7O-8l-Zeo" id="5xC-uv-9lM"/>
+ </connections>
+ </barButtonItem>
+ <barButtonItem systemItem="pause" id="J3O-8j-Tkt">
+ <connections>
+ <action selector="pause:" destination="z7O-8l-Zeo" id="BYM-2X-Tel"/>
+ </connections>
+ </barButtonItem>
+ <barButtonItem style="plain" systemItem="flexibleSpace" id="urI-U7-ALw"/>
+ </items>
+ </toolbar>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+ <constraints>
+ <constraint firstItem="iLX-h1-Ko5" firstAttribute="bottom" secondItem="MUi-CE-Ydy" secondAttribute="top" constant="8" symbolic="YES" type="user" id="FXP-eH-VSK"/>
+ <constraint firstItem="MUi-CE-Ydy" firstAttribute="leading" secondItem="CqS-Gu-I1O" secondAttribute="leading" constant="20" symbolic="YES" type="user" id="OM9-gE-OVP"/>
+ <constraint firstAttribute="trailing" secondItem="iLX-h1-Ko5" secondAttribute="trailing" constant="20" symbolic="YES" type="user" id="Xdr-12-E1r"/>
+ <constraint firstItem="iLX-h1-Ko5" firstAttribute="leading" secondItem="CqS-Gu-I1O" secondAttribute="leading" constant="20" symbolic="YES" type="user" id="bT2-TE-X7Q"/>
+ <constraint firstItem="MUi-CE-Ydy" firstAttribute="trailing" secondItem="CqS-Gu-I1O" secondAttribute="trailing" constant="20" symbolic="YES" type="user" id="iRT-XF-W0f"/>
+ <constraint firstItem="MUi-CE-Ydy" firstAttribute="bottom" secondItem="CqS-Gu-I1O" secondAttribute="bottom" constant="20" symbolic="YES" type="user" id="w6K-xy-EJe"/>
+ </constraints>
+ </view>
+ <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackTranslucent"/>
+ <connections>
+ <outlet property="message_label" destination="iLX-h1-Ko5" id="Q0Y-3J-zis"/>
+ <outlet property="pause_button" destination="J3O-8j-Tkt" id="Dls-sg-FPm"/>
+ <outlet property="play_button" destination="UlF-Ga-2VX" id="243-yq-GEe"/>
+ </connections>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="iRS-GG-bR6" sceneMemberID="firstResponder"/>
+ </objects>
+ </scene>
+ </scenes>
+ <classes>
+ <class className="ViewController" superclassName="UIViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/ViewController.h"/>
+ <relationships>
+ <relationship kind="action" name="pause:"/>
+ <relationship kind="action" name="play:"/>
+ <relationship kind="outlet" name="label" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="message_label" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="pause_button" candidateClass="UIBarButtonItem"/>
+ <relationship kind="outlet" name="play_button" candidateClass="UIBarButtonItem"/>
+ </relationships>
+ </class>
+ </classes>
+ <simulatedMetricsContainer key="defaultSimulatedMetrics">
+ <simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/>
+ <simulatedOrientationMetrics key="orientation"/>
+ <simulatedScreenMetrics key="destination"/>
+ </simulatedMetricsContainer>
+</document> \ No newline at end of file
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/en.lproj/MainStoryboard_iPhone.storyboard b/gst-sdk/tutorials/xcode iOS/Tutorial 3/en.lproj/MainStoryboard_iPhone.storyboard
new file mode 100644
index 0000000..0d14c30
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/en.lproj/MainStoryboard_iPhone.storyboard
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="3084" systemVersion="11G63" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="kYn-Hr-MJq">
+ <dependencies>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="2083"/>
+ </dependencies>
+ <scenes>
+ <!--View Controller-->
+ <scene sceneID="3nc-d3-XH9">
+ <objects>
+ <viewController id="kYn-Hr-MJq" customClass="ViewController" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="JOS-rK-Hts">
+ <rect key="frame" x="0.0" y="20" width="320" height="548"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Initializing..." textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="280" translatesAutoresizingMaskIntoConstraints="NO" id="8wd-E5-Owx" userLabel="Message">
+ <constraints>
+ <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="50" type="user" id="WIW-Im-XnF"/>
+ </constraints>
+ <fontDescription key="fontDescription" type="system" pointSize="16"/>
+ <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="o22-1p-nvT">
+ <items>
+ <barButtonItem style="plain" systemItem="flexibleSpace" id="BPU-1t-gy3"/>
+ <barButtonItem systemItem="play" id="6LZ-7a-xKf">
+ <connections>
+ <action selector="play:" destination="kYn-Hr-MJq" id="hIx-MW-CFA"/>
+ </connections>
+ </barButtonItem>
+ <barButtonItem systemItem="pause" id="bfY-YY-jiu">
+ <connections>
+ <action selector="pause:" destination="kYn-Hr-MJq" id="dQ5-mO-cMh"/>
+ </connections>
+ </barButtonItem>
+ <barButtonItem style="plain" systemItem="flexibleSpace" id="hSc-4x-myS"/>
+ </items>
+ </toolbar>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+ <constraints>
+ <constraint firstItem="8wd-E5-Owx" firstAttribute="bottom" secondItem="o22-1p-nvT" secondAttribute="top" constant="8" symbolic="YES" type="user" id="CHF-CI-6CL"/>
+ <constraint firstAttribute="trailing" secondItem="8wd-E5-Owx" secondAttribute="trailing" constant="20" symbolic="YES" type="user" id="WDw-jT-tbz"/>
+ <constraint firstItem="o22-1p-nvT" firstAttribute="leading" secondItem="JOS-rK-Hts" secondAttribute="leading" constant="20" symbolic="YES" type="user" id="Zvb-2h-v7A"/>
+ <constraint firstItem="o22-1p-nvT" firstAttribute="bottom" secondItem="JOS-rK-Hts" secondAttribute="bottom" constant="20" symbolic="YES" type="user" id="l3D-e3-Z7R"/>
+ <constraint firstItem="8wd-E5-Owx" firstAttribute="leading" secondItem="JOS-rK-Hts" secondAttribute="leading" constant="20" symbolic="YES" type="user" id="lwj-ty-IXl"/>
+ <constraint firstItem="o22-1p-nvT" firstAttribute="trailing" secondItem="JOS-rK-Hts" secondAttribute="trailing" constant="20" symbolic="YES" type="user" id="mL0-QH-ra6"/>
+ </constraints>
+ </view>
+ <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
+ <connections>
+ <outlet property="message_label" destination="8wd-E5-Owx" id="7Xw-cg-3hH"/>
+ <outlet property="pause_button" destination="bfY-YY-jiu" id="GBf-vm-mbR"/>
+ <outlet property="play_button" destination="6LZ-7a-xKf" id="Tk2-4w-9Px"/>
+ </connections>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="25z-hu-OZW" sceneMemberID="firstResponder"/>
+ </objects>
+ </scene>
+ </scenes>
+ <simulatedMetricsContainer key="defaultSimulatedMetrics">
+ <simulatedStatusBarMetrics key="statusBar"/>
+ <simulatedOrientationMetrics key="orientation"/>
+ <simulatedScreenMetrics key="destination" type="retina4"/>
+ </simulatedMetricsContainer>
+</document> \ No newline at end of file
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/gst_ios_init.c b/gst-sdk/tutorials/xcode iOS/Tutorial 3/gst_ios_init.c
new file mode 100644
index 0000000..cffa57e
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/gst_ios_init.c
@@ -0,0 +1,995 @@
+#include "gst_ios_init.h"
+
+#if defined(GST_IOS_PLUGIN_COREELEMENTS) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(coreelements);
+#endif
+#if defined(GST_IOS_PLUGIN_COREINDEXERS) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(coreindexers);
+#endif
+#if defined(GST_IOS_PLUGIN_ADDER) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(adder);
+#endif
+#if defined(GST_IOS_PLUGIN_APP) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(app);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIOCONVERT) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(audioconvert);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIORATE) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(audiorate);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIORESAMPLE) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(audioresample);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIOTESTSRC) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(audiotestsrc);
+#endif
+#if defined(GST_IOS_PLUGIN_FFMPEGCOLORSPACE) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(ffmpegcolorspace);
+#endif
+#if defined(GST_IOS_PLUGIN_GDP) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(gdp);
+#endif
+#if defined(GST_IOS_PLUGIN_GIO) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(gio);
+#endif
+#if defined(GST_IOS_PLUGIN_PANGO) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(pango);
+#endif
+#if defined(GST_IOS_PLUGIN_TYPEFINDFUNCTIONS) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(typefindfunctions);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEORATE) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(videorate);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOSCALE) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(videoscale);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOTESTSRC) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(videotestsrc);
+#endif
+#if defined(GST_IOS_PLUGIN_VOLUME) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(volume);
+#endif
+#if defined(GST_IOS_PLUGIN_AUTODETECT) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(autodetect);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOFILTER) || defined(GST_IOS_PLUGINS_CORE)
+GST_PLUGIN_STATIC_DECLARE(videofilter);
+#endif
+#if defined(GST_IOS_PLUGIN_CAMERABIN2) || defined(GST_IOS_PLUGINS_CAPTURE)
+GST_PLUGIN_STATIC_DECLARE(camerabin2);
+#endif
+#if defined(GST_IOS_PLUGIN_ASFMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(asfmux);
+#endif
+#if defined(GST_IOS_PLUGIN_DTSDEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(dtsdec);
+#endif
+#if defined(GST_IOS_PLUGIN_FAAD) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(faad);
+#endif
+#if defined(GST_IOS_PLUGIN_MPEGDEMUX2) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(mpegdemux2);
+#endif
+#if defined(GST_IOS_PLUGIN_MPEGPSMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(mpegpsmux);
+#endif
+#if defined(GST_IOS_PLUGIN_MPEGTSDEMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(mpegtsdemux);
+#endif
+#if defined(GST_IOS_PLUGIN_MPEGTSMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(mpegtsmux);
+#endif
+#if defined(GST_IOS_PLUGIN_A52DEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(a52dec);
+#endif
+#if defined(GST_IOS_PLUGIN_AMRNB) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(amrnb);
+#endif
+#if defined(GST_IOS_PLUGIN_AMRWBDEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(amrwbdec);
+#endif
+#if defined(GST_IOS_PLUGIN_ASF) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(asf);
+#endif
+#if defined(GST_IOS_PLUGIN_MAD) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(mad);
+#endif
+#if defined(GST_IOS_PLUGIN_MPEG2DEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(mpeg2dec);
+#endif
+#if defined(GST_IOS_PLUGIN_MPEGAUDIOPARSE) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(mpegaudioparse);
+#endif
+#if defined(GST_IOS_PLUGIN_REALMEDIA) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(realmedia);
+#endif
+#if defined(GST_IOS_PLUGIN_X264) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(x264);
+#endif
+#if defined(GST_IOS_PLUGIN_FFMPEG) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(ffmpeg);
+#endif
+#if defined(GST_IOS_PLUGIN_ENCODING) || defined(GST_IOS_PLUGINS_ENCODING)
+GST_PLUGIN_STATIC_DECLARE(encoding);
+#endif
+#if defined(GST_IOS_PLUGIN_INDVD) || defined(GST_IOS_PLUGINS_DVD)
+GST_PLUGIN_STATIC_DECLARE(indvd);
+#endif
+#if defined(GST_IOS_PLUGIN_DVDLPCMDEC) || defined(GST_IOS_PLUGINS_DVD)
+GST_PLUGIN_STATIC_DECLARE(dvdlpcmdec);
+#endif
+#if defined(GST_IOS_PLUGIN_DVDREAD) || defined(GST_IOS_PLUGINS_DVD)
+GST_PLUGIN_STATIC_DECLARE(dvdread);
+#endif
+#if defined(GST_IOS_PLUGIN_ASSRENDER) || defined(GST_IOS_PLUGINS_CODECS_GPL)
+GST_PLUGIN_STATIC_DECLARE(assrender);
+#endif
+#if defined(GST_IOS_PLUGIN_MMS) || defined(GST_IOS_PLUGINS_NET_RESTRICTED)
+GST_PLUGIN_STATIC_DECLARE(mms);
+#endif
+#if defined(GST_IOS_PLUGIN_OSXAUDIO) || defined(GST_IOS_PLUGINS_SYS)
+GST_PLUGIN_STATIC_DECLARE(osxaudio);
+#endif
+#if defined(GST_IOS_PLUGIN_EGLGLESSINK) || defined(GST_IOS_PLUGINS_SYS)
+GST_PLUGIN_STATIC_DECLARE(eglglessink);
+#endif
+#if defined(GST_IOS_PLUGIN_APPLEMEDIA_NONPUBLIC) || defined(GST_IOS_PLUGINS_SYS)
+GST_PLUGIN_STATIC_DECLARE(applemedia_nonpublic);
+#endif
+#if defined(GST_IOS_PLUGIN_LIBVISUAL) || defined(GST_IOS_PLUGINS_VIS)
+GST_PLUGIN_STATIC_DECLARE(libvisual);
+#endif
+#if defined(GST_IOS_PLUGIN_GOOM) || defined(GST_IOS_PLUGINS_VIS)
+GST_PLUGIN_STATIC_DECLARE(goom);
+#endif
+#if defined(GST_IOS_PLUGIN_GOOM2K1) || defined(GST_IOS_PLUGINS_VIS)
+GST_PLUGIN_STATIC_DECLARE(goom2k1);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIOVISUALIZERS) || defined(GST_IOS_PLUGINS_VIS)
+GST_PLUGIN_STATIC_DECLARE(audiovisualizers);
+#endif
+#if defined(GST_IOS_PLUGIN_URIDECODEBIN) || defined(GST_IOS_PLUGINS_PLAYBACK)
+GST_PLUGIN_STATIC_DECLARE(uridecodebin);
+#endif
+#if defined(GST_IOS_PLUGIN_PLAYBACK) || defined(GST_IOS_PLUGINS_PLAYBACK)
+GST_PLUGIN_STATIC_DECLARE(playback);
+#endif
+#if defined(GST_IOS_PLUGIN_ALPHA) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(alpha);
+#endif
+#if defined(GST_IOS_PLUGIN_ALPHACOLOR) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(alphacolor);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIOFX) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(audiofx);
+#endif
+#if defined(GST_IOS_PLUGIN_CAIRO) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(cairo);
+#endif
+#if defined(GST_IOS_PLUGIN_CUTTER) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(cutter);
+#endif
+#if defined(GST_IOS_PLUGIN_DEBUG) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(debug);
+#endif
+#if defined(GST_IOS_PLUGIN_DEINTERLACE) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(deinterlace);
+#endif
+#if defined(GST_IOS_PLUGIN_EFFECTV) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(effectv);
+#endif
+#if defined(GST_IOS_PLUGIN_EQUALIZER) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(equalizer);
+#endif
+#if defined(GST_IOS_PLUGIN_GDKPIXBUF) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(gdkpixbuf);
+#endif
+#if defined(GST_IOS_PLUGIN_IMAGEFREEZE) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(imagefreeze);
+#endif
+#if defined(GST_IOS_PLUGIN_INTERLEAVE) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(interleave);
+#endif
+#if defined(GST_IOS_PLUGIN_LEVEL) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(level);
+#endif
+#if defined(GST_IOS_PLUGIN_MULTIFILE) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(multifile);
+#endif
+#if defined(GST_IOS_PLUGIN_REPLAYGAIN) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(replaygain);
+#endif
+#if defined(GST_IOS_PLUGIN_SHAPEWIPE) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(shapewipe);
+#endif
+#if defined(GST_IOS_PLUGIN_SMPTE) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(smpte);
+#endif
+#if defined(GST_IOS_PLUGIN_SPECTRUM) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(spectrum);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOBOX) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(videobox);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOCROP) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(videocrop);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOMIXER) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(videomixer);
+#endif
+#if defined(GST_IOS_PLUGIN_AUTOCONVERT) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(autoconvert);
+#endif
+#if defined(GST_IOS_PLUGIN_BAYER) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(bayer);
+#endif
+#if defined(GST_IOS_PLUGIN_COLOREFFECTS) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(coloreffects);
+#endif
+#if defined(GST_IOS_PLUGIN_FACEOVERLAY) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(faceoverlay);
+#endif
+#if defined(GST_IOS_PLUGIN_FIELDANALYSIS) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(fieldanalysis);
+#endif
+#if defined(GST_IOS_PLUGIN_FREEVERB) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(freeverb);
+#endif
+#if defined(GST_IOS_PLUGIN_FREI0R) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(frei0r);
+#endif
+#if defined(GST_IOS_PLUGIN_GAUDIEFFECTS) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(gaudieffects);
+#endif
+#if defined(GST_IOS_PLUGIN_GEOMETRICTRANSFORM) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(geometrictransform);
+#endif
+#if defined(GST_IOS_PLUGIN_INTERLACE) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(interlace);
+#endif
+#if defined(GST_IOS_PLUGIN_JP2KDECIMATOR) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(jp2kdecimator);
+#endif
+#if defined(GST_IOS_PLUGIN_LIVEADDER) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(liveadder);
+#endif
+#if defined(GST_IOS_PLUGIN_RAWPARSE) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(rawparse);
+#endif
+#if defined(GST_IOS_PLUGIN_REMOVESILENCE) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(removesilence);
+#endif
+#if defined(GST_IOS_PLUGIN_SCALETEMPO) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(scaletempo);
+#endif
+#if defined(GST_IOS_PLUGIN_SEGMENTCLIP) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(segmentclip);
+#endif
+#if defined(GST_IOS_PLUGIN_SMOOTH) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(smooth);
+#endif
+#if defined(GST_IOS_PLUGIN_SOUNDTOUCH) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(soundtouch);
+#endif
+#if defined(GST_IOS_PLUGIN_SPEED) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(speed);
+#endif
+#if defined(GST_IOS_PLUGIN_STEREO) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(stereo);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOFILTERSBAD) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(videofiltersbad);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOMEASURE) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(videomeasure);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOSIGNAL) || defined(GST_IOS_PLUGINS_EFFECTS)
+GST_PLUGIN_STATIC_DECLARE(videosignal);
+#endif
+#if defined(GST_IOS_PLUGIN_SUBPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(subparse);
+#endif
+#if defined(GST_IOS_PLUGIN_OGG) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(ogg);
+#endif
+#if defined(GST_IOS_PLUGIN_THEORA) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(theora);
+#endif
+#if defined(GST_IOS_PLUGIN_VORBIS) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(vorbis);
+#endif
+#if defined(GST_IOS_PLUGIN_IVORBISDEC) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(ivorbisdec);
+#endif
+#if defined(GST_IOS_PLUGIN_ALAW) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(alaw);
+#endif
+#if defined(GST_IOS_PLUGIN_ANNODEX) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(annodex);
+#endif
+#if defined(GST_IOS_PLUGIN_APETAG) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(apetag);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIOPARSERS) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(audioparsers);
+#endif
+#if defined(GST_IOS_PLUGIN_AUPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(auparse);
+#endif
+#if defined(GST_IOS_PLUGIN_AVI) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(avi);
+#endif
+#if defined(GST_IOS_PLUGIN_DV) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(dv);
+#endif
+#if defined(GST_IOS_PLUGIN_FLAC) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(flac);
+#endif
+#if defined(GST_IOS_PLUGIN_FLV) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(flv);
+#endif
+#if defined(GST_IOS_PLUGIN_FLXDEC) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(flxdec);
+#endif
+#if defined(GST_IOS_PLUGIN_ICYDEMUX) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(icydemux);
+#endif
+#if defined(GST_IOS_PLUGIN_ID3DEMUX) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(id3demux);
+#endif
+#if defined(GST_IOS_PLUGIN_ISOMP4) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(isomp4);
+#endif
+#if defined(GST_IOS_PLUGIN_JPEG) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(jpeg);
+#endif
+#if defined(GST_IOS_PLUGIN_MATROSKA) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(matroska);
+#endif
+#if defined(GST_IOS_PLUGIN_MULAW) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(mulaw);
+#endif
+#if defined(GST_IOS_PLUGIN_MULTIPART) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(multipart);
+#endif
+#if defined(GST_IOS_PLUGIN_PNG) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(png);
+#endif
+#if defined(GST_IOS_PLUGIN_SPEEX) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(speex);
+#endif
+#if defined(GST_IOS_PLUGIN_TAGLIB) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(taglib);
+#endif
+#if defined(GST_IOS_PLUGIN_WAVENC) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(wavenc);
+#endif
+#if defined(GST_IOS_PLUGIN_WAVPACK) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(wavpack);
+#endif
+#if defined(GST_IOS_PLUGIN_WAVPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(wavparse);
+#endif
+#if defined(GST_IOS_PLUGIN_Y4MENC) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(y4menc);
+#endif
+#if defined(GST_IOS_PLUGIN_ADPCMDEC) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(adpcmdec);
+#endif
+#if defined(GST_IOS_PLUGIN_ADPCMENC) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(adpcmenc);
+#endif
+#if defined(GST_IOS_PLUGIN_AIFF) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(aiff);
+#endif
+#if defined(GST_IOS_PLUGIN_CDXAPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(cdxaparse);
+#endif
+#if defined(GST_IOS_PLUGIN_DCCP) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(dccp);
+#endif
+#if defined(GST_IOS_PLUGIN_DTMF) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(dtmf);
+#endif
+#if defined(GST_IOS_PLUGIN_DVBSUBOVERLAY) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(dvbsuboverlay);
+#endif
+#if defined(GST_IOS_PLUGIN_DVDSPU) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(dvdspu);
+#endif
+#if defined(GST_IOS_PLUGIN_FRAGMENTED) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(fragmented);
+#endif
+#if defined(GST_IOS_PLUGIN_HDVPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(hdvparse);
+#endif
+#if defined(GST_IOS_PLUGIN_ID3TAG) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(id3tag);
+#endif
+#if defined(GST_IOS_PLUGIN_IVFPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(ivfparse);
+#endif
+#if defined(GST_IOS_PLUGIN_JP2K) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(jp2k);
+#endif
+#if defined(GST_IOS_PLUGIN_KATE) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(kate);
+#endif
+#if defined(GST_IOS_PLUGIN_MVE) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(mve);
+#endif
+#if defined(GST_IOS_PLUGIN_MXF) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(mxf);
+#endif
+#if defined(GST_IOS_PLUGIN_NSF) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(nsf);
+#endif
+#if defined(GST_IOS_PLUGIN_NUVDEMUX) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(nuvdemux);
+#endif
+#if defined(GST_IOS_PLUGIN_OPUS) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(opus);
+#endif
+#if defined(GST_IOS_PLUGIN_PCAPPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(pcapparse);
+#endif
+#if defined(GST_IOS_PLUGIN_PNM) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(pnm);
+#endif
+#if defined(GST_IOS_PLUGIN_SCHRO) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(schro);
+#endif
+#if defined(GST_IOS_PLUGIN_GSTSIREN) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(gstsiren);
+#endif
+#if defined(GST_IOS_PLUGIN_SUBENC) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(subenc);
+#endif
+#if defined(GST_IOS_PLUGIN_TTA) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(tta);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOPARSERSBAD) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(videoparsersbad);
+#endif
+#if defined(GST_IOS_PLUGIN_VMNC) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(vmnc);
+#endif
+#if defined(GST_IOS_PLUGIN_VP8) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(vp8);
+#endif
+#if defined(GST_IOS_PLUGIN_Y4MDEC) || defined(GST_IOS_PLUGINS_CODECS)
+GST_PLUGIN_STATIC_DECLARE(y4mdec);
+#endif
+#if defined(GST_IOS_PLUGIN_TCP) || defined(GST_IOS_PLUGINS_NET)
+GST_PLUGIN_STATIC_DECLARE(tcp);
+#endif
+#if defined(GST_IOS_PLUGIN_RTSP) || defined(GST_IOS_PLUGINS_NET)
+GST_PLUGIN_STATIC_DECLARE(rtsp);
+#endif
+#if defined(GST_IOS_PLUGIN_RTP) || defined(GST_IOS_PLUGINS_NET)
+GST_PLUGIN_STATIC_DECLARE(rtp);
+#endif
+#if defined(GST_IOS_PLUGIN_GSTRTPMANAGER) || defined(GST_IOS_PLUGINS_NET)
+GST_PLUGIN_STATIC_DECLARE(gstrtpmanager);
+#endif
+#if defined(GST_IOS_PLUGIN_SOUP) || defined(GST_IOS_PLUGINS_NET)
+GST_PLUGIN_STATIC_DECLARE(soup);
+#endif
+#if defined(GST_IOS_PLUGIN_UDP) || defined(GST_IOS_PLUGINS_NET)
+GST_PLUGIN_STATIC_DECLARE(udp);
+#endif
+#if defined(GST_IOS_PLUGIN_DATAURISRC) || defined(GST_IOS_PLUGINS_NET)
+GST_PLUGIN_STATIC_DECLARE(dataurisrc);
+#endif
+#if defined(GST_IOS_PLUGIN_RTPMUX) || defined(GST_IOS_PLUGINS_NET)
+GST_PLUGIN_STATIC_DECLARE(rtpmux);
+#endif
+#if defined(GST_IOS_PLUGIN_RTPVP8) || defined(GST_IOS_PLUGINS_NET)
+GST_PLUGIN_STATIC_DECLARE(rtpvp8);
+#endif
+#if defined(GST_IOS_PLUGIN_SDP) || defined(GST_IOS_PLUGINS_NET)
+GST_PLUGIN_STATIC_DECLARE(sdp);
+#endif
+
+void
+gst_ios_init (void)
+{
+ gst_init (NULL, NULL);
+ gst_debug_set_colored(FALSE);
+ gst_debug_set_default_threshold(GST_LEVEL_WARNING);
+
+#if defined(GST_IOS_PLUGIN_COREELEMENTS) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(coreelements);
+#endif
+#if defined(GST_IOS_PLUGIN_COREINDEXERS) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(coreindexers);
+#endif
+#if defined(GST_IOS_PLUGIN_ADDER) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(adder);
+#endif
+#if defined(GST_IOS_PLUGIN_APP) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(app);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIOCONVERT) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(audioconvert);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIORATE) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(audiorate);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIORESAMPLE) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(audioresample);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIOTESTSRC) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(audiotestsrc);
+#endif
+#if defined(GST_IOS_PLUGIN_FFMPEGCOLORSPACE) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(ffmpegcolorspace);
+#endif
+#if defined(GST_IOS_PLUGIN_GDP) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(gdp);
+#endif
+#if defined(GST_IOS_PLUGIN_GIO) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(gio);
+#endif
+#if defined(GST_IOS_PLUGIN_PANGO) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(pango);
+#endif
+#if defined(GST_IOS_PLUGIN_TYPEFINDFUNCTIONS) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(typefindfunctions);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEORATE) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(videorate);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOSCALE) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(videoscale);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOTESTSRC) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(videotestsrc);
+#endif
+#if defined(GST_IOS_PLUGIN_VOLUME) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(volume);
+#endif
+#if defined(GST_IOS_PLUGIN_AUTODETECT) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(autodetect);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOFILTER) || defined(GST_IOS_PLUGINS_CORE)
+ GST_PLUGIN_STATIC_REGISTER(videofilter);
+#endif
+#if defined(GST_IOS_PLUGIN_CAMERABIN2) || defined(GST_IOS_PLUGINS_CAPTURE)
+ GST_PLUGIN_STATIC_REGISTER(camerabin2);
+#endif
+#if defined(GST_IOS_PLUGIN_ASFMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(asfmux);
+#endif
+#if defined(GST_IOS_PLUGIN_DTSDEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(dtsdec);
+#endif
+#if defined(GST_IOS_PLUGIN_FAAD) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(faad);
+#endif
+#if defined(GST_IOS_PLUGIN_MPEGDEMUX2) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(mpegdemux2);
+#endif
+#if defined(GST_IOS_PLUGIN_MPEGPSMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(mpegpsmux);
+#endif
+#if defined(GST_IOS_PLUGIN_MPEGTSDEMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(mpegtsdemux);
+#endif
+#if defined(GST_IOS_PLUGIN_MPEGTSMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(mpegtsmux);
+#endif
+#if defined(GST_IOS_PLUGIN_A52DEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(a52dec);
+#endif
+#if defined(GST_IOS_PLUGIN_AMRNB) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(amrnb);
+#endif
+#if defined(GST_IOS_PLUGIN_AMRWBDEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(amrwbdec);
+#endif
+#if defined(GST_IOS_PLUGIN_ASF) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(asf);
+#endif
+#if defined(GST_IOS_PLUGIN_MAD) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(mad);
+#endif
+#if defined(GST_IOS_PLUGIN_MPEG2DEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(mpeg2dec);
+#endif
+#if defined(GST_IOS_PLUGIN_MPEGAUDIOPARSE) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(mpegaudioparse);
+#endif
+#if defined(GST_IOS_PLUGIN_REALMEDIA) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(realmedia);
+#endif
+#if defined(GST_IOS_PLUGIN_X264) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(x264);
+#endif
+#if defined(GST_IOS_PLUGIN_FFMPEG) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(ffmpeg);
+#endif
+#if defined(GST_IOS_PLUGIN_ENCODING) || defined(GST_IOS_PLUGINS_ENCODING)
+ GST_PLUGIN_STATIC_REGISTER(encoding);
+#endif
+#if defined(GST_IOS_PLUGIN_INDVD) || defined(GST_IOS_PLUGINS_DVD)
+ GST_PLUGIN_STATIC_REGISTER(indvd);
+#endif
+#if defined(GST_IOS_PLUGIN_DVDLPCMDEC) || defined(GST_IOS_PLUGINS_DVD)
+ GST_PLUGIN_STATIC_REGISTER(dvdlpcmdec);
+#endif
+#if defined(GST_IOS_PLUGIN_DVDREAD) || defined(GST_IOS_PLUGINS_DVD)
+ GST_PLUGIN_STATIC_REGISTER(dvdread);
+#endif
+#if defined(GST_IOS_PLUGIN_ASSRENDER) || defined(GST_IOS_PLUGINS_CODECS_GPL)
+ GST_PLUGIN_STATIC_REGISTER(assrender);
+#endif
+#if defined(GST_IOS_PLUGIN_MMS) || defined(GST_IOS_PLUGINS_NET_RESTRICTED)
+ GST_PLUGIN_STATIC_REGISTER(mms);
+#endif
+#if defined(GST_IOS_PLUGIN_OSXAUDIO) || defined(GST_IOS_PLUGINS_SYS)
+ GST_PLUGIN_STATIC_REGISTER(osxaudio);
+#endif
+#if defined(GST_IOS_PLUGIN_EGLGLESSINK) || defined(GST_IOS_PLUGINS_SYS)
+ GST_PLUGIN_STATIC_REGISTER(eglglessink);
+#endif
+#if defined(GST_IOS_PLUGIN_APPLEMEDIA_NONPUBLIC) || defined(GST_IOS_PLUGINS_SYS)
+ GST_PLUGIN_STATIC_REGISTER(applemedia_nonpublic);
+#endif
+#if defined(GST_IOS_PLUGIN_LIBVISUAL) || defined(GST_IOS_PLUGINS_VIS)
+ GST_PLUGIN_STATIC_REGISTER(libvisual);
+#endif
+#if defined(GST_IOS_PLUGIN_GOOM) || defined(GST_IOS_PLUGINS_VIS)
+ GST_PLUGIN_STATIC_REGISTER(goom);
+#endif
+#if defined(GST_IOS_PLUGIN_GOOM2K1) || defined(GST_IOS_PLUGINS_VIS)
+ GST_PLUGIN_STATIC_REGISTER(goom2k1);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIOVISUALIZERS) || defined(GST_IOS_PLUGINS_VIS)
+ GST_PLUGIN_STATIC_REGISTER(audiovisualizers);
+#endif
+#if defined(GST_IOS_PLUGIN_URIDECODEBIN) || defined(GST_IOS_PLUGINS_PLAYBACK)
+ GST_PLUGIN_STATIC_REGISTER(uridecodebin);
+#endif
+#if defined(GST_IOS_PLUGIN_PLAYBACK) || defined(GST_IOS_PLUGINS_PLAYBACK)
+ GST_PLUGIN_STATIC_REGISTER(playback);
+#endif
+#if defined(GST_IOS_PLUGIN_ALPHA) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(alpha);
+#endif
+#if defined(GST_IOS_PLUGIN_ALPHACOLOR) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(alphacolor);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIOFX) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(audiofx);
+#endif
+#if defined(GST_IOS_PLUGIN_CAIRO) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(cairo);
+#endif
+#if defined(GST_IOS_PLUGIN_CUTTER) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(cutter);
+#endif
+#if defined(GST_IOS_PLUGIN_DEBUG) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(debug);
+#endif
+#if defined(GST_IOS_PLUGIN_DEINTERLACE) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(deinterlace);
+#endif
+#if defined(GST_IOS_PLUGIN_EFFECTV) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(effectv);
+#endif
+#if defined(GST_IOS_PLUGIN_EQUALIZER) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(equalizer);
+#endif
+#if defined(GST_IOS_PLUGIN_GDKPIXBUF) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(gdkpixbuf);
+#endif
+#if defined(GST_IOS_PLUGIN_IMAGEFREEZE) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(imagefreeze);
+#endif
+#if defined(GST_IOS_PLUGIN_INTERLEAVE) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(interleave);
+#endif
+#if defined(GST_IOS_PLUGIN_LEVEL) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(level);
+#endif
+#if defined(GST_IOS_PLUGIN_MULTIFILE) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(multifile);
+#endif
+#if defined(GST_IOS_PLUGIN_REPLAYGAIN) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(replaygain);
+#endif
+#if defined(GST_IOS_PLUGIN_SHAPEWIPE) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(shapewipe);
+#endif
+#if defined(GST_IOS_PLUGIN_SMPTE) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(smpte);
+#endif
+#if defined(GST_IOS_PLUGIN_SPECTRUM) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(spectrum);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOBOX) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(videobox);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOCROP) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(videocrop);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOMIXER) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(videomixer);
+#endif
+#if defined(GST_IOS_PLUGIN_AUTOCONVERT) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(autoconvert);
+#endif
+#if defined(GST_IOS_PLUGIN_BAYER) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(bayer);
+#endif
+#if defined(GST_IOS_PLUGIN_COLOREFFECTS) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(coloreffects);
+#endif
+#if defined(GST_IOS_PLUGIN_FACEOVERLAY) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(faceoverlay);
+#endif
+#if defined(GST_IOS_PLUGIN_FIELDANALYSIS) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(fieldanalysis);
+#endif
+#if defined(GST_IOS_PLUGIN_FREEVERB) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(freeverb);
+#endif
+#if defined(GST_IOS_PLUGIN_FREI0R) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(frei0r);
+#endif
+#if defined(GST_IOS_PLUGIN_GAUDIEFFECTS) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(gaudieffects);
+#endif
+#if defined(GST_IOS_PLUGIN_GEOMETRICTRANSFORM) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(geometrictransform);
+#endif
+#if defined(GST_IOS_PLUGIN_INTERLACE) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(interlace);
+#endif
+#if defined(GST_IOS_PLUGIN_JP2KDECIMATOR) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(jp2kdecimator);
+#endif
+#if defined(GST_IOS_PLUGIN_LIVEADDER) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(liveadder);
+#endif
+#if defined(GST_IOS_PLUGIN_RAWPARSE) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(rawparse);
+#endif
+#if defined(GST_IOS_PLUGIN_REMOVESILENCE) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(removesilence);
+#endif
+#if defined(GST_IOS_PLUGIN_SCALETEMPO) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(scaletempo);
+#endif
+#if defined(GST_IOS_PLUGIN_SEGMENTCLIP) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(segmentclip);
+#endif
+#if defined(GST_IOS_PLUGIN_SMOOTH) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(smooth);
+#endif
+#if defined(GST_IOS_PLUGIN_SOUNDTOUCH) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(soundtouch);
+#endif
+#if defined(GST_IOS_PLUGIN_SPEED) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(speed);
+#endif
+#if defined(GST_IOS_PLUGIN_STEREO) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(stereo);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOFILTERSBAD) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(videofiltersbad);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOMEASURE) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(videomeasure);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOSIGNAL) || defined(GST_IOS_PLUGINS_EFFECTS)
+ GST_PLUGIN_STATIC_REGISTER(videosignal);
+#endif
+#if defined(GST_IOS_PLUGIN_SUBPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(subparse);
+#endif
+#if defined(GST_IOS_PLUGIN_OGG) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(ogg);
+#endif
+#if defined(GST_IOS_PLUGIN_THEORA) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(theora);
+#endif
+#if defined(GST_IOS_PLUGIN_VORBIS) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(vorbis);
+#endif
+#if defined(GST_IOS_PLUGIN_IVORBISDEC) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(ivorbisdec);
+#endif
+#if defined(GST_IOS_PLUGIN_ALAW) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(alaw);
+#endif
+#if defined(GST_IOS_PLUGIN_ANNODEX) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(annodex);
+#endif
+#if defined(GST_IOS_PLUGIN_APETAG) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(apetag);
+#endif
+#if defined(GST_IOS_PLUGIN_AUDIOPARSERS) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(audioparsers);
+#endif
+#if defined(GST_IOS_PLUGIN_AUPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(auparse);
+#endif
+#if defined(GST_IOS_PLUGIN_AVI) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(avi);
+#endif
+#if defined(GST_IOS_PLUGIN_DV) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(dv);
+#endif
+#if defined(GST_IOS_PLUGIN_FLAC) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(flac);
+#endif
+#if defined(GST_IOS_PLUGIN_FLV) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(flv);
+#endif
+#if defined(GST_IOS_PLUGIN_FLXDEC) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(flxdec);
+#endif
+#if defined(GST_IOS_PLUGIN_ICYDEMUX) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(icydemux);
+#endif
+#if defined(GST_IOS_PLUGIN_ID3DEMUX) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(id3demux);
+#endif
+#if defined(GST_IOS_PLUGIN_ISOMP4) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(isomp4);
+#endif
+#if defined(GST_IOS_PLUGIN_JPEG) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(jpeg);
+#endif
+#if defined(GST_IOS_PLUGIN_MATROSKA) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(matroska);
+#endif
+#if defined(GST_IOS_PLUGIN_MULAW) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(mulaw);
+#endif
+#if defined(GST_IOS_PLUGIN_MULTIPART) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(multipart);
+#endif
+#if defined(GST_IOS_PLUGIN_PNG) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(png);
+#endif
+#if defined(GST_IOS_PLUGIN_SPEEX) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(speex);
+#endif
+#if defined(GST_IOS_PLUGIN_TAGLIB) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(taglib);
+#endif
+#if defined(GST_IOS_PLUGIN_WAVENC) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(wavenc);
+#endif
+#if defined(GST_IOS_PLUGIN_WAVPACK) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(wavpack);
+#endif
+#if defined(GST_IOS_PLUGIN_WAVPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(wavparse);
+#endif
+#if defined(GST_IOS_PLUGIN_Y4MENC) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(y4menc);
+#endif
+#if defined(GST_IOS_PLUGIN_ADPCMDEC) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(adpcmdec);
+#endif
+#if defined(GST_IOS_PLUGIN_ADPCMENC) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(adpcmenc);
+#endif
+#if defined(GST_IOS_PLUGIN_AIFF) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(aiff);
+#endif
+#if defined(GST_IOS_PLUGIN_CDXAPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(cdxaparse);
+#endif
+#if defined(GST_IOS_PLUGIN_DCCP) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(dccp);
+#endif
+#if defined(GST_IOS_PLUGIN_DTMF) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(dtmf);
+#endif
+#if defined(GST_IOS_PLUGIN_DVBSUBOVERLAY) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(dvbsuboverlay);
+#endif
+#if defined(GST_IOS_PLUGIN_DVDSPU) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(dvdspu);
+#endif
+#if defined(GST_IOS_PLUGIN_FRAGMENTED) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(fragmented);
+#endif
+#if defined(GST_IOS_PLUGIN_HDVPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(hdvparse);
+#endif
+#if defined(GST_IOS_PLUGIN_ID3TAG) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(id3tag);
+#endif
+#if defined(GST_IOS_PLUGIN_IVFPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(ivfparse);
+#endif
+#if defined(GST_IOS_PLUGIN_JP2K) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(jp2k);
+#endif
+#if defined(GST_IOS_PLUGIN_KATE) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(kate);
+#endif
+#if defined(GST_IOS_PLUGIN_MVE) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(mve);
+#endif
+#if defined(GST_IOS_PLUGIN_MXF) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(mxf);
+#endif
+#if defined(GST_IOS_PLUGIN_NSF) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(nsf);
+#endif
+#if defined(GST_IOS_PLUGIN_NUVDEMUX) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(nuvdemux);
+#endif
+#if defined(GST_IOS_PLUGIN_OPUS) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(opus);
+#endif
+#if defined(GST_IOS_PLUGIN_PCAPPARSE) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(pcapparse);
+#endif
+#if defined(GST_IOS_PLUGIN_PNM) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(pnm);
+#endif
+#if defined(GST_IOS_PLUGIN_SCHRO) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(schro);
+#endif
+#if defined(GST_IOS_PLUGIN_GSTSIREN) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(gstsiren);
+#endif
+#if defined(GST_IOS_PLUGIN_SUBENC) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(subenc);
+#endif
+#if defined(GST_IOS_PLUGIN_TTA) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(tta);
+#endif
+#if defined(GST_IOS_PLUGIN_VIDEOPARSERSBAD) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(videoparsersbad);
+#endif
+#if defined(GST_IOS_PLUGIN_VMNC) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(vmnc);
+#endif
+#if defined(GST_IOS_PLUGIN_VP8) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(vp8);
+#endif
+#if defined(GST_IOS_PLUGIN_Y4MDEC) || defined(GST_IOS_PLUGINS_CODECS)
+ GST_PLUGIN_STATIC_REGISTER(y4mdec);
+#endif
+#if defined(GST_IOS_PLUGIN_TCP) || defined(GST_IOS_PLUGINS_NET)
+ GST_PLUGIN_STATIC_REGISTER(tcp);
+#endif
+#if defined(GST_IOS_PLUGIN_RTSP) || defined(GST_IOS_PLUGINS_NET)
+ GST_PLUGIN_STATIC_REGISTER(rtsp);
+#endif
+#if defined(GST_IOS_PLUGIN_RTP) || defined(GST_IOS_PLUGINS_NET)
+ GST_PLUGIN_STATIC_REGISTER(rtp);
+#endif
+#if defined(GST_IOS_PLUGIN_GSTRTPMANAGER) || defined(GST_IOS_PLUGINS_NET)
+ GST_PLUGIN_STATIC_REGISTER(gstrtpmanager);
+#endif
+#if defined(GST_IOS_PLUGIN_SOUP) || defined(GST_IOS_PLUGINS_NET)
+ GST_PLUGIN_STATIC_REGISTER(soup);
+#endif
+#if defined(GST_IOS_PLUGIN_UDP) || defined(GST_IOS_PLUGINS_NET)
+ GST_PLUGIN_STATIC_REGISTER(udp);
+#endif
+#if defined(GST_IOS_PLUGIN_DATAURISRC) || defined(GST_IOS_PLUGINS_NET)
+ GST_PLUGIN_STATIC_REGISTER(dataurisrc);
+#endif
+#if defined(GST_IOS_PLUGIN_RTPMUX) || defined(GST_IOS_PLUGINS_NET)
+ GST_PLUGIN_STATIC_REGISTER(rtpmux);
+#endif
+#if defined(GST_IOS_PLUGIN_RTPVP8) || defined(GST_IOS_PLUGINS_NET)
+ GST_PLUGIN_STATIC_REGISTER(rtpvp8);
+#endif
+#if defined(GST_IOS_PLUGIN_SDP) || defined(GST_IOS_PLUGINS_NET)
+ GST_PLUGIN_STATIC_REGISTER(sdp);
+#endif
+}
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/gst_ios_init.h b/gst-sdk/tutorials/xcode iOS/Tutorial 3/gst_ios_init.h
new file mode 100644
index 0000000..7b8e013
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/gst_ios_init.h
@@ -0,0 +1,25 @@
+#ifndef __GST_IOS_INIT_H__
+#define __GST_IOS_INIT_H__
+
+#include <gst/gst.h>
+
+/* Uncomment each line to enable the plugin categories that your application needs.
+ * You can also enable individual plugins. See gst_ios_init.c to see their names
+ */
+#define GST_IOS_PLUGINS_CORE
+//#define GST_IOS_PLUGINS_CAPTURE
+//#define GST_IOS_PLUGINS_CODECS_RESTRICTED
+//#define GST_IOS_PLUGINS_ENCODING
+//#define GST_IOS_PLUGINS_DVD
+//#define GST_IOS_PLUGINS_CODECS_GPL
+//#define GST_IOS_PLUGINS_NET_RESTRICTED
+#define GST_IOS_PLUGINS_SYS
+//#define GST_IOS_PLUGINS_VIS
+#define GST_IOS_PLUGINS_PLAYBACK
+//#define GST_IOS_PLUGINS_EFFECTS
+//#define GST_IOS_PLUGINS_CODECS
+//#define GST_IOS_PLUGINS_NET
+
+void gst_ios_init ();
+
+#endif
diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 3/main.m b/gst-sdk/tutorials/xcode iOS/Tutorial 3/main.m
new file mode 100644
index 0000000..3ca3507
--- /dev/null
+++ b/gst-sdk/tutorials/xcode iOS/Tutorial 3/main.m
@@ -0,0 +1,13 @@
+
+#import <UIKit/UIKit.h>
+
+#import "AppDelegate.h"
+#include "gst_ios_init.h"
+
+int main(int argc, char *argv[])
+{
+ @autoreleasepool {
+ gst_ios_init();
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+ }
+}