From eae0b9b7fe6ce25836209c84126ea3f4b9756825 Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Mon, 29 Apr 2013 17:45:38 +0200 Subject: [PATCH 01/10] Initial import for iOS Tutorial 1 --- .../project.pbxproj | 404 +++++++ .../contents.xcworkspacedata | 7 + .../xcode iOS/Tutorial 1/AppDelegate.h | 51 + .../xcode iOS/Tutorial 1/AppDelegate.m | 82 ++ .../xcode iOS/Tutorial 1/Default-568h@2x.png | Bin 0 -> 18594 bytes .../xcode iOS/Tutorial 1/Default.png | Bin 0 -> 6540 bytes .../xcode iOS/Tutorial 1/Default@2x.png | Bin 0 -> 16107 bytes .../xcode iOS/Tutorial 1/GStreamerBackend.h | 51 + .../xcode iOS/Tutorial 1/GStreamerBackend.m | 61 ++ .../Tutorial 1/Tutorial 1-Info.plist | 49 + .../Tutorial 1/Tutorial 1-Prefix.pch | 14 + .../xcode iOS/Tutorial 1/ViewController.h | 53 + .../xcode iOS/Tutorial 1/ViewController.m | 73 ++ .../Tutorial 1/en.lproj/InfoPlist.strings | 2 + .../en.lproj/MainStoryboard_iPad.storyboard | 44 + .../en.lproj/MainStoryboard_iPhone.storyboard | 55 + .../xcode iOS/Tutorial 1/gst_ios_backend.c | 27 + .../xcode iOS/Tutorial 1/gst_ios_backend.h | 26 + .../xcode iOS/Tutorial 1/gst_ios_plugins.c | 994 ++++++++++++++++++ .../xcode iOS/Tutorial 1/gst_ios_plugins.h | 14 + gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m | 13 + 21 files changed, 2020 insertions(+) create mode 100644 gst-sdk/tutorials/xcode iOS/GStreamer iOS Tutorials.xcodeproj/project.pbxproj create mode 100644 gst-sdk/tutorials/xcode iOS/GStreamer iOS Tutorials.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.h create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.m create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/Default-568h@2x.png create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/Default.png create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/Default@2x.png create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.h create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/Tutorial 1-Info.plist create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/Tutorial 1-Prefix.pch create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.h create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.m create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/InfoPlist.strings create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPad.storyboard create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPhone.storyboard create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.c create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.h create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.c create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.h create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m 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 new file mode 100644 index 0000000000..c2faacf816 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/GStreamer iOS Tutorials.xcodeproj/project.pbxproj @@ -0,0 +1,404 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + C67B40CD172EBEA3008359CC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C67B40CC172EBEA3008359CC /* UIKit.framework */; }; + C67B40CF172EBEA3008359CC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C67B40CE172EBEA3008359CC /* Foundation.framework */; }; + C67B40D1172EBEA3008359CC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C67B40D0172EBEA3008359CC /* CoreGraphics.framework */; }; + C67B40D3172EBEA3008359CC /* GStreamer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C67B40D2172EBEA3008359CC /* GStreamer.framework */; }; + C67B40D9172EBEA3008359CC /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C67B40D7172EBEA3008359CC /* InfoPlist.strings */; }; + C67B40DB172EBEA3008359CC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B40DA172EBEA3008359CC /* main.m */; }; + C67B40DF172EBEA3008359CC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B40DE172EBEA3008359CC /* AppDelegate.m */; }; + C67B40E1172EBEA3008359CC /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B40E0172EBEA3008359CC /* Default.png */; }; + C67B40E3172EBEA3008359CC /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B40E2172EBEA3008359CC /* Default@2x.png */; }; + C67B40E5172EBEA3008359CC /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B40E4172EBEA3008359CC /* Default-568h@2x.png */; }; + C67B40E8172EBEA3008359CC /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C67B40E6172EBEA3008359CC /* MainStoryboard_iPhone.storyboard */; }; + C67B40EB172EBEA3008359CC /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C67B40E9172EBEA3008359CC /* MainStoryboard_iPad.storyboard */; }; + C67B40EE172EBEA3008359CC /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B40ED172EBEA3008359CC /* ViewController.m */; }; + C67B40F0172EBEA3008359CC /* gst_ios_backend.c in Sources */ = {isa = PBXBuildFile; fileRef = C67B40EF172EBEA3008359CC /* gst_ios_backend.c */; }; + C67B40F3172EBEA3008359CC /* gst_ios_plugins.c in Sources */ = {isa = PBXBuildFile; fileRef = C67B40F2172EBEA3008359CC /* gst_ios_plugins.c */; }; + C67B40FA172EC27D008359CC /* GStreamerBackend.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B40F9172EC27D008359CC /* GStreamerBackend.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + C67B40C9172EBEA3008359CC /* Tutorial 1.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Tutorial 1.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + C67B40CC172EBEA3008359CC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + C67B40CE172EBEA3008359CC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + C67B40D0172EBEA3008359CC /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; + C67B40D2172EBEA3008359CC /* GStreamer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GStreamer.framework; path = Library/Frameworks/GStreamer.framework; sourceTree = SDKROOT; }; + C67B40D6172EBEA3008359CC /* Tutorial 1-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tutorial 1-Info.plist"; sourceTree = ""; }; + C67B40D8172EBEA3008359CC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + C67B40DA172EBEA3008359CC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + C67B40DC172EBEA3008359CC /* Tutorial 1-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tutorial 1-Prefix.pch"; sourceTree = ""; }; + C67B40DD172EBEA3008359CC /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + C67B40DE172EBEA3008359CC /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + C67B40E0172EBEA3008359CC /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; + C67B40E2172EBEA3008359CC /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; + C67B40E4172EBEA3008359CC /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; + C67B40E7172EBEA3008359CC /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPhone.storyboard; sourceTree = ""; }; + C67B40EA172EBEA3008359CC /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPad.storyboard; sourceTree = ""; }; + C67B40EC172EBEA3008359CC /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + C67B40ED172EBEA3008359CC /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + C67B40EF172EBEA3008359CC /* gst_ios_backend.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gst_ios_backend.c; sourceTree = ""; }; + C67B40F1172EBEA3008359CC /* gst_ios_backend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gst_ios_backend.h; sourceTree = ""; }; + C67B40F2172EBEA3008359CC /* gst_ios_plugins.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gst_ios_plugins.c; sourceTree = ""; }; + C67B40F4172EBEA4008359CC /* gst_ios_plugins.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gst_ios_plugins.h; sourceTree = ""; }; + C67B40F8172EC27D008359CC /* GStreamerBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GStreamerBackend.h; sourceTree = ""; }; + C67B40F9172EC27D008359CC /* GStreamerBackend.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GStreamerBackend.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + C67B40C6172EBEA3008359CC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C67B40CD172EBEA3008359CC /* UIKit.framework in Frameworks */, + C67B40CF172EBEA3008359CC /* Foundation.framework in Frameworks */, + C67B40D1172EBEA3008359CC /* CoreGraphics.framework in Frameworks */, + C67B40D3172EBEA3008359CC /* GStreamer.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + C67B40BE172EBDF1008359CC = { + isa = PBXGroup; + children = ( + C67B40D4172EBEA3008359CC /* Tutorial 1 */, + C67B40CB172EBEA3008359CC /* Frameworks */, + C67B40CA172EBEA3008359CC /* Products */, + ); + sourceTree = ""; + }; + C67B40CA172EBEA3008359CC /* Products */ = { + isa = PBXGroup; + children = ( + C67B40C9172EBEA3008359CC /* Tutorial 1.app */, + ); + name = Products; + sourceTree = ""; + }; + C67B40CB172EBEA3008359CC /* Frameworks */ = { + isa = PBXGroup; + children = ( + C67B40CC172EBEA3008359CC /* UIKit.framework */, + C67B40CE172EBEA3008359CC /* Foundation.framework */, + C67B40D0172EBEA3008359CC /* CoreGraphics.framework */, + C67B40D2172EBEA3008359CC /* GStreamer.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + C67B40D4172EBEA3008359CC /* Tutorial 1 */ = { + isa = PBXGroup; + children = ( + C67B40F8172EC27D008359CC /* GStreamerBackend.h */, + C67B40F9172EC27D008359CC /* GStreamerBackend.m */, + C67B40DD172EBEA3008359CC /* AppDelegate.h */, + C67B40DE172EBEA3008359CC /* AppDelegate.m */, + C67B40E6172EBEA3008359CC /* MainStoryboard_iPhone.storyboard */, + C67B40E9172EBEA3008359CC /* MainStoryboard_iPad.storyboard */, + C67B40EC172EBEA3008359CC /* ViewController.h */, + C67B40ED172EBEA3008359CC /* ViewController.m */, + C67B40D5172EBEA3008359CC /* Supporting Files */, + ); + path = "Tutorial 1"; + sourceTree = SOURCE_ROOT; + }; + C67B40D5172EBEA3008359CC /* Supporting Files */ = { + isa = PBXGroup; + children = ( + C67B40D6172EBEA3008359CC /* Tutorial 1-Info.plist */, + C67B40D7172EBEA3008359CC /* InfoPlist.strings */, + C67B40DA172EBEA3008359CC /* main.m */, + C67B40DC172EBEA3008359CC /* Tutorial 1-Prefix.pch */, + C67B40E0172EBEA3008359CC /* Default.png */, + C67B40E2172EBEA3008359CC /* Default@2x.png */, + C67B40E4172EBEA3008359CC /* Default-568h@2x.png */, + C67B40EF172EBEA3008359CC /* gst_ios_backend.c */, + C67B40F1172EBEA3008359CC /* gst_ios_backend.h */, + C67B40F2172EBEA3008359CC /* gst_ios_plugins.c */, + C67B40F4172EBEA4008359CC /* gst_ios_plugins.h */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + C67B40C8172EBEA3008359CC /* Tutorial 1 */ = { + isa = PBXNativeTarget; + buildConfigurationList = C67B40F7172EBEA4008359CC /* Build configuration list for PBXNativeTarget "Tutorial 1" */; + buildPhases = ( + C67B40C5172EBEA3008359CC /* Sources */, + C67B40C6172EBEA3008359CC /* Frameworks */, + C67B40C7172EBEA3008359CC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Tutorial 1"; + productName = "Tutorial 1"; + productReference = C67B40C9172EBEA3008359CC /* Tutorial 1.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C67B40BF172EBDF1008359CC /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0460; + }; + buildConfigurationList = C67B40C2172EBDF1008359CC /* Build configuration list for PBXProject "GStreamer iOS Tutorials" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = C67B40BE172EBDF1008359CC; + productRefGroup = C67B40CA172EBEA3008359CC /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + C67B40C8172EBEA3008359CC /* Tutorial 1 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + C67B40C7172EBEA3008359CC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C67B40D9172EBEA3008359CC /* InfoPlist.strings in Resources */, + C67B40E1172EBEA3008359CC /* Default.png in Resources */, + C67B40E3172EBEA3008359CC /* Default@2x.png in Resources */, + C67B40E5172EBEA3008359CC /* Default-568h@2x.png in Resources */, + C67B40E8172EBEA3008359CC /* MainStoryboard_iPhone.storyboard in Resources */, + C67B40EB172EBEA3008359CC /* MainStoryboard_iPad.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + C67B40C5172EBEA3008359CC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C67B40DB172EBEA3008359CC /* main.m in Sources */, + C67B40DF172EBEA3008359CC /* AppDelegate.m in Sources */, + C67B40EE172EBEA3008359CC /* ViewController.m in Sources */, + C67B40F0172EBEA3008359CC /* gst_ios_backend.c in Sources */, + C67B40F3172EBEA3008359CC /* gst_ios_plugins.c in Sources */, + C67B40FA172EC27D008359CC /* GStreamerBackend.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + C67B40D7172EBEA3008359CC /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + C67B40D8172EBEA3008359CC /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + C67B40E6172EBEA3008359CC /* MainStoryboard_iPhone.storyboard */ = { + isa = PBXVariantGroup; + children = ( + C67B40E7172EBEA3008359CC /* en */, + ); + name = MainStoryboard_iPhone.storyboard; + sourceTree = ""; + }; + C67B40E9172EBEA3008359CC /* MainStoryboard_iPad.storyboard */ = { + isa = PBXVariantGroup; + children = ( + C67B40EA172EBEA3008359CC /* en */, + ); + name = MainStoryboard_iPad.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C67B40C3172EBDF1008359CC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Debug; + }; + C67B40C4172EBDF1008359CC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Release; + }; + C67B40F5172EBEA4008359CC /* 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 1/Tutorial 1-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 1/Tutorial 1-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; + }; + C67B40F6172EBEA4008359CC /* 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 1/Tutorial 1-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 1/Tutorial 1-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 */ + C67B40C2172EBDF1008359CC /* Build configuration list for PBXProject "GStreamer iOS Tutorials" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C67B40C3172EBDF1008359CC /* Debug */, + C67B40C4172EBDF1008359CC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C67B40F7172EBEA4008359CC /* Build configuration list for PBXNativeTarget "Tutorial 1" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C67B40F5172EBEA4008359CC /* Debug */, + C67B40F6172EBEA4008359CC /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = C67B40BF172EBDF1008359CC /* Project object */; +} diff --git a/gst-sdk/tutorials/xcode iOS/GStreamer iOS Tutorials.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/gst-sdk/tutorials/xcode iOS/GStreamer iOS Tutorials.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..a0742b4e01 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/GStreamer iOS Tutorials.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.h b/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.h new file mode 100644 index 0000000000..78ab43ec28 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.h @@ -0,0 +1,51 @@ +/* + * GStreamer iOS Tutorial 1 + * Copyright (C) 2013 Collabora Ltd. + * @author: Thiago Santos + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.m b/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.m new file mode 100644 index 0000000000..7d477ca577 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.m @@ -0,0 +1,82 @@ +/* + * GStreamer iOS Tutorial 1 + * Copyright (C) 2013 Collabora Ltd. + * @author: Thiago Santos + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#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 1/Default-568h@2x.png b/gst-sdk/tutorials/xcode iOS/Tutorial 1/Default-568h@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0891b7aabfcf3422423b109c8beed2bab838c607 GIT binary patch literal 18594 zcmeI4X;f257Jx&9fS`ixvS;&$x8J@slQFSel)6zJN=?13FB7H(lQjRkSy8x_-S~tvu2gzn1oS+dLcF#eqtq$ z%tf9TTvX?`)R@}3uBI;jzS-=ZR-Td&MHaS&;!0?Ni*#$#`n*~CcQK)Q9vAQ~TUpnI!j)a2biYK^R)M~A5wUDZhx?ULMX z3x1P&qt=trOY6P2U67L=m=U?F|5#Uj(eCueNTZaHs_ceWiHeET+j+tp3Jt9g(ekqP z2WOvfR{qV+9r+o4J5?qK>7;;^+I7tGv-i)es$X_D=EoKF+S?zsyj^oRFElP}c}JT< zd8SUs-?O?}2YD#ngKbnHgzHBcboxK_2r9l(?eNCl-pEzkJm}fY?WC*jnS?VBE4EpY zO$fEejz6fU;W2Kl>JeQBZBl-%Irg`obSlg*@4QB;Dd1H7^Oi5wvt4d{RZ!8Og?^aE z)k0$1g+V3fd(gdQ3d&q2q-FL*uy#}|bc^=VhFsl0jBgUGJ+-s3U8MK9A!YJJMxpci z5hJ%|{DwV48fZn0{n5l$N_KcSb#NKE4plB`9I6Zt=Z!~-zw0{9tg$L&Ju1F0X)Cy8 zKF;(&lJ>x)Jw(=;p~sF(Sd9VWGwFE2rnyS9!f^DZ8+aCLq zQ};>lcJ1GDLqjm6Hd>|Eabno@P`~Bn(~6^aD_#yoEH(a?Nm1S<;S+hSxI5d16^<1lEM3NPFi zkqPrpL)+ zgnseFikg`gJVBha1&7C4;O6>h=dt~`ND+;Zd?W(4v2JIb7Pt>Td42%M-Ju-XAH#Pns762L}K3 zDhvsRqN0Ni(1UrishD2YvV?4*h2iFj$+&N||Fn$4n|^NSU+o?~jq`0jVQt8T9l{7b zXiwwODFh2V!Q6sqP9S>WH$oOf$N~=d0-bqTlD61!=`&0eAP-F>XN?*|gtOXX{ zQVTWyYo4ZK0GAw!GHf|pz9`D;-bbb*5LBX*{bnz|+)$@&P9|ORM2o?95{;ejvo&r- zq8cBhTN6nn)7~W>54U)%-F_-b?YKdfk5I8MHcuzBD5)!;yv#Z&R&^y=@=>VTIMy#r zX&U<=BsPkdqcMe<_}2+>H%XKyrr5ZR8_KVe>ZqYN z^=^~TFD};;rHJ$U;{~w^hYojl4hRI@SH$^K{YEo=sg)WY87r!*7blQK&qnpDo0`Vn zkl)9u9g=mCh&ZCJS(L4yN3k0kQ zuvg$h2KEEk51T+O0JQ+r0`R>g{jvqM0Mr6d3qUOZwE!?PI7HY@CE|dr sfw?Q;rAv?G4&^^8-z_>&sWXMxvD*gPOU4CBe-*@OtE+wfmVJNyHv)PfH~;_u literal 0 HcmV?d00001 diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/Default.png b/gst-sdk/tutorials/xcode iOS/Tutorial 1/Default.png new file mode 100644 index 0000000000000000000000000000000000000000..4c8ca6f693f96d511e9113c0eb59eec552354e42 GIT binary patch literal 6540 zcmeAS@N?(olHy`uVBq!ia0y~yU~~ZD2OMlbkt;o0To@QwR5G2N13aCb6#|O#(=u~X z85k@CTSM>X-wqM6>&y>YB4)1;;ojbLbbV-W^iFB1wa3^zCog^LCAReC4K0-?R_2{6 zrP*)4+_uWUy3w5N52M3PW_}MFMP9a~>YLvVZ1D_k*IMQ2QT^fwzoOb(*3gH$%aYWC zkHmcab=va2<#X%jakpJ;<1@F;k__#bwtC&%^D0v(FBh9K&$sK+<}2RJS609D)17$w ztdQP8(eLM8Ka}m_IQ@3wyMKP)l=oM4-?`YS_*P?4V_ORLPxsj&7Ju#kH;>6^Kp?T7~ zl+q?{UOOqV==?+d{=)5s|M~T1mwtH@+Z^$G&eEO9JNP^AX@3jZ*J*!!>lc|1-W%fA z@AOQpXZ_Lt>rxFXrGp*zLPiW@uo_c7C{As>j zWeX)wi+LTp_)@KYZCX{j;H?|1yXT4DnlS(Fr8gyP5|uaX_gLvaW0ScZdnG7o+u{T6 zFI-%d{ls*WuCDa5UJ@|RXv&ejZe}*BMkiWY51&pnRPw(hlykSzvj6e%mYz-GdvzBD zF10?szF_~!jS=?2HyQuPCvARXAe}C}WP|yQ*>5~~=*Nxq8+HHW1~FMDRCP^TcacKuk$ z(U#REVv)D!PhJ*ecH-ELFUrfyV&*)Z)>UCOuS?yd^L@Afk>ihynYPc{^CRwu+JHX+#$@YsC4c|l0tGigsn@jy) zXD($Ouk>H+V(Mr6NQT0S9BFM~V6nkj;1OBOz`zY;a|<&v%$g$sEJPk;hD4M^`1)8S z=jZArrsOB3>Q&?x097+E*i={nnYpPYi3%0DIeEoa6}C!X6;?ntNLXJ<0j#7X+g2&U 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 literal 0 HcmV?d00001 diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.h b/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.h new file mode 100644 index 0000000000..8fe15d282b --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.h @@ -0,0 +1,51 @@ +/* + * GStreamer iOS Tutorial 1 + * Copyright (C) 2013 Collabora Ltd. + * @author: Thiago Santos + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#import + +@interface GStreamerBackend : NSObject + +-(NSString*) getGStreamerVersion; + +@end \ No newline at end of file diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m b/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m new file mode 100644 index 0000000000..a14256a7e1 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m @@ -0,0 +1,61 @@ +/* + * GStreamer iOS Tutorial 1 + * Copyright (C) 2013 Collabora Ltd. + * @author: Thiago Santos + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#import "GStreamerBackend.h" + +#include + +@implementation GStreamerBackend + + +-(NSString*) getGStreamerVersion +{ + char *str = gst_version_string(); + NSString *version = [NSString stringWithUTF8String:str]; + g_free(str); + return version; +} + +@end + diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/Tutorial 1-Info.plist b/gst-sdk/tutorials/xcode iOS/Tutorial 1/Tutorial 1-Info.plist new file mode 100644 index 0000000000..7a9f934c70 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/Tutorial 1-Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + gstreamer-sdk.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIMainStoryboardFile + MainStoryboard_iPhone + UIMainStoryboardFile~ipad + MainStoryboard_iPad + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/Tutorial 1-Prefix.pch b/gst-sdk/tutorials/xcode iOS/Tutorial 1/Tutorial 1-Prefix.pch new file mode 100644 index 0000000000..99c2d37578 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/Tutorial 1-Prefix.pch @@ -0,0 +1,14 @@ +// +// Prefix header for all source files of the 'Tutorial 1' target in the 'Tutorial 1' project +// + +#import + +#ifndef __IPHONE_5_0 +#warning "This project uses features only available in iOS SDK 5.0 and later." +#endif + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.h b/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.h new file mode 100644 index 0000000000..9f59fdc970 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.h @@ -0,0 +1,53 @@ +/* + * GStreamer iOS Tutorial 1 + * Copyright (C) 2013 Collabora Ltd. + * @author: Thiago Santos + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#import + +@interface ViewController : UIViewController { + IBOutlet UILabel *label; +} + +@property (retain,nonatomic) UILabel *label; + +@end diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.m b/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.m new file mode 100644 index 0000000000..7df6ed4a75 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.m @@ -0,0 +1,73 @@ +/* + * GStreamer iOS Tutorial 1 + * Copyright (C) 2013 Collabora Ltd. + * @author: Thiago Santos + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#import "ViewController.h" +#import "GStreamerBackend.h" + +@interface ViewController () { + GStreamerBackend *gst_backend; +} + +@end + +@implementation ViewController + +@synthesize label; + +- (void)viewDidLoad +{ + [super viewDidLoad]; + // Do any additional setup after loading the view, typically from a nib. + gst_backend = [[GStreamerBackend alloc] init]; + + label.text = [NSString stringWithFormat:@"Hello %@", [gst_backend getGStreamerVersion], nil]; +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +@end diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/InfoPlist.strings b/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/InfoPlist.strings new file mode 100644 index 0000000000..477b28ff8f --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPad.storyboard b/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPad.storyboard new file mode 100644 index 0000000000..8b2cc4659c --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPad.storyboard @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPhone.storyboard b/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPhone.storyboard new file mode 100644 index 0000000000..4d6e51a698 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPhone.storyboard @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.c b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.c new file mode 100644 index 0000000000..6e865b2805 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.c @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2013 Fluendo S.L + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "gst_ios_backend.h" +#include "gst_ios_plugins.h" + +void +gst_backend_init (void) +{ + gst_init (NULL, NULL); + gst_backend_register_plugins (); +} diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.h b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.h new file mode 100644 index 0000000000..b79134f3d9 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.h @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2013 Fluendo S.L + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __GST_IOS_BACKEND_H__ +#define __GST_IOS_BACKEND_H__ + +#include + +void gst_backend_init (); + +#endif diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.c b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.c new file mode 100644 index 0000000000..237d1b31b9 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.c @@ -0,0 +1,994 @@ + + +#include +#include "gst_ios_plugins.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_backend_register_plugins (void) +{ +#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 1/gst_ios_plugins.h b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.h new file mode 100644 index 0000000000..757104de0c --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.h @@ -0,0 +1,14 @@ +#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_backend_register_plugins (void); \ No newline at end of file diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m b/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m new file mode 100644 index 0000000000..05c328c895 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m @@ -0,0 +1,13 @@ + +#import + +#import "AppDelegate.h" +#include "gst_ios_backend.h" + +int main(int argc, char *argv[]) +{ + @autoreleasepool { + gst_backend_init(); + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} From 0fddebb7619800538b2cfa7b25747a1a8d85c083 Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Tue, 30 Apr 2013 10:19:25 +0200 Subject: [PATCH 02/10] Center label on screen --- .../en.lproj/MainStoryboard_iPad.storyboard | 15 +++++++++++++-- .../en.lproj/MainStoryboard_iPhone.storyboard | 10 +++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPad.storyboard b/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPad.storyboard index 8b2cc4659c..ed6ac57c21 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPad.storyboard +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPad.storyboard @@ -1,5 +1,5 @@ - + @@ -24,8 +24,8 @@ - + @@ -36,6 +36,17 @@ + + + + + + + + + + + diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPhone.storyboard b/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPhone.storyboard index 4d6e51a698..49bfecffb1 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPhone.storyboard +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/en.lproj/MainStoryboard_iPhone.storyboard @@ -1,5 +1,5 @@ - + @@ -14,7 +14,7 @@ - - - + + + From cd3cfb3e0d9e44f8f33ee050e2e5ddda68d0dd46 Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Tue, 30 Apr 2013 10:51:00 +0200 Subject: [PATCH 03/10] Remove copyright notices --- .../xcode iOS/Tutorial 1/AppDelegate.h | 44 ------------------- .../xcode iOS/Tutorial 1/AppDelegate.m | 44 ------------------- .../xcode iOS/Tutorial 1/GStreamerBackend.h | 44 ------------------- .../xcode iOS/Tutorial 1/GStreamerBackend.m | 44 ------------------- .../xcode iOS/Tutorial 1/ViewController.h | 44 ------------------- .../xcode iOS/Tutorial 1/ViewController.m | 44 ------------------- .../xcode iOS/Tutorial 1/gst_ios_backend.c | 18 -------- .../xcode iOS/Tutorial 1/gst_ios_backend.h | 18 -------- gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m | 1 - 9 files changed, 301 deletions(-) diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.h b/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.h index 78ab43ec28..a5a8b38522 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.h +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.h @@ -1,47 +1,3 @@ -/* - * GStreamer iOS Tutorial 1 - * Copyright (C) 2013 Collabora Ltd. - * @author: Thiago Santos - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Alternatively, the contents of this file may be used under the - * GNU Lesser General Public License Version 2.1 (the "LGPL"), in - * which case the following provisions apply instead of the ones - * mentioned above: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - #import @interface AppDelegate : UIResponder diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.m b/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.m index 7d477ca577..31ef04ed4d 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.m +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/AppDelegate.m @@ -1,47 +1,3 @@ -/* - * GStreamer iOS Tutorial 1 - * Copyright (C) 2013 Collabora Ltd. - * @author: Thiago Santos - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Alternatively, the contents of this file may be used under the - * GNU Lesser General Public License Version 2.1 (the "LGPL"), in - * which case the following provisions apply instead of the ones - * mentioned above: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - #import "AppDelegate.h" @implementation AppDelegate diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.h b/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.h index 8fe15d282b..3996f0094a 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.h +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.h @@ -1,47 +1,3 @@ -/* - * GStreamer iOS Tutorial 1 - * Copyright (C) 2013 Collabora Ltd. - * @author: Thiago Santos - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Alternatively, the contents of this file may be used under the - * GNU Lesser General Public License Version 2.1 (the "LGPL"), in - * which case the following provisions apply instead of the ones - * mentioned above: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - #import @interface GStreamerBackend : NSObject diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m b/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m index a14256a7e1..a549513824 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m @@ -1,47 +1,3 @@ -/* - * GStreamer iOS Tutorial 1 - * Copyright (C) 2013 Collabora Ltd. - * @author: Thiago Santos - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Alternatively, the contents of this file may be used under the - * GNU Lesser General Public License Version 2.1 (the "LGPL"), in - * which case the following provisions apply instead of the ones - * mentioned above: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - #import "GStreamerBackend.h" #include diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.h b/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.h index 9f59fdc970..2440159357 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.h +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.h @@ -1,47 +1,3 @@ -/* - * GStreamer iOS Tutorial 1 - * Copyright (C) 2013 Collabora Ltd. - * @author: Thiago Santos - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Alternatively, the contents of this file may be used under the - * GNU Lesser General Public License Version 2.1 (the "LGPL"), in - * which case the following provisions apply instead of the ones - * mentioned above: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - #import @interface ViewController : UIViewController { diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.m b/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.m index 7df6ed4a75..c213b76d28 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.m +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/ViewController.m @@ -1,47 +1,3 @@ -/* - * GStreamer iOS Tutorial 1 - * Copyright (C) 2013 Collabora Ltd. - * @author: Thiago Santos - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Alternatively, the contents of this file may be used under the - * GNU Lesser General Public License Version 2.1 (the "LGPL"), in - * which case the following provisions apply instead of the ones - * mentioned above: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - #import "ViewController.h" #import "GStreamerBackend.h" diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.c b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.c index 6e865b2805..f79c41c549 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.c +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.c @@ -1,21 +1,3 @@ -/* - * Copyright (C) 2013 Fluendo S.L - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - #include "gst_ios_backend.h" #include "gst_ios_plugins.h" diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.h b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.h index b79134f3d9..71a75035e9 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.h +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.h @@ -1,21 +1,3 @@ -/* - * Copyright (C) 2013 Fluendo S.L - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - #ifndef __GST_IOS_BACKEND_H__ #define __GST_IOS_BACKEND_H__ diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m b/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m index 05c328c895..54841628d7 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m @@ -1,4 +1,3 @@ - #import #import "AppDelegate.h" From d8c0c43ffb35c2552b655fa76b3e588e3da5eae6 Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Tue, 30 Apr 2013 11:19:04 +0200 Subject: [PATCH 04/10] New template for autogenerated files --- .../project.pbxproj | 19 +++++++------------ .../xcode iOS/Tutorial 1/gst_ios_backend.c | 9 --------- .../xcode iOS/Tutorial 1/gst_ios_backend.h | 8 -------- .../{gst_ios_plugins.c => gst_ios_init.c} | 9 ++++----- .../{gst_ios_plugins.h => gst_ios_init.h} | 13 ++++++++++++- gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m | 2 +- 6 files changed, 24 insertions(+), 36 deletions(-) delete mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.c delete mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.h rename gst-sdk/tutorials/xcode iOS/Tutorial 1/{gst_ios_plugins.c => gst_ios_init.c} (99%) rename gst-sdk/tutorials/xcode iOS/Tutorial 1/{gst_ios_plugins.h => gst_ios_init.h} (61%) 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 c2faacf816..2c6245efe1 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 @@ -20,8 +20,7 @@ C67B40E8172EBEA3008359CC /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C67B40E6172EBEA3008359CC /* MainStoryboard_iPhone.storyboard */; }; C67B40EB172EBEA3008359CC /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C67B40E9172EBEA3008359CC /* MainStoryboard_iPad.storyboard */; }; C67B40EE172EBEA3008359CC /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B40ED172EBEA3008359CC /* ViewController.m */; }; - C67B40F0172EBEA3008359CC /* gst_ios_backend.c in Sources */ = {isa = PBXBuildFile; fileRef = C67B40EF172EBEA3008359CC /* gst_ios_backend.c */; }; - C67B40F3172EBEA3008359CC /* gst_ios_plugins.c in Sources */ = {isa = PBXBuildFile; fileRef = C67B40F2172EBEA3008359CC /* gst_ios_plugins.c */; }; + C67B40F0172EBEA3008359CC /* gst_ios_init.c in Sources */ = {isa = PBXBuildFile; fileRef = C67B40EF172EBEA3008359CC /* gst_ios_init.c */; }; C67B40FA172EC27D008359CC /* GStreamerBackend.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B40F9172EC27D008359CC /* GStreamerBackend.m */; }; /* End PBXBuildFile section */ @@ -44,10 +43,8 @@ C67B40EA172EBEA3008359CC /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPad.storyboard; sourceTree = ""; }; C67B40EC172EBEA3008359CC /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; C67B40ED172EBEA3008359CC /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - C67B40EF172EBEA3008359CC /* gst_ios_backend.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gst_ios_backend.c; sourceTree = ""; }; - C67B40F1172EBEA3008359CC /* gst_ios_backend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gst_ios_backend.h; sourceTree = ""; }; - C67B40F2172EBEA3008359CC /* gst_ios_plugins.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gst_ios_plugins.c; sourceTree = ""; }; - C67B40F4172EBEA4008359CC /* gst_ios_plugins.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gst_ios_plugins.h; sourceTree = ""; }; + C67B40EF172EBEA3008359CC /* gst_ios_init.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gst_ios_init.c; sourceTree = ""; }; + C67B40F1172EBEA3008359CC /* gst_ios_init.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gst_ios_init.h; sourceTree = ""; }; C67B40F8172EC27D008359CC /* GStreamerBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GStreamerBackend.h; sourceTree = ""; }; C67B40F9172EC27D008359CC /* GStreamerBackend.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GStreamerBackend.m; sourceTree = ""; }; /* End PBXFileReference section */ @@ -121,10 +118,8 @@ C67B40E0172EBEA3008359CC /* Default.png */, C67B40E2172EBEA3008359CC /* Default@2x.png */, C67B40E4172EBEA3008359CC /* Default-568h@2x.png */, - C67B40EF172EBEA3008359CC /* gst_ios_backend.c */, - C67B40F1172EBEA3008359CC /* gst_ios_backend.h */, - C67B40F2172EBEA3008359CC /* gst_ios_plugins.c */, - C67B40F4172EBEA4008359CC /* gst_ios_plugins.h */, + C67B40EF172EBEA3008359CC /* gst_ios_init.c */, + C67B40F1172EBEA3008359CC /* gst_ios_init.h */, ); name = "Supporting Files"; sourceTree = ""; @@ -198,8 +193,7 @@ C67B40DB172EBEA3008359CC /* main.m in Sources */, C67B40DF172EBEA3008359CC /* AppDelegate.m in Sources */, C67B40EE172EBEA3008359CC /* ViewController.m in Sources */, - C67B40F0172EBEA3008359CC /* gst_ios_backend.c in Sources */, - C67B40F3172EBEA3008359CC /* gst_ios_plugins.c in Sources */, + C67B40F0172EBEA3008359CC /* gst_ios_init.c in Sources */, C67B40FA172EC27D008359CC /* GStreamerBackend.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -397,6 +391,7 @@ C67B40F6172EBEA4008359CC /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.c b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.c deleted file mode 100644 index f79c41c549..0000000000 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.c +++ /dev/null @@ -1,9 +0,0 @@ -#include "gst_ios_backend.h" -#include "gst_ios_plugins.h" - -void -gst_backend_init (void) -{ - gst_init (NULL, NULL); - gst_backend_register_plugins (); -} diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.h b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.h deleted file mode 100644 index 71a75035e9..0000000000 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_backend.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __GST_IOS_BACKEND_H__ -#define __GST_IOS_BACKEND_H__ - -#include - -void gst_backend_init (); - -#endif diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.c b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.c similarity index 99% rename from gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.c rename to gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.c index 237d1b31b9..df885e0411 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.c +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.c @@ -1,7 +1,4 @@ - - -#include -#include "gst_ios_plugins.h" +#include "gst_ios_init.h" #if defined(GST_IOS_PLUGIN_COREELEMENTS) || defined(GST_IOS_PLUGINS_CORE) GST_PLUGIN_STATIC_DECLARE(coreelements); @@ -497,8 +494,10 @@ GST_PLUGIN_STATIC_DECLARE(sdp); #endif void -gst_backend_register_plugins (void) +gst_backend_init (void) { + gst_init (NULL, NULL); + #if defined(GST_IOS_PLUGIN_COREELEMENTS) || defined(GST_IOS_PLUGINS_CORE) GST_PLUGIN_STATIC_REGISTER(coreelements); #endif diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.h b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.h similarity index 61% rename from gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.h rename to gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.h index 757104de0c..7231619816 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_plugins.h +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.h @@ -1,3 +1,11 @@ +#ifndef __GST_IOS_INIT_H__ +#define __GST_IOS_INIT_H__ + +#include + +/* 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 @@ -11,4 +19,7 @@ //#define GST_IOS_PLUGINS_EFFECTS //#define GST_IOS_PLUGINS_CODECS //#define GST_IOS_PLUGINS_NET -void gst_backend_register_plugins (void); \ No newline at end of file + +void gst_backend_init (); + +#endif diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m b/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m index 54841628d7..c71525ad7b 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m @@ -1,7 +1,7 @@ #import #import "AppDelegate.h" -#include "gst_ios_backend.h" +#include "gst_ios_init.h" int main(int argc, char *argv[]) { From d2c4104a9e7e35fb2c9b414b5425a42eba2a2ff9 Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Tue, 30 Apr 2013 11:42:51 +0200 Subject: [PATCH 05/10] Fix initialization function name --- gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.c | 2 +- gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.h | 2 +- gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.c b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.c index df885e0411..9ece9ab027 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.c +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.c @@ -494,7 +494,7 @@ GST_PLUGIN_STATIC_DECLARE(sdp); #endif void -gst_backend_init (void) +gst_ios_init (void) { gst_init (NULL, NULL); diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.h b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.h index 7231619816..ce2fef0265 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.h +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/gst_ios_init.h @@ -20,6 +20,6 @@ //#define GST_IOS_PLUGINS_CODECS //#define GST_IOS_PLUGINS_NET -void gst_backend_init (); +void gst_ios_init (); #endif diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m b/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m index c71525ad7b..6cf4e0f612 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/main.m @@ -6,7 +6,7 @@ int main(int argc, char *argv[]) { @autoreleasepool { - gst_backend_init(); + gst_ios_init(); return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } From 8dc3c7d96a631d128f1f58af709ca3e846fbc427 Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Tue, 30 Apr 2013 13:03:43 +0200 Subject: [PATCH 06/10] Initial import of Tutorial 2 from thiagoss --- .../project.pbxproj | 288 +++++ .../xcode iOS/Tutorial 2/AppDelegate.h | 7 + .../xcode iOS/Tutorial 2/AppDelegate.m | 38 + .../xcode iOS/Tutorial 2/Default-568h@2x.png | Bin 0 -> 18594 bytes .../xcode iOS/Tutorial 2/Default.png | Bin 0 -> 6540 bytes .../xcode iOS/Tutorial 2/Default@2x.png | Bin 0 -> 16107 bytes .../xcode iOS/Tutorial 2/GStreamerBackend.h | 18 + .../xcode iOS/Tutorial 2/GStreamerBackend.m | 133 +++ .../Tutorial 2/GStreamerBackendDelegate.h | 9 + .../Tutorial 2/Tutorial 2-Info.plist | 49 + .../Tutorial 2/Tutorial 2-Prefix.pch | 14 + .../xcode iOS/Tutorial 2/Tutorial2-Info.plist | 49 + .../xcode iOS/Tutorial 2/ViewController.h | 14 + .../xcode iOS/Tutorial 2/ViewController.m | 67 ++ .../Tutorial 2/en.lproj/InfoPlist.strings | 2 + .../en.lproj/MainStoryboard_iPad.storyboard | 77 ++ .../en.lproj/MainStoryboard_iPhone.storyboard | 92 ++ .../xcode iOS/Tutorial 2/gst_ios_init.c | 995 ++++++++++++++++++ .../xcode iOS/Tutorial 2/gst_ios_init.h | 25 + gst-sdk/tutorials/xcode iOS/Tutorial 2/main.m | 13 + 20 files changed, 1890 insertions(+) create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/AppDelegate.h create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/AppDelegate.m create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/Default-568h@2x.png create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/Default.png create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/Default@2x.png create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/GStreamerBackend.h create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/GStreamerBackend.m create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/GStreamerBackendDelegate.h create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial 2-Info.plist create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial 2-Prefix.pch create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial2-Info.plist create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/ViewController.h create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/ViewController.m create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/en.lproj/InfoPlist.strings create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/en.lproj/MainStoryboard_iPad.storyboard create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/en.lproj/MainStoryboard_iPhone.storyboard create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/gst_ios_init.c create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/gst_ios_init.h create mode 100644 gst-sdk/tutorials/xcode iOS/Tutorial 2/main.m 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 2c6245efe1..e877b1dd2c 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 @@ -22,6 +22,21 @@ C67B40EE172EBEA3008359CC /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B40ED172EBEA3008359CC /* ViewController.m */; }; C67B40F0172EBEA3008359CC /* gst_ios_init.c in Sources */ = {isa = PBXBuildFile; fileRef = C67B40EF172EBEA3008359CC /* gst_ios_init.c */; }; C67B40FA172EC27D008359CC /* GStreamerBackend.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B40F9172EC27D008359CC /* GStreamerBackend.m */; }; + C67B4100172FC7F4008359CC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C67B40CC172EBEA3008359CC /* UIKit.framework */; }; + C67B4101172FC7F4008359CC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C67B40CE172EBEA3008359CC /* Foundation.framework */; }; + C67B4102172FC7F4008359CC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C67B40D0172EBEA3008359CC /* CoreGraphics.framework */; }; + C67B4103172FC7F4008359CC /* GStreamer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C67B40D2172EBEA3008359CC /* GStreamer.framework */; }; + C67B4109172FC7F4008359CC /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C67B4107172FC7F4008359CC /* InfoPlist.strings */; }; + C67B410B172FC7F4008359CC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B410A172FC7F4008359CC /* main.m */; }; + C67B410F172FC7F5008359CC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B410E172FC7F5008359CC /* AppDelegate.m */; }; + C67B4111172FC7F5008359CC /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4110172FC7F5008359CC /* Default.png */; }; + C67B4113172FC7F5008359CC /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4112172FC7F5008359CC /* Default@2x.png */; }; + C67B4115172FC7F5008359CC /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4114172FC7F5008359CC /* Default-568h@2x.png */; }; + C67B4118172FC7F5008359CC /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C67B4116172FC7F5008359CC /* MainStoryboard_iPhone.storyboard */; }; + C67B411B172FC7F5008359CC /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C67B4119172FC7F5008359CC /* MainStoryboard_iPad.storyboard */; }; + C67B411E172FC7F5008359CC /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B411D172FC7F5008359CC /* ViewController.m */; }; + C67B412A172FC85D008359CC /* gst_ios_init.c in Sources */ = {isa = PBXBuildFile; fileRef = C67B4128172FC85D008359CC /* gst_ios_init.c */; }; + C67B412E172FCC4C008359CC /* GStreamerBackend.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B412C172FCC4C008359CC /* GStreamerBackend.m */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -47,6 +62,25 @@ C67B40F1172EBEA3008359CC /* gst_ios_init.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gst_ios_init.h; sourceTree = ""; }; C67B40F8172EC27D008359CC /* GStreamerBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GStreamerBackend.h; sourceTree = ""; }; C67B40F9172EC27D008359CC /* GStreamerBackend.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GStreamerBackend.m; sourceTree = ""; }; + C67B40FF172FC7F4008359CC /* Tutorial 2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Tutorial 2.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + C67B4106172FC7F4008359CC /* Tutorial 2-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tutorial 2-Info.plist"; sourceTree = ""; }; + C67B4108172FC7F4008359CC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + C67B410A172FC7F4008359CC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + C67B410C172FC7F5008359CC /* Tutorial 2-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tutorial 2-Prefix.pch"; sourceTree = ""; }; + C67B410D172FC7F5008359CC /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + C67B410E172FC7F5008359CC /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + C67B4110172FC7F5008359CC /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; + C67B4112172FC7F5008359CC /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; + C67B4114172FC7F5008359CC /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; + C67B4117172FC7F5008359CC /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPhone.storyboard; sourceTree = ""; }; + C67B411A172FC7F5008359CC /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPad.storyboard; sourceTree = ""; }; + C67B411C172FC7F5008359CC /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + C67B411D172FC7F5008359CC /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + C67B4128172FC85D008359CC /* gst_ios_init.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gst_ios_init.c; sourceTree = ""; }; + C67B4129172FC85D008359CC /* gst_ios_init.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gst_ios_init.h; sourceTree = ""; }; + C67B412B172FCC4C008359CC /* GStreamerBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GStreamerBackend.h; sourceTree = ""; }; + C67B412C172FCC4C008359CC /* GStreamerBackend.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GStreamerBackend.m; sourceTree = ""; }; + C67B412D172FCC4C008359CC /* GStreamerBackendDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GStreamerBackendDelegate.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -61,6 +95,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C67B40FC172FC7F4008359CC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C67B4100172FC7F4008359CC /* UIKit.framework in Frameworks */, + C67B4101172FC7F4008359CC /* Foundation.framework in Frameworks */, + C67B4102172FC7F4008359CC /* CoreGraphics.framework in Frameworks */, + C67B4103172FC7F4008359CC /* GStreamer.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -68,6 +113,7 @@ isa = PBXGroup; children = ( C67B40D4172EBEA3008359CC /* Tutorial 1 */, + C67B4104172FC7F4008359CC /* Tutorial 2 */, C67B40CB172EBEA3008359CC /* Frameworks */, C67B40CA172EBEA3008359CC /* Products */, ); @@ -77,6 +123,7 @@ isa = PBXGroup; children = ( C67B40C9172EBEA3008359CC /* Tutorial 1.app */, + C67B40FF172FC7F4008359CC /* Tutorial 2.app */, ); name = Products; sourceTree = ""; @@ -124,6 +171,39 @@ name = "Supporting Files"; sourceTree = ""; }; + C67B4104172FC7F4008359CC /* Tutorial 2 */ = { + isa = PBXGroup; + children = ( + C67B412B172FCC4C008359CC /* GStreamerBackend.h */, + C67B412C172FCC4C008359CC /* GStreamerBackend.m */, + C67B410D172FC7F5008359CC /* AppDelegate.h */, + C67B410E172FC7F5008359CC /* AppDelegate.m */, + C67B4116172FC7F5008359CC /* MainStoryboard_iPhone.storyboard */, + C67B4119172FC7F5008359CC /* MainStoryboard_iPad.storyboard */, + C67B411C172FC7F5008359CC /* ViewController.h */, + C67B411D172FC7F5008359CC /* ViewController.m */, + C67B4105172FC7F4008359CC /* Supporting Files */, + ); + path = "Tutorial 2"; + sourceTree = ""; + }; + C67B4105172FC7F4008359CC /* Supporting Files */ = { + isa = PBXGroup; + children = ( + C67B4106172FC7F4008359CC /* Tutorial 2-Info.plist */, + C67B4107172FC7F4008359CC /* InfoPlist.strings */, + C67B410A172FC7F4008359CC /* main.m */, + C67B410C172FC7F5008359CC /* Tutorial 2-Prefix.pch */, + C67B4110172FC7F5008359CC /* Default.png */, + C67B4112172FC7F5008359CC /* Default@2x.png */, + C67B4114172FC7F5008359CC /* Default-568h@2x.png */, + C67B4128172FC85D008359CC /* gst_ios_init.c */, + C67B4129172FC85D008359CC /* gst_ios_init.h */, + C67B412D172FCC4C008359CC /* GStreamerBackendDelegate.h */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -144,6 +224,23 @@ productReference = C67B40C9172EBEA3008359CC /* Tutorial 1.app */; productType = "com.apple.product-type.application"; }; + C67B40FE172FC7F4008359CC /* Tutorial 2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = C67B4125172FC7F5008359CC /* Build configuration list for PBXNativeTarget "Tutorial 2" */; + buildPhases = ( + C67B40FB172FC7F4008359CC /* Sources */, + C67B40FC172FC7F4008359CC /* Frameworks */, + C67B40FD172FC7F4008359CC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Tutorial 2"; + productName = "Tutorial 2"; + productReference = C67B40FF172FC7F4008359CC /* Tutorial 2.app */; + productType = "com.apple.product-type.application"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -165,6 +262,7 @@ projectRoot = ""; targets = ( C67B40C8172EBEA3008359CC /* Tutorial 1 */, + C67B40FE172FC7F4008359CC /* Tutorial 2 */, ); }; /* End PBXProject section */ @@ -183,6 +281,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C67B40FD172FC7F4008359CC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C67B4109172FC7F4008359CC /* InfoPlist.strings in Resources */, + C67B4111172FC7F5008359CC /* Default.png in Resources */, + C67B4113172FC7F5008359CC /* Default@2x.png in Resources */, + C67B4115172FC7F5008359CC /* Default-568h@2x.png in Resources */, + C67B4118172FC7F5008359CC /* MainStoryboard_iPhone.storyboard in Resources */, + C67B411B172FC7F5008359CC /* MainStoryboard_iPad.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -198,6 +309,18 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C67B40FB172FC7F4008359CC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C67B410B172FC7F4008359CC /* main.m in Sources */, + C67B410F172FC7F5008359CC /* AppDelegate.m in Sources */, + C67B411E172FC7F5008359CC /* ViewController.m in Sources */, + C67B412A172FC85D008359CC /* gst_ios_init.c in Sources */, + C67B412E172FCC4C008359CC /* GStreamerBackend.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ @@ -225,6 +348,30 @@ name = MainStoryboard_iPad.storyboard; sourceTree = ""; }; + C67B4107172FC7F4008359CC /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + C67B4108172FC7F4008359CC /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + C67B4116172FC7F5008359CC /* MainStoryboard_iPhone.storyboard */ = { + isa = PBXVariantGroup; + children = ( + C67B4117172FC7F5008359CC /* en */, + ); + name = MainStoryboard_iPhone.storyboard; + sourceTree = ""; + }; + C67B4119172FC7F5008359CC /* MainStoryboard_iPad.storyboard */ = { + isa = PBXVariantGroup; + children = ( + C67B411A172FC7F5008359CC /* en */, + ); + name = MainStoryboard_iPad.storyboard; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ @@ -372,6 +519,138 @@ }; name = Release; }; + C67B4126172FC7F5008359CC /* 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 2/Tutorial 2-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 2/Tutorial 2-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; + }; + C67B4127172FC7F5008359CC /* 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 2/Tutorial 2-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 2/Tutorial 2-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 */ @@ -393,6 +672,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + C67B4125172FC7F5008359CC /* Build configuration list for PBXNativeTarget "Tutorial 2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C67B4126172FC7F5008359CC /* Debug */, + C67B4127172FC7F5008359CC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = C67B40BF172EBDF1008359CC /* Project object */; diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/AppDelegate.h b/gst-sdk/tutorials/xcode iOS/Tutorial 2/AppDelegate.h new file mode 100644 index 0000000000..a5a8b38522 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/AppDelegate.h @@ -0,0 +1,7 @@ +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/AppDelegate.m b/gst-sdk/tutorials/xcode iOS/Tutorial 2/AppDelegate.m new file mode 100644 index 0000000000..31ef04ed4d --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/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 2/Default-568h@2x.png b/gst-sdk/tutorials/xcode iOS/Tutorial 2/Default-568h@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0891b7aabfcf3422423b109c8beed2bab838c607 GIT binary patch literal 18594 zcmeI4X;f257Jx&9fS`ixvS;&$x8J@slQFSel)6zJN=?13FB7H(lQjRkSy8x_-S~tvu2gzn1oS+dLcF#eqtq$ z%tf9TTvX?`)R@}3uBI;jzS-=ZR-Td&MHaS&;!0?Ni*#$#`n*~CcQK)Q9vAQ~TUpnI!j)a2biYK^R)M~A5wUDZhx?ULMX z3x1P&qt=trOY6P2U67L=m=U?F|5#Uj(eCueNTZaHs_ceWiHeET+j+tp3Jt9g(ekqP z2WOvfR{qV+9r+o4J5?qK>7;;^+I7tGv-i)es$X_D=EoKF+S?zsyj^oRFElP}c}JT< zd8SUs-?O?}2YD#ngKbnHgzHBcboxK_2r9l(?eNCl-pEzkJm}fY?WC*jnS?VBE4EpY zO$fEejz6fU;W2Kl>JeQBZBl-%Irg`obSlg*@4QB;Dd1H7^Oi5wvt4d{RZ!8Og?^aE z)k0$1g+V3fd(gdQ3d&q2q-FL*uy#}|bc^=VhFsl0jBgUGJ+-s3U8MK9A!YJJMxpci z5hJ%|{DwV48fZn0{n5l$N_KcSb#NKE4plB`9I6Zt=Z!~-zw0{9tg$L&Ju1F0X)Cy8 zKF;(&lJ>x)Jw(=;p~sF(Sd9VWGwFE2rnyS9!f^DZ8+aCLq zQ};>lcJ1GDLqjm6Hd>|Eabno@P`~Bn(~6^aD_#yoEH(a?Nm1S<;S+hSxI5d16^<1lEM3NPFi zkqPrpL)+ zgnseFikg`gJVBha1&7C4;O6>h=dt~`ND+;Zd?W(4v2JIb7Pt>Td42%M-Ju-XAH#Pns762L}K3 zDhvsRqN0Ni(1UrishD2YvV?4*h2iFj$+&N||Fn$4n|^NSU+o?~jq`0jVQt8T9l{7b zXiwwODFh2V!Q6sqP9S>WH$oOf$N~=d0-bqTlD61!=`&0eAP-F>XN?*|gtOXX{ zQVTWyYo4ZK0GAw!GHf|pz9`D;-bbb*5LBX*{bnz|+)$@&P9|ORM2o?95{;ejvo&r- zq8cBhTN6nn)7~W>54U)%-F_-b?YKdfk5I8MHcuzBD5)!;yv#Z&R&^y=@=>VTIMy#r zX&U<=BsPkdqcMe<_}2+>H%XKyrr5ZR8_KVe>ZqYN z^=^~TFD};;rHJ$U;{~w^hYojl4hRI@SH$^K{YEo=sg)WY87r!*7blQK&qnpDo0`Vn zkl)9u9g=mCh&ZCJS(L4yN3k0kQ zuvg$h2KEEk51T+O0JQ+r0`R>g{jvqM0Mr6d3qUOZwE!?PI7HY@CE|dr sfw?Q;rAv?G4&^^8-z_>&sWXMxvD*gPOU4CBe-*@OtE+wfmVJNyHv)PfH~;_u literal 0 HcmV?d00001 diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/Default.png b/gst-sdk/tutorials/xcode iOS/Tutorial 2/Default.png new file mode 100644 index 0000000000000000000000000000000000000000..4c8ca6f693f96d511e9113c0eb59eec552354e42 GIT binary patch literal 6540 zcmeAS@N?(olHy`uVBq!ia0y~yU~~ZD2OMlbkt;o0To@QwR5G2N13aCb6#|O#(=u~X z85k@CTSM>X-wqM6>&y>YB4)1;;ojbLbbV-W^iFB1wa3^zCog^LCAReC4K0-?R_2{6 zrP*)4+_uWUy3w5N52M3PW_}MFMP9a~>YLvVZ1D_k*IMQ2QT^fwzoOb(*3gH$%aYWC zkHmcab=va2<#X%jakpJ;<1@F;k__#bwtC&%^D0v(FBh9K&$sK+<}2RJS609D)17$w ztdQP8(eLM8Ka}m_IQ@3wyMKP)l=oM4-?`YS_*P?4V_ORLPxsj&7Ju#kH;>6^Kp?T7~ zl+q?{UOOqV==?+d{=)5s|M~T1mwtH@+Z^$G&eEO9JNP^AX@3jZ*J*!!>lc|1-W%fA z@AOQpXZ_Lt>rxFXrGp*zLPiW@uo_c7C{As>j zWeX)wi+LTp_)@KYZCX{j;H?|1yXT4DnlS(Fr8gyP5|uaX_gLvaW0ScZdnG7o+u{T6 zFI-%d{ls*WuCDa5UJ@|RXv&ejZe}*BMkiWY51&pnRPw(hlykSzvj6e%mYz-GdvzBD zF10?szF_~!jS=?2HyQuPCvARXAe}C}WP|yQ*>5~~=*Nxq8+HHW1~FMDRCP^TcacKuk$ z(U#REVv)D!PhJ*ecH-ELFUrfyV&*)Z)>UCOuS?yd^L@Afk>ihynYPc{^CRwu+JHX+#$@YsC4c|l0tGigsn@jy) zXD($Ouk>H+V(Mr6NQT0S9BFM~V6nkj;1OBOz`zY;a|<&v%$g$sEJPk;hD4M^`1)8S z=jZArrsOB3>Q&?x097+E*i={nnYpPYi3%0DIeEoa6}C!X6;?ntNLXJ<0j#7X+g2&U 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 literal 0 HcmV?d00001 diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/GStreamerBackend.h b/gst-sdk/tutorials/xcode iOS/Tutorial 2/GStreamerBackend.h new file mode 100644 index 0000000000..a5bda8e81f --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/GStreamerBackend.h @@ -0,0 +1,18 @@ +#import +#import "GStreamerBackendDelegate.h" + +@interface GStreamerBackend : NSObject + +@property (nonatomic,assign) id delegate; + +-(NSString*) getGStreamerVersion; + +-(BOOL) initializePipeline; + +-(void) play; +-(void) pause; +-(void) stop; + + + +@end \ No newline at end of file diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/GStreamerBackend.m b/gst-sdk/tutorials/xcode iOS/Tutorial 2/GStreamerBackend.m new file mode 100644 index 0000000000..27bfaa08a6 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/GStreamerBackend.m @@ -0,0 +1,133 @@ +#import "GStreamerBackend.h" + +#include + +@interface GStreamerBackend() +-(void)notifyError:(gchar*) message; +-(void)notifyEos; +-(void) _poll_gst_bus; +@end + +@implementation GStreamerBackend { + GstElement *pipeline; +} + +@synthesize delegate; + +-(void) dealloc +{ + if (pipeline) { + gst_element_set_state(pipeline, GST_STATE_NULL); + gst_object_unref(pipeline); + pipeline = NULL; + } +} + +-(void)notifyError:(gchar*) message +{ + NSString *string = [NSString stringWithUTF8String:message]; + if(delegate && [delegate respondsToSelector:@selector(gstreamerError:from:)]) + { + [delegate gstreamerError:string from:self]; + } +} + +-(void)notifyEos +{ + if(delegate && [delegate respondsToSelector:@selector(gstreamerEosFrom)]) + { + [delegate gstreamerEosFrom:self]; + } +} + +-(void) _poll_gst_bus +{ + GstBus *bus; + GstMessage *msg; + + /* Wait until error or EOS */ + bus = gst_element_get_bus (self->pipeline); + msg = gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE, + (GstMessageType) (GST_MESSAGE_ERROR | GST_MESSAGE_EOS)); + gst_object_unref(bus); + + switch (GST_MESSAGE_TYPE(msg)) { + case GST_MESSAGE_EOS: + [self stop]; + [self notifyEos]; + NSLog(@"EOS"); + break; + case GST_MESSAGE_ERROR: { + GError *gerr = NULL; + gchar *debug; + + gst_message_parse_error(msg, &gerr, &debug); + + [self stop]; + NSLog(@"Error %s - %s", gerr->message, debug, nil); + [self notifyError:gerr->message]; + g_free(debug); + g_error_free(gerr); + } + break; + default: + break; + } +} + +-(BOOL) initializePipeline +{ + GError *error = NULL; + + if (pipeline) + return YES; + + 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 notifyError:message]; + g_free (message); + return NO; + } + + /* start the bus polling. This will the bus being continuously polled */ + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + while (1) { + [self _poll_gst_bus]; + } + }); + + return YES; +} + +-(void) play +{ + if(gst_element_set_state(pipeline, GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { + [self notifyError:"Failed to set pipeline to playing"]; + } +} + +-(void) pause +{ + if(gst_element_set_state(pipeline, GST_STATE_PAUSED) == GST_STATE_CHANGE_FAILURE) { + [self notifyError:"Failed to set pipeline to paused"]; + } +} + +-(void) stop +{ + if(pipeline) + gst_element_set_state(pipeline, GST_STATE_NULL); +} + +-(NSString*) getGStreamerVersion +{ + char *str = gst_version_string(); + NSString *version = [NSString stringWithUTF8String:str]; + g_free(str); + return version; +} + +@end + diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/GStreamerBackendDelegate.h b/gst-sdk/tutorials/xcode iOS/Tutorial 2/GStreamerBackendDelegate.h new file mode 100644 index 0000000000..2414408f7a --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/GStreamerBackendDelegate.h @@ -0,0 +1,9 @@ +#import + +@protocol GStreamerBackendDelegate + +@optional +-(void) gstreamerError:(NSString *)message from:(id)sender; +-(void) gstreamerEosFrom:(id)sender; + +@end diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial 2-Info.plist b/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial 2-Info.plist new file mode 100644 index 0000000000..7a9f934c70 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial 2-Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + gstreamer-sdk.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIMainStoryboardFile + MainStoryboard_iPhone + UIMainStoryboardFile~ipad + MainStoryboard_iPad + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial 2-Prefix.pch b/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial 2-Prefix.pch new file mode 100644 index 0000000000..69d145980a --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial 2-Prefix.pch @@ -0,0 +1,14 @@ +// +// Prefix header for all source files of the 'Tutorial 2' target in the 'Tutorial 2' project +// + +#import + +#ifndef __IPHONE_5_0 +#warning "This project uses features only available in iOS SDK 5.0 and later." +#endif + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial2-Info.plist b/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial2-Info.plist new file mode 100644 index 0000000000..91c26b9aa1 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial2-Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + gstsdk.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIMainStoryboardFile + MainStoryboard_iPhone + UIMainStoryboardFile~ipad + MainStoryboard_iPad + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/ViewController.h b/gst-sdk/tutorials/xcode iOS/Tutorial 2/ViewController.h new file mode 100644 index 0000000000..df3a6f7bba --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/ViewController.h @@ -0,0 +1,14 @@ +#import +#import "GStreamerBackendDelegate.h" + +@interface ViewController : UIViewController { +} + +-(IBAction) play:(id)sender; +-(IBAction) pause:(id)sender; + +/* From GStreamerBackendDelegate */ +-(void) gstreamerError:(NSString *)message from:(id)sender; +-(void) gstreamerEosFrom:(id)sender; + +@end diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/ViewController.m b/gst-sdk/tutorials/xcode iOS/Tutorial 2/ViewController.m new file mode 100644 index 0000000000..f477537ec0 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/ViewController.m @@ -0,0 +1,67 @@ +#import "ViewController.h" +#import "GStreamerBackend.h" +#import + +@interface ViewController () { + GStreamerBackend *gst_backend; +} + +@end + +@implementation ViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; + // Do any additional setup after loading the view, typically from a nib. + + gst_backend = [[GStreamerBackend alloc] init]; + + if (![gst_backend initializePipeline]) { + + } + gst_backend.delegate = self; +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +-(IBAction) play:(id)sender +{ + [gst_backend play]; +} + +-(IBAction) pause:(id)sender +{ + [gst_backend pause]; +} + +-(void) gstreamerError:(NSString *)message from:(id)sender +{ + NSLog(@"Error %@", message, nil); + + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"GStreamer error" + message:message + delegate:nil + cancelButtonTitle:@"OK" + otherButtonTitles:nil]; + dispatch_async(dispatch_get_main_queue(), ^{ + /* make sure it runs from the main thread */ + [alert show]; + }); +} + +-(void) gstreamerEosFrom:(id)sender +{ + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"EOS" message:@"End of stream" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; + + dispatch_async(dispatch_get_main_queue(), ^{ + /* make sure it runs from the main thread */ + [alert show]; + }); +} + +@end diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/en.lproj/InfoPlist.strings b/gst-sdk/tutorials/xcode iOS/Tutorial 2/en.lproj/InfoPlist.strings new file mode 100644 index 0000000000..477b28ff8f --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/en.lproj/MainStoryboard_iPad.storyboard b/gst-sdk/tutorials/xcode iOS/Tutorial 2/en.lproj/MainStoryboard_iPad.storyboard new file mode 100644 index 0000000000..54dcba87f3 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/en.lproj/MainStoryboard_iPad.storyboard @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/en.lproj/MainStoryboard_iPhone.storyboard b/gst-sdk/tutorials/xcode iOS/Tutorial 2/en.lproj/MainStoryboard_iPhone.storyboard new file mode 100644 index 0000000000..fc46a36e59 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/en.lproj/MainStoryboard_iPhone.storyboard @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/gst_ios_init.c b/gst-sdk/tutorials/xcode iOS/Tutorial 2/gst_ios_init.c new file mode 100644 index 0000000000..cffa57e65c --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/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 2/gst_ios_init.h b/gst-sdk/tutorials/xcode iOS/Tutorial 2/gst_ios_init.h new file mode 100644 index 0000000000..7b8e0133d7 --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/gst_ios_init.h @@ -0,0 +1,25 @@ +#ifndef __GST_IOS_INIT_H__ +#define __GST_IOS_INIT_H__ + +#include + +/* 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 2/main.m b/gst-sdk/tutorials/xcode iOS/Tutorial 2/main.m new file mode 100644 index 0000000000..3ca35079fb --- /dev/null +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/main.m @@ -0,0 +1,13 @@ + +#import + +#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])); + } +} From d9f972d437e10e64e0642224ecb09a09dc945c83 Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Tue, 30 Apr 2013 13:13:08 +0200 Subject: [PATCH 07/10] gitignore OS and xcode-generated files --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8adfbc1f03..aa6d3f9950 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,6 @@ obj .cproject gst-build project.properties -gst_sdk \ No newline at end of file +gst_sdk +.DS_Store +xcuserdata From 5b8c59e1909845ee72c758f4221d4ec4b94f6b34 Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Tue, 30 Apr 2013 13:59:04 +0200 Subject: [PATCH 08/10] Add App Icon for Tutorial 1 --- .../project.pbxproj | 26 ++++++++++++++++-- .../Tutorial 1/Images/appicon-1-iPad.png | Bin 0 -> 6622 bytes .../Tutorial 1/Images/appicon-1-iPad@2x.png | Bin 0 -> 16934 bytes .../Tutorial 1/Images/appicon-1-iPhone.png | Bin 0 -> 5207 bytes .../Tutorial 1/Images/appicon-1-iPhone@2x.png | Bin 0 -> 12104 bytes .../Tutorial 1/Tutorial 1-Info.plist | 13 +++++++++ 6 files changed, 37 insertions(+), 2 deletions(-) create mode 100755 gst-sdk/tutorials/xcode iOS/Tutorial 1/Images/appicon-1-iPad.png create mode 100755 gst-sdk/tutorials/xcode iOS/Tutorial 1/Images/appicon-1-iPad@2x.png create mode 100755 gst-sdk/tutorials/xcode iOS/Tutorial 1/Images/appicon-1-iPhone.png create mode 100755 gst-sdk/tutorials/xcode iOS/Tutorial 1/Images/appicon-1-iPhone@2x.png 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 e877b1dd2c..901c735496 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 @@ -15,7 +15,6 @@ C67B40DB172EBEA3008359CC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B40DA172EBEA3008359CC /* main.m */; }; C67B40DF172EBEA3008359CC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B40DE172EBEA3008359CC /* AppDelegate.m */; }; C67B40E1172EBEA3008359CC /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B40E0172EBEA3008359CC /* Default.png */; }; - C67B40E3172EBEA3008359CC /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B40E2172EBEA3008359CC /* Default@2x.png */; }; C67B40E5172EBEA3008359CC /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B40E4172EBEA3008359CC /* Default-568h@2x.png */; }; C67B40E8172EBEA3008359CC /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C67B40E6172EBEA3008359CC /* MainStoryboard_iPhone.storyboard */; }; C67B40EB172EBEA3008359CC /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C67B40E9172EBEA3008359CC /* MainStoryboard_iPad.storyboard */; }; @@ -37,6 +36,10 @@ C67B411E172FC7F5008359CC /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B411D172FC7F5008359CC /* ViewController.m */; }; C67B412A172FC85D008359CC /* gst_ios_init.c in Sources */ = {isa = PBXBuildFile; fileRef = C67B4128172FC85D008359CC /* gst_ios_init.c */; }; C67B412E172FCC4C008359CC /* GStreamerBackend.m in Sources */ = {isa = PBXBuildFile; fileRef = C67B412C172FCC4C008359CC /* GStreamerBackend.m */; }; + C67B4134172FE4E9008359CC /* appicon-1-iPad.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4130172FE4E9008359CC /* appicon-1-iPad.png */; }; + C67B4135172FE4E9008359CC /* appicon-1-iPad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4131172FE4E9008359CC /* appicon-1-iPad@2x.png */; }; + C67B4136172FE4E9008359CC /* appicon-1-iPhone.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4132172FE4E9008359CC /* appicon-1-iPhone.png */; }; + C67B4137172FE4E9008359CC /* appicon-1-iPhone@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4133172FE4E9008359CC /* appicon-1-iPhone@2x.png */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -81,6 +84,10 @@ C67B412B172FCC4C008359CC /* GStreamerBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GStreamerBackend.h; sourceTree = ""; }; C67B412C172FCC4C008359CC /* GStreamerBackend.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GStreamerBackend.m; sourceTree = ""; }; C67B412D172FCC4C008359CC /* GStreamerBackendDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GStreamerBackendDelegate.h; sourceTree = ""; }; + C67B4130172FE4E9008359CC /* appicon-1-iPad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-1-iPad.png"; sourceTree = ""; }; + C67B4131172FE4E9008359CC /* appicon-1-iPad@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-1-iPad@2x.png"; sourceTree = ""; }; + C67B4132172FE4E9008359CC /* appicon-1-iPhone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-1-iPhone.png"; sourceTree = ""; }; + C67B4133172FE4E9008359CC /* appicon-1-iPhone@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-1-iPhone@2x.png"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -142,6 +149,7 @@ C67B40D4172EBEA3008359CC /* Tutorial 1 */ = { isa = PBXGroup; children = ( + C67B412F172FE4E9008359CC /* Images */, C67B40F8172EC27D008359CC /* GStreamerBackend.h */, C67B40F9172EC27D008359CC /* GStreamerBackend.m */, C67B40DD172EBEA3008359CC /* AppDelegate.h */, @@ -204,6 +212,17 @@ name = "Supporting Files"; sourceTree = ""; }; + C67B412F172FE4E9008359CC /* Images */ = { + isa = PBXGroup; + children = ( + C67B4130172FE4E9008359CC /* appicon-1-iPad.png */, + C67B4131172FE4E9008359CC /* appicon-1-iPad@2x.png */, + C67B4132172FE4E9008359CC /* appicon-1-iPhone.png */, + C67B4133172FE4E9008359CC /* appicon-1-iPhone@2x.png */, + ); + path = Images; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -274,10 +293,13 @@ files = ( C67B40D9172EBEA3008359CC /* InfoPlist.strings in Resources */, C67B40E1172EBEA3008359CC /* Default.png in Resources */, - C67B40E3172EBEA3008359CC /* Default@2x.png in Resources */, C67B40E5172EBEA3008359CC /* Default-568h@2x.png in Resources */, C67B40E8172EBEA3008359CC /* MainStoryboard_iPhone.storyboard in Resources */, C67B40EB172EBEA3008359CC /* MainStoryboard_iPad.storyboard in Resources */, + C67B4134172FE4E9008359CC /* appicon-1-iPad.png in Resources */, + C67B4135172FE4E9008359CC /* appicon-1-iPad@2x.png in Resources */, + C67B4136172FE4E9008359CC /* appicon-1-iPhone.png in Resources */, + C67B4137172FE4E9008359CC /* appicon-1-iPhone@2x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/Images/appicon-1-iPad.png b/gst-sdk/tutorials/xcode iOS/Tutorial 1/Images/appicon-1-iPad.png new file mode 100755 index 0000000000000000000000000000000000000000..a1d317764f6229ba4094442cae4850503dd633e8 GIT binary patch literal 6622 zcmbVRXEdDcx*ol^=p~HanbC>fdmk;Lj}pd=K@6e>iQZeZPwzsAkPy8N5500qWxBDaW?|v4aih<|M~vF0KdCL#RMq-82J`P?G?C zQ^x>zM`O6Fbx4C-SKM8P~fy=72xZ2!C_ET3YiOQ-dkH~re@`EKl%S_K``;Q= zq27*2H-wKH+!OdmqrC&%*GG=+p6NebfFbns{;k;4`(J^&51BB^9w7`C0tv%lfBgD~ zw6~8j^uKBRM`>?Ue*{$680ro8MLOQ+!ehV(*~}cl3op zJ$gy?yLG9ie~Qb-TCwFRbeSiIq`7 zLhXIvNK-i6?_3GV0pCprK0RTYYKdj@qwnh<=+QCJ2kNpWN}ih=@($NG|Cj&}MKHpb?Dee)S$S9S+KR z5?_>cm$)2!2<*4eX4GS7vw9wRyX=0()?$*|V>`k)Y?J3h-xDkQIY+;I_3*pbd?k8z zGUvC+=i?h7KF@2p7kvaL<4@o5r4yduwRb*jhOw})JW5~>j?4hY^uDntKk!_dpbfc< zX1NF@V*qaWabblI^ljPCg=#<`N`@Cyv^bN*(prpTtS^EE&`%|D4yaDZYztZb5(Vf4 z_Y1VAj%kL`J7`Xy9&dhDu~j5!`L=WV%+HTyf1l+%0D%*b-5$zHC*qSy{0I|tK!9+* z)&@n#Vk(d;8cf`|~q^egP%}fTI)F%1$JEt|R1b%G@@xt4I2pPv>pobvBQ3;-;`Q z;0s{4I8i>}YVUns3C4NE#X9eRi0M!uLPj7XKlW;qj+2=+qSSN{m4G9i0$yWX=S`7I zY46rysEAiDHmaUl2-q2Y6LK>ZOKTg-uN)-}LXj?E9)>D(E=n#2Of)Esw$Nw3J*RfH zY~k@7Gbu#$5LA6VSZ1f8lnRWLGRTVa{=j`FLtg6no(Laf;p6@%b`v*W7)*>ItfpHH zv+=!IEe2o9_P5%{sfXBO7%urgEp5Fqr59;dY%lnQ?$UG{yQgLtOS^EGr*`JvhSLufh8dgfCQCfrUQlJz zOmEMTr5HMO-Eyu57$&eId+29c#!GOI+| zY~!a=Q*3<%maoG!Ur936u_wNK`v`1kT3k}dAL=stmwQH=gRu_x>lms?O}^F6B|{5c zOGSswK8=Z`)O_0=`RmhhG_;Q>wZg&jrH01N&W<$=z*@o0Ypn9I)Tw1cDi0JbGB0KD zuoshMma>nT-{?EArgABxsBZfxiub+V5;a)7sM;chQhj{Q#JSNxipsjYWS*n8jKh6v zT7xKRAf8g$^XG4`N4UeP7luSROs!!hv~(5{QaJQ9(_Od5UrbFjj-OMi@$-0AJ3&$< ziJ_44&gv>YH@-44aK(_v6A5Bex$>da6Pe8+w9lKR_^hvDS2npuZWG;1mfyn&t_tiMZC4il>V$8K(x&v%5!9F(6qlc{8wbzd@l-WdP;0;l z3dSe(^f2ti)kInb_?s?WaJ;qAfj9n%{G+f zfV_xwiIin|8TKHGT-lVuy`d%k%WFP(Rlwt9M#9>`2d)Zry$WO@87o8EJ#WcCEX^gK zSakN>gf#7efE?-%RXjIZ*G_AsWoL+yHher_DBW5#4;?+exuta%c2W)hj~KRT-dba= zRAb2-w4G5`VUG8sO&9smRHchb?q6yNxMjL^Vs^+Rc7B=W;zGuc@)l&C%B(FW4qT7fFgIyLNeyse>jYakzw7y`2WQpK+TA+4;Em zx<$0V_k8h&;jnW_HKaM>TzMaX`sw$VU9#;gxu{i9JhWY1VTY8z`n?)&c2}D#={r5_ zD5R3ib}{$xa~x&St$o=O=AjzLZ80X(&AYA&(=>FDkL@#(IRkIK#7Gj=*%zBt7NfB= zG@j{rnd!odncx4^Ex%|A)l`-7x5IR$>2W^X^;V;XFrM|f-yBaTa0GSCwjY<{1>yxd z4xGvfvnx10aOUDE6hvQslfL>&FLJUfQu5ZOkUr%)h#Ne39JV%p9o2sGb@_Lz0khoi zrJF~7`wD>bTo=mD{zF=wgb-bp?#B20XGS)zYwNo>qHg zhDadv-nF!B@*lfA^W)B}BkA4>S@hrRxx2pXnkfG(*7u31E_*~}CpC;o8~j%oZO;h) zDiDE1r5ws$ZE@-A=N?p_Xk65|{?jYLkqGB}rWEYi{Nl}X*wNm8oRjb7Li=Nd--p~} zEZx3OrfaRz8U07B-G1_Z627v#pi+U5KvM7%pRrMW2vay|PnLXF{#Es7)F#qP*2cMP zyIWOFeg@!jNE^8kay+|mnp2FPK08wg+ElpRxj!qKV6$SQR_(aX51aCP9)b>%AGX_D zjaFHWo9ZQt=lfu*Xolv*aqq40R;1WnJ52^o<}m9)%mrNs`*+B_ z3LKFhC)N;~-!XoN!)rg$ooQtIêLI%}@w6x#AJrJEzyQ%hxq?RPvF!$PqLWu9E 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 X)nXw1aLnAFKQ3Bo`l@xxcH#d8sX-I@ literal 0 HcmV?d00001 diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/Images/appicon-1-iPad@2x.png b/gst-sdk/tutorials/xcode iOS/Tutorial 1/Images/appicon-1-iPad@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..d76e88777b98156f8a38ac2a5aa7b4e27d7cf155 GIT binary patch literal 16934 zcmbTdWmFwOw+;#ZwefQ1$cxz^@ z>9wk>x_evg+9kbfSB#31GzuaiA^-qDk(H59`^=O7li(pg@77cv7oQn{yQH=|$jQ>( z%f!_JAZqSpYC$IJU}9yVW?^FP<1%I;002Ol+o)^1Ybz@7nK?NyoBRic+1tVS6B_^! z5cYO9F|)I9Co{FMvT+ooxajGpAhR(Sq|oA21S&dtA@p%hU{1;um&+>m>vrv%z7l^x^AjN+RrLCw!Chp{FLB`1p zWHJMC0m-;nnOWI6xVgC*$=HCbKo%ey3o9EFD>olI8y^rz_P;KQPj0T}mV9awQvZwB z=aV3XwY$4B9}A0@mlv}aJF}Ck6$>jbFYkY7u(2_HLNK}cIJ%p7Gda3Z{tpES3pX=Y z8)tVLCr7gXP&6@h@^BZV_>}a&tKi_QsQAALJG%WZMSZG_#oNT0g_Rk|;^6R~di@u) zo4cCD|1HM<5!y}N$Jv5K&BD#e!`1AwJuE5z2l-QX|L=_c1NbQopR%jXXQPKKL6BpyWMgIJ<=~VMV`Y^DvT=xuiiu194~_p5 zuDGZ;P>h>POjLqb;uD39SDcGooQ;#4lS7nULQ;(Le{f|T-P}za%`E0fNf<|HOb7`}4G{L~)c3!p zZ1nVyF#}OO+m408Ph-k-W$iqS6V1e<7)R4X;D5ZtvyBsBr|6$MNfK z-+o_IMH@VemrIDC?{AudS+3i9LqW1Br8bBKs@P=*A(^pm0%Je>u|M|U5`)8xBLCeu zQOBWrgFSmT?YRzeMC{hq$K9SVT{)=PE*b6tQ9>ZTG*Rvr$RF2y6Fa6cm65Dmi4No9 zo`rys<|;{Qv3A$2#_yfBkL1R?UXQ3*48ul}(w4+36=`cGXY`XE*0hOcov3CqSwahG zI4ZzI)O37aYV{TyRU{n$!L>DAbm&W%OU`D!3?j_9elAj>M_BnjD9};%ss{kj&7e#r z1KGA4>l+rkTFd#nSkB}Gy@qFy))oC9*0Mj&4`gGHgGx3&IakK#;Y81^5 zkd;-gn^GwqwMxop0MOCiZcGJ0!51Y$ePX*j9UL5-o}T{m=Z`TkeoqFO!m2i1mi91* z4DLNi9G29g-(^G5n;sf&A*1vfHa$*mn(~NKiS4U*V+YTMj0w%R#gt45dGa>Q{?#wK zbl_6>p+W+aw+yCwPPLJCOB@#-}+Jsxu3>gkp3g?~f5>uUK0Q3|lFounNkW)#^6I$Rbd<#vg^($|OgL@dKkEXBT2L*L8{m6c+3XmaK9J28zg2DqB47OXY zA6$k&(eHHLS+y#FX$HG6XF*c}7n~vKhm3)R?Ap-sr7#kSasleRLC?n(J7d4Cu_HnF zBD}wY8Q!0l`$sM!SHE@=VRa)LXUhyFqgR{O&h@7Z%MUBRX=JJ$(AqMrwNx8|{Ohv3 zqf?2j)6dkqe{+c6%x2|(ZB-vouR?>1rZe_ZQxijbd3!&Y$P9W}--5Jk`0?sWX1qt4 zY$ayAFG2#mP7!Q|Y-`p@|ARlwO^wH52u%;0+ci7x*5kj#=FFCtD}lHj7{sskZs!VB|0?f5gSggoFgr*KIgw)oR^K1ZV&S3J?SXO?00W z^lG;7H(9tqIEduuo(j=pfU`$X(1%grGw3n=BDft;y0>Tcc=z`&e71OGd7ZZEx@NlH z-5Yh6b#=h zq_~qcSeMj(FSLA2zpYR`qC|J^s%HH@7z*p+QRU+I4}(|#nkyIu7E4I9nw$&xi`#Jn zzz5a-wT-D0B7?Z|6?=gNAa0-UbFcHb?hMRQsCcvxu@ZheRxY6nHwr03l?LyaEQ=FjLhaIDEvQ281)^YNJU5v&846)PF= zkp^P~7L0GGt_~d+rsSz#UVdBCq4}s*Qh3txNIO_=vJKOS|t$=K?bW-4#7%fMXcrQG|gp`HC^qN=Tp=EGX)n_a*0Jq(?nv`R{s`u zg-Lw=`~kUHc`4H|1*=1sqC)e9>0BwPO)8ex(7EvvHmG{lz2e5!{z}R)L1-W76T_Ot zA%;vAqxXuSXIkE4Fr7VDwkna!K)1X>THuP`!2SKdb!RN&NIa9@z?`DUR22iRvESe5 z#*0cTRmQ00J(%n@#ugUXs03Q#4w|(nt?QZT@2OS`%fD9MlsCivYLQ~Q+il8>-{fFy zR1HuY_VHmoJnFI-^<-%6`PTch66CI60FI&l(LSD!lBvRJ(ga*_?zoOqUOj+01U}fv+K*eHX38tRq_9 zvzXBRI}l$w*9vjVA#|UT{3W`YM|8biG9ZeJsAfkOC5g+R=2%ZLshjJyE<84Dv>$Dj zu;PhldPFu+*d!aoWjG~7s*_{Z?TFbr61Bhzoy^6>wQT^v-i~GIe|0^sHvhZm1|)%2QR{_VJvlUR3yae@;P-(i$K zS5bsJ#KA+*kJ@>Oa9V0!$F4gVG~WW5>C4;(%_XA-W9%J@2NN5tFSp9!7Ae~&taL$I z;gz`i^0tso!e`$+^FBo7o+`Z4P{``pW5Cf9CiK@Qe;|(X;8!K4$aZO!eoy&wg&iMaNJ1me3g;?$r`CI_Q2z)uipg z=IxPrjYUE#$~zC0n-MTD_Q$sS3uHxx9h8#)DoBRWldu=+54ff3XmvBAx6i!5$g6;a zui!!=$RGUz1^gC1iB*}cgPLhE(My6(P}>F@_PN$3EE(QIRmDeoReavoxOBNIgb_P7 z#IqEpu;HLSs@-ZM9sY$ zSas~qQS8{$aX|Z-uF`^tg-&U75_}%~dgI@-Su9U%*JT#uO8dhlX`oTl-(#F(F^d3C z7P$Bm8ipQnK!#T?!iO{ma83XEdwjNr!<_k8nF>!f&Gp$1rCJVdSmVh*bmT4pOf5Ui z5ruM%pWu9wC>@AhoP(>*kz^qR_CP~mtT_($Z{~*bs@Z{1lF#3~>av75A#JNx#SB^t zX>?%WpMrHpz7IMF**e2Nc^=}20>GR)7z`??_SCkv^k=uUx~fM?Pt`gyk}}0Z<2uDGi=5@S=YxAqG?cXQxm03HM@Nmpin&9!qb|Dlxtv=NmBFP; z0dQ2fv#EAwxpxIf6(?+oU{AJ*DmgFhWD^+~j7|Mm!BPG4!dPo1AA18t9GjyEGaJ{O zQ?7H@PZlHr6rtLsJK8NcRqug|r3U}vqc`HrtoW{Wvtl!^t~Zpi9(Q(7)AklT&+?I| z4)UB_bA9unCTCkDp_U4WOS6;3z*{v>I&9>v`_5yhCvvT@jo|YzwABOpqSb{)HFMSqTT33>>0!Byr~{)d7)3BoLs|!LGtFJENE~aP6C}wH8{l zpaB=i>yz$8CpTL^D$u-^vXw@LSsyWMvCRk}J8CT?KJ$|*b7ddqRGkHL&ZYH;^!xA5 zExydhyzjqMf9Rw{Dm>3m?&JRq-GuRtI);N>N)YFlz3K_c3Z?R7>+6oPS#>2Eu$lLo zfhH+zJK+^EDQsTnVWp!?8Z_x^#>J3`*D*}pS78-bsd7;(RXG;cbu;% zNp=B>>#mGni%Bv|G$W@#U2Sok!9^Y;=Czg^dGxL-2jWmJ5ctX|WS)HYXbn~wq|ci+ zC3yToeCN*Tl~RgY=yITeXn>1!5zeS#hOYiWiI{{%aB3#vk~Gh$-MZ&Y6L-Kx{6(EF zbF$WQQ$Wb0Sww2AwxKJpI=mfq>xk=QvQAVbf~nlE^21ljlHAB3X6P7O%E-2(>I;Rv zSLbY69s8sQy^??|R1pV&p4`8cdp28>d}M)~!`%;AWTrJ8R5H~Jq-35H#|)oJxyuN~ zVGZnAES0&8i@~GVi8i-RN01z;a&BoS#_!f_sFtPS>d3Ll3gD|Ar&#;$F8i(n(ggae zEQI}7hmj$gjFRJhYM!bu5v2Xb@wS8+A8`+IMiVw*EJBasNNj%G2ZW22wm-xVQ1XFQ zS+)2j4nEYcH(R$0PSx68@W_R2>>DMaoxd_~W>~B#90_pF>ppP+TC6DW<-p2$L@+G( zuQ6WQ`_@AdX1}O2^aSK?kW#(O*OFS!b0i_iyS)cc=*O9hnXXAj(cLOhX(oqe*{?b0 z4m9hvw;gr^=BgPU^8qtViqXomsxiXc6qx(?nm+htktaKJRnifDp*E;U!!ngHfJHta zaU3I@{z&lj(uH%+U6@O^uxylzknA-+JoC}7D*-l|jK35HQ#1=jxu)9{Haa5Wm-BA= zWQ^M(v%272ZUG+=f*KlK6b}vJthOs$KH~%D`C%hB!lNADPTYS_n#-PCf)B@$_^6k&1l{fH}E;9Qcq!ouz*-)S!9`SEWb_0pBUCocf3N|5e zu{RE$dfx>f>V(-QzIRT!vQlVL4-jepA>X0QDnH}_+U;FiiU$x9lt)n1ya%!$QWUU& z^Eb>kHVHkJX+&w8dz&^V=Xqv|1r(b(OfOT1k(a*u*ke7)_9(5~rcetXKXzHQbg|W* z45&}Z&Y>5TtJlcAjIk+9&={T#ym|&>GdU<|&LDH=lX!4LbID>x!RTf9b*4hyFV8t4mIZ~>87%qJpb!m`K zD)@I>pfgpl>6!nhQOnnpCR_>wTBU8?mQCT|VLIa%jBA{ER)(H-j(xGFr8iq^TOn(} zUEQ&~6SbXQA&f%m{-w9`-O@khdi}0|7cME0Wu>RJECgBRzb%qc3t6?Vfh#YjEB)@B zepdtCjR!RLhtOQB8V-};L--8U(vp!?l5*;M{l4{O3&NuNIKm&gkIxT#@(lyQ(yHz} z_=dfKdnHN2u(>pQP2(pTMaFUPO!c^IDc_o@kSAp69k;K8kr-+i9aJAr36Sa*lM?yS zDjv=sX#1oU1ZS%)r(~YzU0da6v&yM)VTx_R_HH|wY!)j5Jqvqf-<%4P{`k}S?hzky z7p@ly2yCqTJ>c~}-p(sWg_)^IE$+zUNXGF%?&=tNBFKNok=^0V%X2g9exwo+{@Rpv zpt@{=+D^$RIIZMKzOkj_Nm5<(L6|A#!p@Sc!o8S*&4p!3*d}LW(F>I-R8E4rWIf{a zLFRJ`2f#;Wxa;a=nV&vgn4r z$ful?AT8wc(vYgPC1d0h7JZf%`0+Q+Zds_)|EWb;csLZt*8JN*Ow>2r{UM&7FD+Lb zXyUk*j94Me3$BdZ&ITkFEDQ#i`3nVC#fCqW)N>C^@~I2^_P-NDxC-5bQ4Rboa{0s0 zdOkyy9xLe;f(#P0X&VWe@{a(03z)BeI@uYIZg9g2X4RG!znS@7|?x%GBl z64>7$=l9nQ9XkJLbzne6kBo6F)r5<%G%Q;3Qn%fKS8>@1TEsIrajz%Akn%6IFa>hJe{J*UM|4? zYTsF4jdT!AxPz98*6`4VT&nzYIHOzsZ9$lbn@Q(ZT0P!-J|JNgy)%HF8@^)15<`9Q z>hZkxFt^+vb%7kaMJn|1y7loEWYp`c!Q>j3?S;-Epxh_~VI#;&{W&eN~=pBLl+@<2<7fVB=y)1_h>?T>2hr!k;%vPJG%@z_pjP=Ap7g>@%8 zaw>Ybelln4L1w!M7f6aeH{O~po}Vjie=Nn9qYUGSUe$ID*JW5!q?r!S!`9_wPMG2J zWk=XKH=8M$*9CjC+wG{MzxVZz--Sti8lOhU1xx~LhWpSS&%cM%K^NcLD+$+$Q*Xlw zw;Yn~g*EFJCbVRzTz#}XN$0h>)Gauq+Er|LR%@8NbS1Ceo*$d*{cZhT4lG2{?^Ic| z;OK9+buOH0*um-++KZc2u!z=OI%|Y5EF^6O4k(T~vYlU6(JIaq*qvhSw;NLK>T0RC zJ|I*yP-~M?sHR|}qJ%$YK7L$}(Q-TLH|#HC?p}eTg49xDZ@g*O{?U%I$_E>7l<##A z0yNy}HviZ|ZQZQpZ(S3Qj_9rijmL-Ks)*Y#aq9Kr{^jgh_8OCTFj=CBx0|q%gjyDF zQ$84=l3EQmt+V09%ERqW`cGJYW< ze!q&d>-WFN)DrH`j^+?tb-*Vah_O0OYk^t#QBvAZN{l>@(N;C@{AH?q{XV;S%cX~kHfRs74*T~ z-}U;E6hx|2vBrUYK$-JHQ{l-X>gu=Z23#wEz0eadW`vq;S2yB2f5G+Ie$*DAa^G0K zQlLCLq}8gm-kb0Tb^Uv02ro-;p_obQG-+f~HMJiiL$I?kra0GlN=z!1eK!Ogr}Z6i z5Oxx(CruQ2S9^Q&AHn{A%?XTWR7IqbhCFp%4!M3bdb+Y5)8*?&^KqG#mjl!~sQwp! zz)_?@kfWp0($cyp%;o`wB@+(>6{)?}q_eU3My?^Yf2?81iV5wemcDz=?%B`Ydk5T# z@dPmaCTffaBVWiF*8^E_@WvR0BhtnstD|ZR>z31$IQ^=YLSh(vcrN(K>3%^hSK8x? z9Wq~7tnTpiW1vkVr@Hl?U(e}U^{(4`gi0Z4a(ixjJ->{t5zL)y*Td`4Ne|-CF)E$Ja%kFQwdobo!H?bG7eChu&d=F zggL#@pME}TK%p(Jc7}wki-c!Iq_zGAp#fqN91Q8IJk!vzk%2`YI6GdS_snk7COhqe z+6}P0gIgt)dOQDP?%?xdj@U!*pChGnz}A(&)yFSB618=5$i}e2ZEv29_4OXFi$Cx0 zea~zu53t3y!Wm;jsH8uoMU;bae<5c91G$~~1I_Ao8n|A|g6)Du)I#q9!f-j{Y~%ZN z$+9h9C4XA(Kt|3D%CY4gc*}bYgr4Cr%0)4u{-c|oSNbEup1nZ6Q?v)<>wcK^ZHzM$ zoVdf2#cT{u(Fkj!hlCfl#u5SLdQN1*$w4Lq>geKvOLH?$Jp_ZwFaSynDE+6riXosK zjE~4V%U@^~T*;0z|ZwCs=~atzS(O!s=~-}exrAyD1+G^nTM_qnAr|o zbBy2oTB{?bNol@n~saZ5StJ(p zFf(zbs<_!xMSK^-s6o5wmFdhW*@g|CH`x$YcotDxpvZ9Y+Z=!xM$_Js+x7?;K*-Q+ ze_6CUG9s`p^SS&P?oy)^xyTRHSQPirH4WgYIl&;aB>P(F036jbbS1KsR!u1**!gKVN&UZsf; zBo$7g37i?BCBv>RggssKNS#UpJ-`C=4z|1!HB_pGytXY3!zyLxsFCeGb8VT6K&KZz zN&LL3ZABLhwrNwY>m}P@29x`|>#%J0ZY)ZcX@)|Jb5`Pujqtc>B#(!F&kmpBr~yJ~ zLgYG>#!#C;RD~|4*x26r9rMY2#-5HIrD&=srg~eXW&nEPt^6`0J6RQC=9*IaLwN06E&jVMSoAv#yJ@8YWl7XT)%u-XBCX5N4$y^&;OURsDwm4xI8QC97ANR^M|)SRLI zOb3o|tr=V|E^x%SZIxJIXwbY_IF~4Xjt+yL>d+-Sv4w8NRZ}-B20oz>^)6Q=&8s-W z%4eeQbDS4gX!E`{#CnffUlROQ^sqqpQ9B0I^>Y~^KjH^oIoVEEqf%CTQ~*N@wNOzHS;e(P(FQ$neL$?W_+)1-w&q2G=V>Ge zf~&Xg?22Ms@4&Yc&$4$~!xy3q9VWF=wRyBA4BlB78d@3sIV|APm(D*SRoaT~F%=v| z6mUc12>J|-n}!3iZ+DN08kbNXM}|J%`Y75>%q2>1OdvSFRYbp8oY~QQl>&N(#UOL3 z{d95 zqPYS?58HEhwJBq&M)Uw4KOei`V2qp2iAOHpl!eE#bOj|gRvjL?RwC)J3<{*JCJ|XI z`Li!r{YIp@8W}Xjo$YFUj@3p6AC;AebECCK@uW!%Nvr?n^31Z)Y}$>vxTjEg;uRTZ z%C2XLWht)@<7YgquZ1Ur**}arnHuU05Be8tdthdJHfVl6`0x)9hd6XJ2>NPf!;JYC zY0|pugmKD1E*cO^IxuPCe|Mo1%}{N&pmHT^z+^jBqoYI0t|@MELzGo|+p^uIYqPzc z)~g23AZo%mk(czfOLm`xkX9%+6*&+y1vv`L{_zjF0=ON!C}yrZ^!OwDthC&kt**m8 zH!DOoJv)#v=N*^m%lnAr$544&layuyiBZ5wp4$(?zmy~eLGMp+$8Zs=5H=Z@rc0^y z^(D5e>7m0!a5VHxmavv}I}(wmQ(0%JV`?xFkc#@Z~_TE2F=ilr# zyx5o*Ma~$h}@Kx8Zr;tlJ~W ziV6NX%6;I?Ae@%a)BfR9jw?gO=SC|_rUFb7k-i|l0MYFO|7g!B!;!B`7BIq{<8794 zul`)Al2eEq3RG^)=xLnshw%E*?PuiX<3u|5hwGD{RVdT`(cbUJw}&8)r|SbdBmWS+ z`YIC9Vtd}VO6Pu3K~~vS=5)HrTu2o~DPLm(%5kl( z-^ZTYkM7&K2dzKh$`mJrpA+h~U;pbci_qIyi;GT0kR@(2qY-pIU;WDgK%75y%8clr zy)ZvM=^F9GlmQd`HitlbE)BsD^3ZSp`{$*xAIACi&#Ypn{(F=BHBS94*EF-5gU_Cx zTLBN7TkrSR=jZj+;wB zvK#FY1!Wx$2sDM)#_RdkYHy)wZoStmc1&|W8Y<~z4-Ng*x_CSJOxJ5|pMfnVt`;ao{VV z&PUe47FERC;>o(xt>Kg7g~t9)=$*maa8TdNZ)wu1v5Cj>I?eSP!DQmOk;#tkm}W{< z57fY|>Eq1u#w^{J1&8w0=2W=+3I~EfLb!4%hqxsZUE(Gm>TnAJ%WK8cXc5_u#w+fv zf4y_9l4@t>u8sX4=QCSxQ%*ty&b(bbgSYVUHfa+%E<>Ibt0uY9KO!j$zA5!Mz)abF zdlP;?`mnv#WE{m|Fq(dHn0UYVI9OaR;O#Fo#;PbyaI5RT#H!QK}%13c#Zg`sbqEvD>3-x;*{onpT zi+1+FOj{3H{+8j<&d3dfp6_vj`AU-KIZfC*$%GA`4XH_z$bTS)pmX@lWgN5R`V>Bld2@WOKB44L(>Tlh!u zl$J1?K6b^Vz1$hmbx&O;FPlZ9)$5GqJj>C@oG&OMaZXDrjCSlPR*do@9@A!??(W!< z-x#v7&(pv&v%Jc=~%@!jtN#U-cUnhAK1 z9X;?h3a8tL=zu@fU3fnqln83E<6ieHLHUVopMR5~xwCQY@5ms@N*fD-7?m{~w~1Il z)s{y^F!8o{2m$N8-n(e*FlDrLU+*F9<&?6yw}w19KGM4QdFPwFj5;tyYL)A&`_5KF z_^}vZF1TA;@h^Zc_Bj>I@DQ@Ad(_SGXv_9<`Z34J)6lQ&W;eSZvLuuG_D$({tW5RgGn53F0Wq;3Yyi`t&2 zG_ON3=fsP@i1N#HTl_1%UN_UU{U47b2|1}_+VYC~d`9RiiQsXv+BX}|fuOmxD9XArE77j`yAJO>i4r7B6sK)| zxvD-@&4$`*er-nzE&c7{cPgSGW*TyK3Qzo|j3{UkN@`hA1XP2DtDGQ7kE*Jy6sR?h z_bBAKX+>D9;W7(2pysqi?c;3EeKGW+if)PyWfrCtp?V~!yJ<_Y~h?0NC)>FMk*S;MMQ%q8Ay`%+dl|Iw#fd{@Rj|erFL+QG0EO$j5dFOJn zaI#nL=DhsEWdk=~`1CGX&zi;%a!yvL3^j*2yW=N}Va)6{OW-D>AOf}m;UDu?;J9Un zRbM=Qq{Se0+#n;=?jrUIgfBW~g{6s6h5XhLMRG^ zrr%9$!>q-d7^7k+Y&tz8QV!qfwhH!B)hFoznCdb2%}DfHbKUd0yDAV$Tr)h+Ex58% zq^glN|9lI%&Y#a1;<~w<0msV#z-U1 z2O7fOSSJ?5SM2g3d^(XMuQ-k<3-;~F?&UCfR6{`X*CBUpx#!(IzOX;j=h18E7N$R5 z>!CbTkZWM<|FjpFPctv7H7>4WT5!qyOUu0Cdd^6f`exa&Xk#x3!{^lbLdGlft76Ya zPRvnZ&&Zl~a!*#8r*UXX6Fscc*aV&ljUAC45+2126Uh$mC|wkcxYoV}og4fTQa=5i zJZk(c+l`4-=UAm)9_ma%D25{%i#Y4NG+>dl{xMwamhzy_AVz7K*cX&FrCAu1z)$v9=5ds9G#*SxX|V`1MQ>X2FBu9;Vc z0zl9v9gWFsYw5$Fg?Le8{7nS@-=QC_<7 zjXqnr#vG71X&%A<`i98i1hTqVYlG}mcZ#~^H%ujfYxgl@oho-ofNKKl=`cw@i+66A z@wXuz_>doHaRsZm0pzMslCFcQ+xD|0a38V#N9h{j#I3u4lzU%|H>!he;gTk4!iCZj zPJ4@?%9@D{qvu2Ivitn=K8CuTha%z*S2e(2485;)u8675_F+K1Mzjj7#{$kG2Xh#4 zN>#AQ2JMz(<^Fwagp=`ZZ1e~xNW36p2#ggQ<($1)8KvTY|Fcz$lTf`6F3cPG;zFSly=#R7&GRGTWwiuju*prIG_*6*BK>Av7=IEh($sPxdB9h2Qr zn7K87cALEzUS$GzJl=9LxcCxN+_0#tuyH+#S#S#s+yV`=@Be(kDqV zx+$5*BzSN5dpr352wD-2M)hJE zJ+>xi_i*9B6u*0}GS7-%2C@U=2EJI-bd2`L0`OFy-1AVNaBofk^CqoscD^6J9E8Cn z_0soCeC86WyW413~y|OF!)*$Z99%2%K0f5QZBD*QqbPva|Dj>w`&rXTe^30K( zH@Kd_ipKPkSv8M@Zh8Sa2gX8dv z7x=2tl&68l-Ud^*gqH$6C8vc6R$&fKxvtQjpJehLje&b0n_#0R$98&bptc^o5Ydv| zTf8W)=F`m)CnyxG!{}tSrz8YB;C-g-oqPUg{NB-W9s@RIvO2Z~>l@sRRke-YlFV$a zaLUl9HnZb?;?`))$3}}A{Io=Ru0esLv4kzB0na+I&4kF3^atejy01-+O!*IO349NS z>lk}yV&eliI2t-eGnPb(YMCn~KqvHUQ_`wswf5}2o7`Ae&V7$qWw`r-VmvA7KyWzf zMry^c{A!MAZf1DPF|!NS^Zcmy@TMJ8b696*=dM|@;$bm~i&-HrO_^6&*+p&)HAuIJ zu*@5*1o)CM>gxqi*)32dGtKc!6bP?6TXQ= zvljT;LDs}kAnu^}cb?XswMpMkogi|_YkpY6MU@ab;Q(+cY7KXjZK(mRp8v<5%L=Qy zmO+>sss-C)_QaQM%|lNDK1=|$OXl$=TyK`Kt@+ouczzOY!mpjSkv~Uy+^)%T4V?^IWp)CMK2%cM(=9SD({JW9IRh8%F^ z)hpYlA+7c;@G6^by2sueKF*_veCKnB4`e|WRMgEU-lhhS&<7;?4z~^5&mHC)xjI^# z8+0L)EMO;GnWewV&-_Z1V4hd%lWb(r8;vDyS1q;tFbO`74SL#lWKd@BrXwCaP!{v- z`$nDUR#XqOXVZ7dBiVL-3h-&ruietmpkOBp@U^ay>VQH%Z4-Cr`k$9l-XD9VSns}z zD7&1Q`Nt#+)-sBGnsK+wJRd*#kjJo%f?T>)o9Yf<9U9sK%oo*|CDFdZUx#eAS+fGRa+U=Hrez+q_$pJ>JtbH)ebF|6N{L-em39jTFEx)Knf#tv88RI zj%b#iQk&|?D`YCu)*O)JFwv6&6!AO}&xSO&4h{~)4=)mDx6tq)%9|ktn{4X#Xg^&> zN8+u#`1?_QZrU8Y-gHGLo2lI@HwX`X5@YaRiU&VJDAsSz+r%5liS=+LQNbWlagW7D z+fA$+#MbHkphXRHxxa);5jhEko9|SJsV+pi!}kAKAxve&sl(Jdy1C6`j5LPois+^< zLdL@7`<_(I2!Cu~erX<2P18zv$S$LASP#R!aI!RUyCfqOK;D#E_acdt}$j2G6N}2#0ZAbeyN>y zWxamD#*Um>)9{MYku%&we^jffsS#lU;13k(=08bwX}d`DE#BXA&2D=O9G3Y*f5W*j zlfX=7Yt_5KP_H(|SPG^7XDk+lwz8SDEoTqMTd3jQ+F6HzCbKA^7@u|m^P~YI&$ZI_ z9awzMUP&-C~T<*;slUYNTj@wOYFxlqSbx zJXMe5yE2oy6q9B3_}1xOj8j|#=ZfkI7caRr>s+U>i{b9?ZzGTfZUBuJ{zv>16BDj~ z%y%37hhh2wcN&L;W;83(hwcvf#dT{o=+Lat_7YzX@ zJwBf{)U-%rA_o;T4dU#CTm*f*tO#pk1>@IJ!#mL1U~4AJ-!-uLh#3gjx)@L{;Xio%G;dV`zIOeiRduaVk~L`|vE4F7rqPFfGyUv(P@2+LR*v++r}&doXV47Ijc0a@pRY;r?fAp%tDo}{jKBK&`i{;-`TB#e*|MC zj;6|IG6x*-XR1$7Ig71(BF5pVF(#8E%A_0hzum6`_;H?+7=t2vOptpE*lf%&IV{RzufemT5w2r)`GAn4OMGFh9yXY z6+yxtNJzNz`r{*=-fW$$Foz$+vQh}Vn~N0%;pYTBf=M0i>-Q8^*Zzb?bY#qx4nJ7m zTFoU(F=ul+k-XVJ*Uc52n3lzY`hjRdreV5^`cn_ux9DaSxbHFzu_sRR@Pt!OTV3u5 zt%J^dFs;F>0q6jvglRh3PwF%&*6h2Ri z1-tqzidsZg*PpKF9RjR&MI+xyFfQNQP=r@g-7R*#pHm6dd#p~FJw2?ni{4pcgw-3Q-= zPD|a!j0 z%pP46f6+LCHY)^etiLJ49xl`o^twk{f-ZpxD=?c%b--I+SmZIQ2cTNe7Aep%ForYG*dp8)a3Jf0E?xE~Tf-II z#0DJzi}EbJw+kTU!G=OCNHM3rr$arbUg{T`PANnch=akbQQ65@DvdyOh7>hOW5}v( z(FSKgO+>@fB^b?Vt1n@?CH>&wvMbKd@1>`w2MC(|Mk86TGou=(QSHIH5LuO_Q)(HQ z-s@a(JnSK*UQn@iE%2OrLZM{abqa<1(NujZe8x0+k&u9r{52S2YtL99@_^-6_C?@B zPvic9Uk82UIMvSnqNCRwM^XB?BqXrQ;>&po%nD>4glzFGND{iy`=a>3ZkBWRkFO@= zg#MnbTc>3)`>VGEgA=#a#1N$XI;>+PDic088B`~V6ppi4|5zMLAAG?tz!iU41_YRn z0*amngB(m3CGlLLtusZ0jtXg1`O!|Nsq3QPpKDoe}eE!zVkO7%Ea{SF(NDrKGb)HU?=-OG9sW#H8ePFUj{oACAON}Y2 ztrkr=dD-R(QEg@cQF=!Vu?J=UZo_S6kPvUAI^4Fr4}5`D#0)v2CMvGd=}X6@;F+d? zTP`u($RRH(3Ee8GWxw9eDSz+U(DB@R0dWJ9auNrn6g;gSSiD+o6^DNdK~HYRrXt3V z&h-ODc~*mE>Yus?nkGz6I2;`6aJ&Htz5~Pw&L1+2bg$`KZ;Ocf>~Qtk(ud&Ez#FSZB>0-O(%l+I0=Oimb!q2P#|+NmgQ{nOQYJ-Y*FD%QkDmXz6!7x zv(UIdMJQQKpT&njZy4eF1>~SRp=7#6&7$fQrh}>ug9tCs*W4WHroQF6@WrWitL#&WQ$v`*Dx4$WCrobFCX$v+;i{(FOTI9H6Oq@oyCacK#KHArKV zu6#->HHh;)lkj_GiDdQaE`_PmRxI`bff$Sc7Ce$Rp*|z@O|3-;K9d<=TBRBn%Mik) zh%T%oRx;90RYz1=4Gld7xN;n%CI1lH6=etbDS-m2qSE>lzowkVY*WcJQ!3qrMcocs z)|Ac~<}6#f^p)k->|^$Mv^2zMoC2QaD+!`tEV>XfQIS`$B);D4W-#IWlTIGBI99M~ z1WF1ocGMY(I-a_jh$%z~;QZ_=w4T|D(O*lyCR(K3nkh(ypv1S505(N=T)66p{>uWg zm+c>bB*N%Cr8afA)GsadE!8r$r=n`Rh4<r44BKE<{kfzSgoytFBi$jbc*l&?S)4d0Yf-mkMH7iZC}VpCPdMq*N0J9ZTjl z*%0|o35$e}_MvVPsk|Bqin^F4LEVWh&n=7OWcQuz|60@pE$yYZ*3K;CozUHCtiYml oUwrD<%bzTKFBm(0sb`g7DB}qc_;^cl4(Q|tPgg&ebxsLQ0P)N|9smFU literal 0 HcmV?d00001 diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/Images/appicon-1-iPhone.png b/gst-sdk/tutorials/xcode iOS/Tutorial 1/Images/appicon-1-iPhone.png new file mode 100755 index 0000000000000000000000000000000000000000..775df1b911cf9c0cf18d0fe0a7eb46142433e24b GIT binary patch literal 5207 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 CFBundleExecutable ${EXECUTABLE_NAME} + CFBundleIcons + + CFBundlePrimaryIcon + + CFBundleIconFiles + + appicon-1-iPhone.png + appicon-1-iPhone@2x.png + appicon-1-iPad.png + appicon-1-iPad@2x.png + + + CFBundleIdentifier gstreamer-sdk.${PRODUCT_NAME:rfc1034identifier} CFBundleInfoDictionaryVersion From 2af9cdcce6bba34c05ee966c9a5a4f0d99d5a4c5 Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Tue, 30 Apr 2013 14:10:25 +0200 Subject: [PATCH 09/10] Add App Icons for Tutorial 2 --- .../project.pbxproj | 24 ++++++++++++++++++ .../Tutorial 2/Images/appicon-2-iPad.png | Bin 0 -> 6998 bytes .../Tutorial 2/Images/appicon-2-iPad@2x.png | Bin 0 -> 17933 bytes .../Tutorial 2/Images/appicon-2-iPhone.png | Bin 0 -> 5443 bytes .../Tutorial 2/Images/appicon-2-iPhone@2x.png | Bin 0 -> 12811 bytes .../Tutorial 2/Tutorial 2-Info.plist | 13 ++++++++++ 6 files changed, 37 insertions(+) create mode 100755 gst-sdk/tutorials/xcode iOS/Tutorial 2/Images/appicon-2-iPad.png create mode 100755 gst-sdk/tutorials/xcode iOS/Tutorial 2/Images/appicon-2-iPad@2x.png create mode 100755 gst-sdk/tutorials/xcode iOS/Tutorial 2/Images/appicon-2-iPhone.png create mode 100755 gst-sdk/tutorials/xcode iOS/Tutorial 2/Images/appicon-2-iPhone@2x.png 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 901c735496..249835f4eb 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 @@ -40,6 +40,10 @@ C67B4135172FE4E9008359CC /* appicon-1-iPad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4131172FE4E9008359CC /* appicon-1-iPad@2x.png */; }; C67B4136172FE4E9008359CC /* appicon-1-iPhone.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4132172FE4E9008359CC /* appicon-1-iPhone.png */; }; C67B4137172FE4E9008359CC /* appicon-1-iPhone@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4133172FE4E9008359CC /* appicon-1-iPhone@2x.png */; }; + C67B4145172FEA3C008359CC /* appicon-2-iPad.png in Resources */ = {isa = PBXBuildFile; fileRef = C67B4141172FEA3C008359CC /* appicon-2-iPad.png */; }; + 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 */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -88,6 +92,10 @@ C67B4131172FE4E9008359CC /* appicon-1-iPad@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-1-iPad@2x.png"; sourceTree = ""; }; C67B4132172FE4E9008359CC /* appicon-1-iPhone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-1-iPhone.png"; sourceTree = ""; }; C67B4133172FE4E9008359CC /* appicon-1-iPhone@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-1-iPhone@2x.png"; sourceTree = ""; }; + C67B4141172FEA3C008359CC /* appicon-2-iPad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-2-iPad.png"; sourceTree = ""; }; + C67B4142172FEA3C008359CC /* appicon-2-iPad@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-2-iPad@2x.png"; sourceTree = ""; }; + C67B4143172FEA3C008359CC /* appicon-2-iPhone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-2-iPhone.png"; sourceTree = ""; }; + C67B4144172FEA3C008359CC /* appicon-2-iPhone@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "appicon-2-iPhone@2x.png"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -182,6 +190,7 @@ C67B4104172FC7F4008359CC /* Tutorial 2 */ = { isa = PBXGroup; children = ( + C67B4140172FEA3C008359CC /* Images */, C67B412B172FCC4C008359CC /* GStreamerBackend.h */, C67B412C172FCC4C008359CC /* GStreamerBackend.m */, C67B410D172FC7F5008359CC /* AppDelegate.h */, @@ -223,6 +232,17 @@ path = Images; sourceTree = ""; }; + C67B4140172FEA3C008359CC /* Images */ = { + isa = PBXGroup; + children = ( + C67B4141172FEA3C008359CC /* appicon-2-iPad.png */, + C67B4142172FEA3C008359CC /* appicon-2-iPad@2x.png */, + C67B4143172FEA3C008359CC /* appicon-2-iPhone.png */, + C67B4144172FEA3C008359CC /* appicon-2-iPhone@2x.png */, + ); + path = Images; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -313,6 +333,10 @@ C67B4115172FC7F5008359CC /* Default-568h@2x.png in Resources */, C67B4118172FC7F5008359CC /* MainStoryboard_iPhone.storyboard in Resources */, C67B411B172FC7F5008359CC /* MainStoryboard_iPad.storyboard in Resources */, + C67B4145172FEA3C008359CC /* appicon-2-iPad.png in Resources */, + C67B4146172FEA3C008359CC /* appicon-2-iPad@2x.png in Resources */, + C67B4147172FEA3C008359CC /* appicon-2-iPhone.png in Resources */, + C67B4148172FEA3C008359CC /* appicon-2-iPhone@2x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/Images/appicon-2-iPad.png b/gst-sdk/tutorials/xcode iOS/Tutorial 2/Images/appicon-2-iPad.png new file mode 100755 index 0000000000000000000000000000000000000000..56f58fe31d6b329d1763816508a6b005a38de450 GIT binary patch literal 6998 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 l{h&Nr%&afElE=aaU!4?1j literal 0 HcmV?d00001 diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/Images/appicon-2-iPad@2x.png b/gst-sdk/tutorials/xcode iOS/Tutorial 2/Images/appicon-2-iPad@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..e2236f9b6659e3d0e35a4c9d9d0135b9a0121ef9 GIT binary patch literal 17933 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 X!YDVH=cM$X-!r7ezloKL7=Hg>1}_d2 literal 0 HcmV?d00001 diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial 2-Info.plist b/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial 2-Info.plist index 7a9f934c70..ee2efaec94 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial 2-Info.plist +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 2/Tutorial 2-Info.plist @@ -8,6 +8,19 @@ ${PRODUCT_NAME} CFBundleExecutable ${EXECUTABLE_NAME} + CFBundleIcons + + CFBundlePrimaryIcon + + CFBundleIconFiles + + appicon-2-iPad.png + appicon-2-iPad@2x.png + appicon-2-iPhone.png + appicon-2-iPhone@2x.png + + + CFBundleIdentifier gstreamer-sdk.${PRODUCT_NAME:rfc1034identifier} CFBundleInfoDictionaryVersion From 853b78cf381120861198cdff26c3a3ca2cd75e79 Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Thu, 2 May 2013 12:00:00 +0200 Subject: [PATCH 10/10] Whitespace --- gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m | 1 - 1 file changed, 1 deletion(-) diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m b/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m index a549513824..18a48d2e3a 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 1/GStreamerBackend.m @@ -4,7 +4,6 @@ @implementation GStreamerBackend - -(NSString*) getGStreamerVersion { char *str = gst_version_string();