diff --git a/playback/player/ios/GstPlay.xcodeproj/project.pbxproj b/playback/player/ios/GstPlay.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..14facf3dd9 --- /dev/null +++ b/playback/player/ios/GstPlay.xcodeproj/project.pbxproj @@ -0,0 +1,437 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + AD2B881F198D631B0070367B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD2B881E198D631B0070367B /* Foundation.framework */; }; + AD2B8821198D631B0070367B /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD2B8820198D631B0070367B /* CoreGraphics.framework */; }; + AD2B8823198D631B0070367B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD2B8822198D631B0070367B /* UIKit.framework */; }; + AD2B8825198D631B0070367B /* GStreamer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD2B8824198D631B0070367B /* GStreamer.framework */; }; + AD2B882B198D631B0070367B /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = AD2B8829198D631B0070367B /* InfoPlist.strings */; }; + AD2B882D198D631B0070367B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AD2B882C198D631B0070367B /* main.m */; }; + AD2B8831198D631B0070367B /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AD2B8830198D631B0070367B /* AppDelegate.m */; }; + AD2B8833198D631B0070367B /* fonts.conf in Resources */ = {isa = PBXBuildFile; fileRef = AD2B8832198D631B0070367B /* fonts.conf */; }; + AD2B8835198D631B0070367B /* Ubuntu-R.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AD2B8834198D631B0070367B /* Ubuntu-R.ttf */; }; + AD2B8837198D631B0070367B /* gst_ios_init.m in Sources */ = {isa = PBXBuildFile; fileRef = AD2B8836198D631B0070367B /* gst_ios_init.m */; }; + AD2B8858198D637A0070367B /* EaglUIVIew.m in Sources */ = {isa = PBXBuildFile; fileRef = AD2B8857198D637A0070367B /* EaglUIVIew.m */; }; + AD2B885B198D65470070367B /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AD2B8859198D65470070367B /* MainStoryboard_iPhone.storyboard */; }; + AD2B885C198D65470070367B /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AD2B885A198D65470070367B /* MainStoryboard_iPad.storyboard */; }; + AD2B8861198D65780070367B /* LibraryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AD2B885E198D65780070367B /* LibraryViewController.m */; }; + AD2B8862198D65780070367B /* VideoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AD2B8860198D65780070367B /* VideoViewController.m */; }; + AD2B886C198D69ED0070367B /* gstplayer.c in Sources */ = {isa = PBXBuildFile; fileRef = AD2B886A198D69ED0070367B /* gstplayer.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + AD2B881B198D631B0070367B /* GstPlay.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GstPlay.app; sourceTree = BUILT_PRODUCTS_DIR; }; + AD2B881E198D631B0070367B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + AD2B8820198D631B0070367B /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + AD2B8822198D631B0070367B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + AD2B8824198D631B0070367B /* GStreamer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GStreamer.framework; path = Library/Frameworks/GStreamer.framework; sourceTree = DEVELOPER_DIR; }; + AD2B8828198D631B0070367B /* GstPlay-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GstPlay-Info.plist"; sourceTree = ""; }; + AD2B882A198D631B0070367B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + AD2B882C198D631B0070367B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + AD2B882E198D631B0070367B /* GstPlay-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "GstPlay-Prefix.pch"; sourceTree = ""; }; + AD2B882F198D631B0070367B /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + AD2B8830198D631B0070367B /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + AD2B8832198D631B0070367B /* fonts.conf */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = fonts.conf; sourceTree = ""; }; + AD2B8834198D631B0070367B /* Ubuntu-R.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Ubuntu-R.ttf"; sourceTree = ""; }; + AD2B8836198D631B0070367B /* gst_ios_init.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = gst_ios_init.m; sourceTree = ""; }; + AD2B8838198D631B0070367B /* gst_ios_init.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gst_ios_init.h; sourceTree = ""; }; + AD2B8840198D631B0070367B /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + AD2B8856198D637A0070367B /* EaglUIVIew.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EaglUIVIew.h; sourceTree = ""; }; + AD2B8857198D637A0070367B /* EaglUIVIew.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EaglUIVIew.m; sourceTree = ""; }; + AD2B8859198D65470070367B /* MainStoryboard_iPhone.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MainStoryboard_iPhone.storyboard; sourceTree = ""; }; + AD2B885A198D65470070367B /* MainStoryboard_iPad.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MainStoryboard_iPad.storyboard; sourceTree = ""; }; + AD2B885D198D65780070367B /* LibraryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LibraryViewController.h; sourceTree = ""; }; + AD2B885E198D65780070367B /* LibraryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LibraryViewController.m; sourceTree = ""; }; + AD2B885F198D65780070367B /* VideoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoViewController.h; sourceTree = ""; }; + AD2B8860198D65780070367B /* VideoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoViewController.m; sourceTree = ""; }; + AD2B886A198D69ED0070367B /* gstplayer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gstplayer.c; sourceTree = ""; }; + AD2B886B198D69ED0070367B /* gstplayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gstplayer.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + AD2B8818198D631B0070367B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AD2B8821198D631B0070367B /* CoreGraphics.framework in Frameworks */, + AD2B8825198D631B0070367B /* GStreamer.framework in Frameworks */, + AD2B8823198D631B0070367B /* UIKit.framework in Frameworks */, + AD2B881F198D631B0070367B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + AD2B8812198D631B0070367B = { + isa = PBXGroup; + children = ( + AD2B8868198D69ED0070367B /* gst */, + AD2B8826198D631B0070367B /* GstPlay */, + AD2B881D198D631B0070367B /* Frameworks */, + AD2B881C198D631B0070367B /* Products */, + ); + sourceTree = ""; + }; + AD2B881C198D631B0070367B /* Products */ = { + isa = PBXGroup; + children = ( + AD2B881B198D631B0070367B /* GstPlay.app */, + ); + name = Products; + sourceTree = ""; + }; + AD2B881D198D631B0070367B /* Frameworks */ = { + isa = PBXGroup; + children = ( + AD2B881E198D631B0070367B /* Foundation.framework */, + AD2B8820198D631B0070367B /* CoreGraphics.framework */, + AD2B8822198D631B0070367B /* UIKit.framework */, + AD2B8824198D631B0070367B /* GStreamer.framework */, + AD2B8840198D631B0070367B /* XCTest.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + AD2B8826198D631B0070367B /* GstPlay */ = { + isa = PBXGroup; + children = ( + AD2B8856198D637A0070367B /* EaglUIVIew.h */, + AD2B8857198D637A0070367B /* EaglUIVIew.m */, + AD2B882F198D631B0070367B /* AppDelegate.h */, + AD2B8830198D631B0070367B /* AppDelegate.m */, + AD2B8859198D65470070367B /* MainStoryboard_iPhone.storyboard */, + AD2B885A198D65470070367B /* MainStoryboard_iPad.storyboard */, + AD2B885D198D65780070367B /* LibraryViewController.h */, + AD2B885E198D65780070367B /* LibraryViewController.m */, + AD2B885F198D65780070367B /* VideoViewController.h */, + AD2B8860198D65780070367B /* VideoViewController.m */, + AD2B8827198D631B0070367B /* Supporting Files */, + ); + path = GstPlay; + sourceTree = ""; + }; + AD2B8827198D631B0070367B /* Supporting Files */ = { + isa = PBXGroup; + children = ( + AD2B8828198D631B0070367B /* GstPlay-Info.plist */, + AD2B8829198D631B0070367B /* InfoPlist.strings */, + AD2B882C198D631B0070367B /* main.m */, + AD2B882E198D631B0070367B /* GstPlay-Prefix.pch */, + AD2B8832198D631B0070367B /* fonts.conf */, + AD2B8834198D631B0070367B /* Ubuntu-R.ttf */, + AD2B8836198D631B0070367B /* gst_ios_init.m */, + AD2B8838198D631B0070367B /* gst_ios_init.h */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + AD2B8868198D69ED0070367B /* gst */ = { + isa = PBXGroup; + children = ( + AD2B8869198D69ED0070367B /* player */, + ); + name = gst; + path = ../lib/gst; + sourceTree = ""; + }; + AD2B8869198D69ED0070367B /* player */ = { + isa = PBXGroup; + children = ( + AD2B886A198D69ED0070367B /* gstplayer.c */, + AD2B886B198D69ED0070367B /* gstplayer.h */, + ); + path = player; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + AD2B881A198D631B0070367B /* GstPlay */ = { + isa = PBXNativeTarget; + buildConfigurationList = AD2B8850198D631B0070367B /* Build configuration list for PBXNativeTarget "GstPlay" */; + buildPhases = ( + AD2B8817198D631B0070367B /* Sources */, + AD2B8818198D631B0070367B /* Frameworks */, + AD2B8819198D631B0070367B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = GstPlay; + productName = GstPlay; + productReference = AD2B881B198D631B0070367B /* GstPlay.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + AD2B8813198D631B0070367B /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0510; + ORGANIZATIONNAME = "Sebastian Dröge"; + }; + buildConfigurationList = AD2B8816198D631B0070367B /* Build configuration list for PBXProject "GstPlay" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = AD2B8812198D631B0070367B; + productRefGroup = AD2B881C198D631B0070367B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + AD2B881A198D631B0070367B /* GstPlay */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + AD2B8819198D631B0070367B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AD2B885C198D65470070367B /* MainStoryboard_iPad.storyboard in Resources */, + AD2B885B198D65470070367B /* MainStoryboard_iPhone.storyboard in Resources */, + AD2B8835198D631B0070367B /* Ubuntu-R.ttf in Resources */, + AD2B8833198D631B0070367B /* fonts.conf in Resources */, + AD2B882B198D631B0070367B /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + AD2B8817198D631B0070367B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AD2B8861198D65780070367B /* LibraryViewController.m in Sources */, + AD2B8831198D631B0070367B /* AppDelegate.m in Sources */, + AD2B8862198D65780070367B /* VideoViewController.m in Sources */, + AD2B8858198D637A0070367B /* EaglUIVIew.m in Sources */, + AD2B882D198D631B0070367B /* main.m in Sources */, + AD2B8837198D631B0070367B /* gst_ios_init.m in Sources */, + AD2B886C198D69ED0070367B /* gstplayer.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + AD2B8829198D631B0070367B /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + AD2B882A198D631B0070367B /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + AD2B884E198D631B0070367B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + AD2B884F198D631B0070367B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + AD2B8851198D631B0070367B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = armv7; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + FRAMEWORK_SEARCH_PATHS = ( + "~/Library/Developer/GStreamer/iPhone.sdk", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "GstPlay/GstPlay-Prefix.pch"; + HEADER_SEARCH_PATHS = ( + "\"~/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework/Headers\"", + ../lib, + ); + INFOPLIST_FILE = "GstPlay/GstPlay-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.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)"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + AD2B8852198D631B0070367B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = armv7; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + FRAMEWORK_SEARCH_PATHS = ( + "~/Library/Developer/GStreamer/iPhone.sdk", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "GstPlay/GstPlay-Prefix.pch"; + HEADER_SEARCH_PATHS = ( + "\"~/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework/Headers\"", + ../lib, + ); + INFOPLIST_FILE = "GstPlay/GstPlay-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.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)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + AD2B8816198D631B0070367B /* Build configuration list for PBXProject "GstPlay" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AD2B884E198D631B0070367B /* Debug */, + AD2B884F198D631B0070367B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + AD2B8850198D631B0070367B /* Build configuration list for PBXNativeTarget "GstPlay" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AD2B8851198D631B0070367B /* Debug */, + AD2B8852198D631B0070367B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = AD2B8813198D631B0070367B /* Project object */; +} diff --git a/playback/player/ios/GstPlay.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/playback/player/ios/GstPlay.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..955a731746 --- /dev/null +++ b/playback/player/ios/GstPlay.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/playback/player/ios/GstPlay.xcodeproj/xcuserdata/slomo.xcuserdatad/xcschemes/GstPlay.xcscheme b/playback/player/ios/GstPlay.xcodeproj/xcuserdata/slomo.xcuserdatad/xcschemes/GstPlay.xcscheme new file mode 100644 index 0000000000..c536703675 --- /dev/null +++ b/playback/player/ios/GstPlay.xcodeproj/xcuserdata/slomo.xcuserdatad/xcschemes/GstPlay.xcscheme @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/playback/player/ios/GstPlay.xcodeproj/xcuserdata/slomo.xcuserdatad/xcschemes/xcschememanagement.plist b/playback/player/ios/GstPlay.xcodeproj/xcuserdata/slomo.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000000..c980ecffbc --- /dev/null +++ b/playback/player/ios/GstPlay.xcodeproj/xcuserdata/slomo.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,27 @@ + + + + + SchemeUserState + + GstPlay.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + AD2B881A198D631B0070367B + + primary + + + AD2B883E198D631B0070367B + + primary + + + + + diff --git a/playback/player/ios/GstPlay/AppDelegate.h b/playback/player/ios/GstPlay/AppDelegate.h new file mode 100644 index 0000000000..767a22d9c7 --- /dev/null +++ b/playback/player/ios/GstPlay/AppDelegate.h @@ -0,0 +1,15 @@ +// +// AppDelegate.h +// GstPlay +// +// Created by Sebastian Dröge on 02/08/14. +// Copyright (c) 2014 Sebastian Dröge. All rights reserved. +// + +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git a/playback/player/ios/GstPlay/AppDelegate.m b/playback/player/ios/GstPlay/AppDelegate.m new file mode 100644 index 0000000000..cb500b2233 --- /dev/null +++ b/playback/player/ios/GstPlay/AppDelegate.m @@ -0,0 +1,45 @@ +// +// AppDelegate.m +// GstPlay +// +// Created by Sebastian Dröge on 02/08/14. +// Copyright (c) 2014 Sebastian Dröge. All rights reserved. +// + +#import "AppDelegate.h" + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + 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/playback/player/ios/GstPlay/EaglUIVIew.h b/playback/player/ios/GstPlay/EaglUIVIew.h new file mode 100644 index 0000000000..ac4e79800b --- /dev/null +++ b/playback/player/ios/GstPlay/EaglUIVIew.h @@ -0,0 +1,11 @@ +#import +#import +#include +#include + +@interface EaglUIView : UIView +{ +} + +@end + diff --git a/playback/player/ios/GstPlay/EaglUIVIew.m b/playback/player/ios/GstPlay/EaglUIVIew.m new file mode 100644 index 0000000000..91cdd9dcf8 --- /dev/null +++ b/playback/player/ios/GstPlay/EaglUIVIew.m @@ -0,0 +1,13 @@ +#import "EaglUIVIew.h" + +#import + +@implementation EaglUIView + + ++ (Class) layerClass +{ + return [CAEAGLLayer class]; +} + +@end diff --git a/playback/player/ios/GstPlay/GstPlay-Info.plist b/playback/player/ios/GstPlay/GstPlay-Info.plist new file mode 100644 index 0000000000..180da25351 --- /dev/null +++ b/playback/player/ios/GstPlay/GstPlay-Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + org.freedesktop.gstreamer.${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/playback/player/ios/GstPlay/GstPlay-Prefix.pch b/playback/player/ios/GstPlay/GstPlay-Prefix.pch new file mode 100644 index 0000000000..743435c9be --- /dev/null +++ b/playback/player/ios/GstPlay/GstPlay-Prefix.pch @@ -0,0 +1,16 @@ +// +// Prefix header +// +// The contents of this file are implicitly included at the beginning of every source file. +// + +#import + +#ifndef __IPHONE_3_0 +#warning "This project uses features only available in iOS SDK 3.0 and later." +#endif + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/playback/player/ios/GstPlay/LibraryViewController.h b/playback/player/ios/GstPlay/LibraryViewController.h new file mode 100644 index 0000000000..6950b19842 --- /dev/null +++ b/playback/player/ios/GstPlay/LibraryViewController.h @@ -0,0 +1,12 @@ +#import + +@interface LibraryViewController : UITableViewController +{ + NSArray *libraryEntries; + NSArray *mediaEntries; + NSArray *onlineEntries; +} + +- (IBAction)refresh:(id)sender; + +@end diff --git a/playback/player/ios/GstPlay/LibraryViewController.m b/playback/player/ios/GstPlay/LibraryViewController.m new file mode 100644 index 0000000000..f1aead5648 --- /dev/null +++ b/playback/player/ios/GstPlay/LibraryViewController.m @@ -0,0 +1,165 @@ +#import "LibraryViewController.h" +#import "VideoViewController.h" +#import + +@interface LibraryViewController () + +@end + +@implementation LibraryViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; + [super setTitle:@"Library"]; + [self refreshMediaItems]; +} + +- (IBAction)refresh:(id)sender +{ + [self refreshMediaItems]; + [self.tableView reloadData]; +} + +static NSString *CellIdentifier = @"CellIdentifier"; + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 3; +} + +- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section +{ + switch (section) + { + case 0: return @"Photo library"; + case 1: return @"iTunes file sharing"; + default: return @"Online files"; + } +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + switch (section) { + case 0: + return [self->libraryEntries count]; + case 1: + return [self->mediaEntries count]; + case 2: + return [self->onlineEntries count]; + default: + return 0; + } +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; + // Configure Cell + UILabel *title = (UILabel *)[cell.contentView viewWithTag:10]; + UILabel *subtitle = (UILabel *)[cell.contentView viewWithTag:11]; + + switch (indexPath.section) { + case 0: subtitle.text = [self->libraryEntries objectAtIndex:indexPath.item]; + break; + case 1: subtitle.text = [self->mediaEntries objectAtIndex:indexPath.item]; + break; + case 2: subtitle.text = [self->onlineEntries objectAtIndex:indexPath.item]; + break; + default: + break; + } + + NSArray *components = [subtitle.text pathComponents]; + title.text = components.lastObject; + + return cell; +} + +- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { + return NO; +} + +- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { + return NO; +} + +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + if ([segue.identifier isEqualToString:@"playVideo"]) { + NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; + VideoViewController *destViewController = segue.destinationViewController; + UITableViewCell *cell = [[self tableView] cellForRowAtIndexPath:indexPath]; + UILabel *label = (UILabel *)[cell.contentView viewWithTag:10]; + destViewController.title = label.text; + label = (UILabel *)[cell.contentView viewWithTag:11]; + destViewController.uri = label.text; + } +} + +- (void)refreshMediaItems { + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSAllDomainsMask, YES); + NSString *docsPath = [paths objectAtIndex:0]; + + /* Entries from the Photo Library */ + NSMutableArray *entries = [[NSMutableArray alloc] init]; + ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; + [library enumerateGroupsWithTypes:ALAssetsGroupAll + usingBlock:^(ALAssetsGroup *group, BOOL *stop) + { + if (group) { + [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) + { + if(result) { + [entries addObject:[NSString stringWithFormat:@"%@",[result valueForProperty:ALAssetPropertyAssetURL]]]; + *stop = NO; + + } + }]; + } else { + [self.tableView reloadData]; + } + } + failureBlock:^(NSError *error) + { + NSLog(@"ERROR"); + } + ]; + self->libraryEntries = entries; + + /* Retrieve entries from iTunes file sharing */ + entries = [[NSMutableArray alloc] init]; + for (NSString *e in [[NSFileManager defaultManager] contentsOfDirectoryAtPath:docsPath error:nil]) + { + [entries addObject:[NSString stringWithFormat:@"file://%@/%@", docsPath, e]]; + } + self->mediaEntries = entries; + + /* Hardcoded list of Online media files */ + entries = [[NSMutableArray alloc] init]; + + // Big Buck Bunny + [entries addObject:@"http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi"]; + [entries addObject:@"http://mirrorblender.top-ix.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_h264.mov"]; + [entries addObject:@"http://mirrorblender.top-ix.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_stereo.ogg"]; + [entries addObject:@"http://mirrorblender.top-ix.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_stereo.avi"]; + + // Sintel + [entries addObject:@"http://ftp.nluug.nl/ftp/graphics/blender/apricot/trailer/Sintel_Trailer1.480p.DivX_Plus_HD.mkv"]; + [entries addObject:@"http://ftp.nluug.nl/ftp/graphics/blender/apricot/trailer/sintel_trailer-480p.mp4"]; + [entries addObject:@"http://ftp.nluug.nl/ftp/graphics/blender/apricot/trailer/sintel_trailer-480p.ogv"]; + [entries addObject:@"http://mirrorblender.top-ix.org/movies/sintel-1024-surround.mp4"]; + + // Tears of Steel + [entries addObject:@"http://blender-mirror.kino3d.org/mango/download.blender.org/demo/movies/ToS/tears_of_steel_720p.mkv"]; + [entries addObject:@"http://blender-mirror.kino3d.org/mango/download.blender.org/demo/movies/ToS/tears_of_steel_720p.mov"]; + [entries addObject:@"http://media.xiph.org/mango/tears_of_steel_1080p.webm"]; + + // Radio stations + [entries addObject:@"http://radio.hbr1.com:19800/trance.ogg"]; + [entries addObject:@"http://radio.hbr1.com:19800/tronic.aac"]; + + // Non-existing entries (to debug error reporting facilities) + [entries addObject:@"http://non-existing.org/Non_Existing_Server"]; + [entries addObject:@"http://docs.gstreamer.com/Non_Existing_File"]; + + self->onlineEntries = entries; +} + +@end diff --git a/playback/player/ios/GstPlay/MainStoryboard_iPad.storyboard b/playback/player/ios/GstPlay/MainStoryboard_iPad.storyboard new file mode 100644 index 0000000000..d1ea519820 --- /dev/null +++ b/playback/player/ios/GstPlay/MainStoryboard_iPad.storyboard @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/playback/player/ios/GstPlay/MainStoryboard_iPhone.storyboard b/playback/player/ios/GstPlay/MainStoryboard_iPhone.storyboard new file mode 100644 index 0000000000..8f43065744 --- /dev/null +++ b/playback/player/ios/GstPlay/MainStoryboard_iPhone.storyboard @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/playback/player/ios/GstPlay/Ubuntu-R.ttf b/playback/player/ios/GstPlay/Ubuntu-R.ttf new file mode 100644 index 0000000000..45a038bade Binary files /dev/null and b/playback/player/ios/GstPlay/Ubuntu-R.ttf differ diff --git a/playback/player/ios/GstPlay/VideoViewController.h b/playback/player/ios/GstPlay/VideoViewController.h new file mode 100644 index 0000000000..97ee6e704b --- /dev/null +++ b/playback/player/ios/GstPlay/VideoViewController.h @@ -0,0 +1,23 @@ +#import + +@interface VideoViewController : UIViewController { + IBOutlet UIBarButtonItem *play_button; + IBOutlet UIBarButtonItem *pause_button; + IBOutlet UIView *video_view; + IBOutlet UIView *video_container_view; + IBOutlet NSLayoutConstraint *video_width_constraint; + IBOutlet NSLayoutConstraint *video_height_constraint; + IBOutlet UIToolbar *toolbar; + IBOutlet UITextField *time_label; + IBOutlet UISlider *time_slider; +} + +@property (retain,nonatomic) NSString *uri; + +-(IBAction) play:(id)sender; +-(IBAction) pause:(id)sender; +-(IBAction) sliderValueChanged:(id)sender; +-(IBAction) sliderTouchDown:(id)sender; +-(IBAction) sliderTouchUp:(id)sender; + +@end diff --git a/playback/player/ios/GstPlay/VideoViewController.m b/playback/player/ios/GstPlay/VideoViewController.m new file mode 100644 index 0000000000..7863f90db1 --- /dev/null +++ b/playback/player/ios/GstPlay/VideoViewController.m @@ -0,0 +1,204 @@ +#import "VideoViewController.h" +#import +#import + +@interface VideoViewController () { + GstPlayer *player; + int media_width; /* Width of the clip */ + int media_height; /* height ofthe clip */ + Boolean dragging_slider; /* Whether the time slider is being dragged or not */ + Boolean is_local_media; /* Whether this clip is stored locally or is being streamed */ + Boolean is_playing_desired; /* Whether the user asked to go to PLAYING */ +} + +@end + +@implementation VideoViewController + +@synthesize uri; + +/* + * Private methods + */ + +/* The text widget acts as an slave for the seek bar, so it reflects what the seek bar shows, whether + * it is an actual pipeline position or the position the user is currently dragging to. */ +- (void) updateTimeWidget +{ + NSInteger position = time_slider.value / 1000; + NSInteger duration = time_slider.maximumValue / 1000; + NSString *position_txt = @" -- "; + NSString *duration_txt = @" -- "; + + if (duration > 0) { + NSUInteger hours = duration / (60 * 60); + NSUInteger minutes = (duration / 60) % 60; + NSUInteger seconds = duration % 60; + + duration_txt = [NSString stringWithFormat:@"%02u:%02u:%02u", hours, minutes, seconds]; + } + if (position > 0) { + NSUInteger hours = position / (60 * 60); + NSUInteger minutes = (position / 60) % 60; + NSUInteger seconds = position % 60; + + position_txt = [NSString stringWithFormat:@"%02u:%02u:%02u", hours, minutes, seconds]; + } + + NSString *text = [NSString stringWithFormat:@"%@ / %@", + position_txt, duration_txt]; + + time_label.text = text; +} + +/* + * Methods from UIViewController + */ + +- (void)viewDidLoad +{ + [super viewDidLoad]; + + /* As soon as the GStreamer backend knows the real values, these ones will be replaced */ + media_width = 320; + media_height = 240; + + player = gst_player_new(FALSE); + g_object_set (player, "window-handle", video_view, NULL); + g_object_set (player, "uri", [uri UTF8String], NULL); + + gst_debug_set_threshold_for_name("gst-player", GST_LEVEL_TRACE); + + g_signal_connect (player, "position-updated", G_CALLBACK (position_updated), (__bridge gpointer) self); + g_signal_connect (player, "duration-changed", G_CALLBACK (duration_changed), (__bridge gpointer) self); + g_signal_connect (player, "video-dimensions-changed", G_CALLBACK (video_dimensions_changed), (__bridge gpointer) self); + + is_local_media = [uri hasPrefix:@"file://"]; + is_playing_desired = NO; +} + +- (void)viewDidDisappear:(BOOL)animated +{ + if (player) + { + gst_object_unref (player); + } + [UIApplication sharedApplication].idleTimerDisabled = NO; +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +/* Called when the Play button is pressed */ +-(IBAction) play:(id)sender +{ + gst_player_play (player); + is_playing_desired = YES; + [UIApplication sharedApplication].idleTimerDisabled = YES; +} + +/* Called when the Pause button is pressed */ +-(IBAction) pause:(id)sender +{ + gst_player_pause(player); + is_playing_desired = NO; + [UIApplication sharedApplication].idleTimerDisabled = NO; +} + +/* Called when the time slider position has changed, either because the user dragged it or + * we programmatically changed its position. dragging_slider tells us which one happened */ +- (IBAction)sliderValueChanged:(id)sender { + if (!dragging_slider) return; + // If this is a local file, allow scrub seeking, this is, seek as soon as the slider is moved. + if (is_local_media) + gst_player_seek (player, ((long)time_slider.value) * 1000000); + [self updateTimeWidget]; +} + +/* Called when the user starts to drag the time slider */ +- (IBAction)sliderTouchDown:(id)sender { + gst_player_pause (player); + dragging_slider = YES; +} + +/* Called when the user stops dragging the time slider */ +- (IBAction)sliderTouchUp:(id)sender { + dragging_slider = NO; + // If this is a remote file, scrub seeking is probably not going to work smoothly enough. + // Therefore, perform only the seek when the slider is released. + if (!is_local_media) + gst_player_seek (player, ((long)time_slider.value) * 1000000); + if (is_playing_desired) + gst_player_play (player); +} + +/* Called when the size of the main view has changed, so we can + * resize the sub-views in ways not allowed by storyboarding. */ +- (void)viewDidLayoutSubviews +{ + CGFloat view_width = video_container_view.bounds.size.width; + CGFloat view_height = video_container_view.bounds.size.height; + + CGFloat correct_height = view_width * media_height / media_width; + CGFloat correct_width = view_height * media_width / media_height; + + if (correct_height < view_height) { + video_height_constraint.constant = correct_height; + video_width_constraint.constant = view_width; + } else { + video_width_constraint.constant = correct_width; + video_height_constraint.constant = view_height; + } + + time_slider.frame = CGRectMake(time_slider.frame.origin.x, time_slider.frame.origin.y, toolbar.frame.size.width - time_slider.frame.origin.x - 8, time_slider.frame.size.height); +} + +static void video_dimensions_changed (GstPlayer * unused, gint width, gint height, VideoViewController * self) +{ + dispatch_async(dispatch_get_main_queue(), ^{ + [self videoDimensionsChanged:width height:height]; + }); +} + +-(void) videoDimensionsChanged:(NSInteger)width height:(NSInteger)height +{ + media_width = width; + media_height = height; + [self viewDidLayoutSubviews]; + [video_view setNeedsLayout]; + [video_view layoutIfNeeded]; +} + +static void position_updated (GstPlayer * unused, GstClockTime position, VideoViewController *self) +{ + dispatch_async(dispatch_get_main_queue(), ^{ + [self positionUpdated:(int) (position / 1000000)]; + }); +} + +-(void) positionUpdated:(NSInteger)position +{ + /* Ignore messages from the pipeline if the time sliders is being dragged */ + if (dragging_slider) return; + + time_slider.value = position; + [self updateTimeWidget]; +} + +static void duration_changed (GstPlayer * unused, GstClockTime duration, VideoViewController *self) +{ + dispatch_async(dispatch_get_main_queue(), ^{ + [self durationChanged:(int) (duration / 1000000)]; + }); +} + +-(void) durationChanged:(NSInteger)duration +{ + time_slider.maximumValue = duration; + [self updateTimeWidget]; +} + +@end diff --git a/playback/player/ios/GstPlay/en.lproj/InfoPlist.strings b/playback/player/ios/GstPlay/en.lproj/InfoPlist.strings new file mode 100644 index 0000000000..477b28ff8f --- /dev/null +++ b/playback/player/ios/GstPlay/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/playback/player/ios/GstPlay/fonts.conf b/playback/player/ios/GstPlay/fonts.conf new file mode 100644 index 0000000000..6b780ea92e --- /dev/null +++ b/playback/player/ios/GstPlay/fonts.conf @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + mono + + + monospace + + + + + + + sans serif + + + sans-serif + + + + + + + sans + + + sans-serif + + + + + + + 0x0020 + 0x00A0 + 0x00AD + 0x034F + 0x0600 + 0x0601 + 0x0602 + 0x0603 + 0x06DD + 0x070F + 0x115F + 0x1160 + 0x1680 + 0x17B4 + 0x17B5 + 0x180E + 0x2000 + 0x2001 + 0x2002 + 0x2003 + 0x2004 + 0x2005 + 0x2006 + 0x2007 + 0x2008 + 0x2009 + 0x200A + 0x200B + 0x200C + 0x200D + 0x200E + 0x200F + 0x2028 + 0x2029 + 0x202A + 0x202B + 0x202C + 0x202D + 0x202E + 0x202F + 0x205F + 0x2060 + 0x2061 + 0x2062 + 0x2063 + 0x206A + 0x206B + 0x206C + 0x206D + 0x206E + 0x206F + 0x2800 + 0x3000 + 0x3164 + 0xFEFF + 0xFFA0 + 0xFFF9 + 0xFFFA + 0xFFFB + + + + 30 + + + + + diff --git a/playback/player/ios/GstPlay/gst_ios_init.h b/playback/player/ios/GstPlay/gst_ios_init.h new file mode 100644 index 0000000000..a880bf6363 --- /dev/null +++ b/playback/player/ios/GstPlay/gst_ios_init.h @@ -0,0 +1,39 @@ +#ifndef __GST_IOS_INIT_H__ +#define __GST_IOS_INIT_H__ + +#include + +G_BEGIN_DECLS + +#define GST_G_IO_MODULE_DECLARE(name) \ +extern void G_PASTE(g_io_module_, G_PASTE(name, _load_static)) (void) + +#define GST_G_IO_MODULE_LOAD(name) \ +G_PASTE(g_io_module_, G_PASTE(name, _load_static)) () + +/* 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_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 +//#define GST_IOS_PLUGINS_EDITING + + +#define GST_IOS_GIO_MODULE_GNUTLS + +void gst_ios_init (); + +G_END_DECLS + +#endif diff --git a/playback/player/ios/GstPlay/gst_ios_init.m b/playback/player/ios/GstPlay/gst_ios_init.m new file mode 100644 index 0000000000..403f9f9c17 --- /dev/null +++ b/playback/player/ios/GstPlay/gst_ios_init.m @@ -0,0 +1,988 @@ +#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_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_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_VIDEOCONVERT) || defined(GST_IOS_PLUGINS_CORE) +GST_PLUGIN_STATIC_DECLARE(videoconvert); +#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_CAMERABIN) || defined(GST_IOS_PLUGINS_CAPTURE) +GST_PLUGIN_STATIC_DECLARE(camerabin); +#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_MPEGPSDEMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED) +GST_PLUGIN_STATIC_DECLARE(mpegpsdemux); +#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_VOAACENC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED) +GST_PLUGIN_STATIC_DECLARE(voaacenc); +#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_DVDSUB) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED) +GST_PLUGIN_STATIC_DECLARE(dvdsub); +#endif +#if defined(GST_IOS_PLUGIN_DVDLPCMDEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED) +GST_PLUGIN_STATIC_DECLARE(dvdlpcmdec); +#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_XINGMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED) +GST_PLUGIN_STATIC_DECLARE(xingmux); +#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_LIBAV) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED) +GST_PLUGIN_STATIC_DECLARE(libav); +#endif +#if defined(GST_IOS_PLUGIN_ENCODING) || defined(GST_IOS_PLUGINS_ENCODING) +GST_PLUGIN_STATIC_DECLARE(encoding); +#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_RTMP) || defined(GST_IOS_PLUGINS_NET_RESTRICTED) +GST_PLUGIN_STATIC_DECLARE(rtmp); +#endif +#if defined(GST_IOS_PLUGIN_OSXAUDIO) || defined(GST_IOS_PLUGINS_SYS) +GST_PLUGIN_STATIC_DECLARE(osxaudio); +#endif +#if defined(GST_IOS_PLUGIN_APPLEMEDIA) || defined(GST_IOS_PLUGINS_SYS) +GST_PLUGIN_STATIC_DECLARE(applemedia); +#endif +#if defined(GST_IOS_PLUGIN_SHM) || defined(GST_IOS_PLUGINS_SYS) +GST_PLUGIN_STATIC_DECLARE(shm); +#endif +#if defined(GST_IOS_PLUGIN_OPENGL) || defined(GST_IOS_PLUGINS_SYS) +GST_PLUGIN_STATIC_DECLARE(opengl); +#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_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_DTMF) || defined(GST_IOS_PLUGINS_EFFECTS) +GST_PLUGIN_STATIC_DECLARE(dtmf); +#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_ACCURIP) || defined(GST_IOS_PLUGINS_EFFECTS) +GST_PLUGIN_STATIC_DECLARE(accurip); +#endif +#if defined(GST_IOS_PLUGIN_AIFF) || defined(GST_IOS_PLUGINS_EFFECTS) +GST_PLUGIN_STATIC_DECLARE(aiff); +#endif +#if defined(GST_IOS_PLUGIN_AUDIOFXBAD) || defined(GST_IOS_PLUGINS_EFFECTS) +GST_PLUGIN_STATIC_DECLARE(audiofxbad); +#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_DEBUGUTILSBAD) || defined(GST_IOS_PLUGINS_EFFECTS) +GST_PLUGIN_STATIC_DECLARE(debugutilsbad); +#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_IVTC) || defined(GST_IOS_PLUGINS_EFFECTS) +GST_PLUGIN_STATIC_DECLARE(ivtc); +#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_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_SPEED) || defined(GST_IOS_PLUGINS_EFFECTS) +GST_PLUGIN_STATIC_DECLARE(speed); +#endif +#if defined(GST_IOS_PLUGIN_VIDEOFILTERSBAD) || defined(GST_IOS_PLUGINS_EFFECTS) +GST_PLUGIN_STATIC_DECLARE(videofiltersbad); +#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_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_VPX) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(vpx); +#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_DASHDEMUX) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(dashdemux); +#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_ID3TAG) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(id3tag); +#endif +#if defined(GST_IOS_PLUGIN_KATE) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(kate); +#endif +#if defined(GST_IOS_PLUGIN_MIDI) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(midi); +#endif +#if defined(GST_IOS_PLUGIN_MXF) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(mxf); +#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_RFBSRC) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(rfbsrc); +#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_SMOOTHSTREAMING) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(smoothstreaming); +#endif +#if defined(GST_IOS_PLUGIN_SUBENC) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(subenc); +#endif +#if defined(GST_IOS_PLUGIN_VIDEOPARSERSBAD) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(videoparsersbad); +#endif +#if defined(GST_IOS_PLUGIN_Y4MDEC) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(y4mdec); +#endif +#if defined(GST_IOS_PLUGIN_JPEGFORMAT) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(jpegformat); +#endif +#if defined(GST_IOS_PLUGIN_GDP) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(gdp); +#endif +#if defined(GST_IOS_PLUGIN_RSVG) || defined(GST_IOS_PLUGINS_CODECS) +GST_PLUGIN_STATIC_DECLARE(rsvg); +#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_RTPMANAGER) || defined(GST_IOS_PLUGINS_NET) +GST_PLUGIN_STATIC_DECLARE(rtpmanager); +#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_SDP) || defined(GST_IOS_PLUGINS_NET) +GST_PLUGIN_STATIC_DECLARE(sdp); +#endif +#if defined(GST_IOS_PLUGIN_GNONLIN) || defined(GST_IOS_PLUGINS_EDITING) +GST_PLUGIN_STATIC_DECLARE(gnonlin); +#endif + +#if defined(GST_IOS_GIO_MODULE_GNUTLS) + #include + GST_G_IO_MODULE_DECLARE(gnutls); +#endif + +void +gst_ios_init (void) +{ + GstPluginFeature *plugin; + GstRegistry *reg; + NSString *resources = [[NSBundle mainBundle] resourcePath]; + NSString *tmp = NSTemporaryDirectory(); + NSString *cache = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"]; + NSString *docs = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; + + const gchar *resources_dir = [resources UTF8String]; + const gchar *tmp_dir = [tmp UTF8String]; + const gchar *cache_dir = [cache UTF8String]; + const gchar *docs_dir = [docs UTF8String]; + gchar *ca_certificates; + + g_setenv ("TMP", tmp_dir, TRUE); + g_setenv ("TEMP", tmp_dir, TRUE); + g_setenv ("TMPDIR", tmp_dir, TRUE); + g_setenv ("XDG_RUNTIME_DIR", resources_dir, TRUE); + g_setenv ("XDG_CACHE_HOME", cache_dir, TRUE); + + g_setenv ("HOME", docs_dir, TRUE); + g_setenv ("XDG_DATA_DIRS", resources_dir, TRUE); + g_setenv ("XDG_CONFIG_DIRS", resources_dir, TRUE); + g_setenv ("XDG_CONFIG_HOME", cache_dir, TRUE); + g_setenv ("XDG_DATA_HOME", resources_dir, TRUE); + g_setenv ("FONTCONFIG_PATH", resources_dir, TRUE); + + ca_certificates = g_build_filename (resources_dir, "ssl", "certs", "ca-certifcates.crt", NULL); + g_setenv ("CA_CERTIFICATES", ca_certificates, TRUE); + g_free (ca_certificates); + + gst_init (NULL, NULL); + + #if defined(GST_IOS_PLUGIN_COREELEMENTS) || defined(GST_IOS_PLUGINS_CORE) + GST_PLUGIN_STATIC_REGISTER(coreelements); +#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_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_VIDEOCONVERT) || defined(GST_IOS_PLUGINS_CORE) + GST_PLUGIN_STATIC_REGISTER(videoconvert); +#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_CAMERABIN) || defined(GST_IOS_PLUGINS_CAPTURE) + GST_PLUGIN_STATIC_REGISTER(camerabin); +#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_MPEGPSDEMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED) + GST_PLUGIN_STATIC_REGISTER(mpegpsdemux); +#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_VOAACENC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED) + GST_PLUGIN_STATIC_REGISTER(voaacenc); +#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_DVDSUB) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED) + GST_PLUGIN_STATIC_REGISTER(dvdsub); +#endif +#if defined(GST_IOS_PLUGIN_DVDLPCMDEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED) + GST_PLUGIN_STATIC_REGISTER(dvdlpcmdec); +#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_XINGMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED) + GST_PLUGIN_STATIC_REGISTER(xingmux); +#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_LIBAV) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED) + GST_PLUGIN_STATIC_REGISTER(libav); +#endif +#if defined(GST_IOS_PLUGIN_ENCODING) || defined(GST_IOS_PLUGINS_ENCODING) + GST_PLUGIN_STATIC_REGISTER(encoding); +#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_RTMP) || defined(GST_IOS_PLUGINS_NET_RESTRICTED) + GST_PLUGIN_STATIC_REGISTER(rtmp); +#endif +#if defined(GST_IOS_PLUGIN_OSXAUDIO) || defined(GST_IOS_PLUGINS_SYS) + GST_PLUGIN_STATIC_REGISTER(osxaudio); +#endif +#if defined(GST_IOS_PLUGIN_APPLEMEDIA) || defined(GST_IOS_PLUGINS_SYS) + GST_PLUGIN_STATIC_REGISTER(applemedia); +#endif +#if defined(GST_IOS_PLUGIN_SHM) || defined(GST_IOS_PLUGINS_SYS) + GST_PLUGIN_STATIC_REGISTER(shm); +#endif +#if defined(GST_IOS_PLUGIN_OPENGL) || defined(GST_IOS_PLUGINS_SYS) + GST_PLUGIN_STATIC_REGISTER(opengl); +#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_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_DTMF) || defined(GST_IOS_PLUGINS_EFFECTS) + GST_PLUGIN_STATIC_REGISTER(dtmf); +#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_ACCURIP) || defined(GST_IOS_PLUGINS_EFFECTS) + GST_PLUGIN_STATIC_REGISTER(accurip); +#endif +#if defined(GST_IOS_PLUGIN_AIFF) || defined(GST_IOS_PLUGINS_EFFECTS) + GST_PLUGIN_STATIC_REGISTER(aiff); +#endif +#if defined(GST_IOS_PLUGIN_AUDIOFXBAD) || defined(GST_IOS_PLUGINS_EFFECTS) + GST_PLUGIN_STATIC_REGISTER(audiofxbad); +#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_DEBUGUTILSBAD) || defined(GST_IOS_PLUGINS_EFFECTS) + GST_PLUGIN_STATIC_REGISTER(debugutilsbad); +#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_IVTC) || defined(GST_IOS_PLUGINS_EFFECTS) + GST_PLUGIN_STATIC_REGISTER(ivtc); +#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_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_SPEED) || defined(GST_IOS_PLUGINS_EFFECTS) + GST_PLUGIN_STATIC_REGISTER(speed); +#endif +#if defined(GST_IOS_PLUGIN_VIDEOFILTERSBAD) || defined(GST_IOS_PLUGINS_EFFECTS) + GST_PLUGIN_STATIC_REGISTER(videofiltersbad); +#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_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_VPX) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(vpx); +#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_DASHDEMUX) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(dashdemux); +#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_ID3TAG) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(id3tag); +#endif +#if defined(GST_IOS_PLUGIN_KATE) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(kate); +#endif +#if defined(GST_IOS_PLUGIN_MIDI) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(midi); +#endif +#if defined(GST_IOS_PLUGIN_MXF) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(mxf); +#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_RFBSRC) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(rfbsrc); +#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_SMOOTHSTREAMING) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(smoothstreaming); +#endif +#if defined(GST_IOS_PLUGIN_SUBENC) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(subenc); +#endif +#if defined(GST_IOS_PLUGIN_VIDEOPARSERSBAD) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(videoparsersbad); +#endif +#if defined(GST_IOS_PLUGIN_Y4MDEC) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(y4mdec); +#endif +#if defined(GST_IOS_PLUGIN_JPEGFORMAT) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(jpegformat); +#endif +#if defined(GST_IOS_PLUGIN_GDP) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(gdp); +#endif +#if defined(GST_IOS_PLUGIN_RSVG) || defined(GST_IOS_PLUGINS_CODECS) + GST_PLUGIN_STATIC_REGISTER(rsvg); +#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_RTPMANAGER) || defined(GST_IOS_PLUGINS_NET) + GST_PLUGIN_STATIC_REGISTER(rtpmanager); +#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_SDP) || defined(GST_IOS_PLUGINS_NET) + GST_PLUGIN_STATIC_REGISTER(sdp); +#endif +#if defined(GST_IOS_PLUGIN_GNONLIN) || defined(GST_IOS_PLUGINS_EDITING) + GST_PLUGIN_STATIC_REGISTER(gnonlin); +#endif + +#if defined(GST_IOS_GIO_MODULE_GNUTLS) + GST_G_IO_MODULE_LOAD(gnutls); +#endif + + /* Lower the ranks of filesrc and giosrc so iosavassetsrc is + * tried first in gst_element_make_from_uri() for file:// */ + reg = gst_registry_get(); + plugin = gst_registry_lookup_feature(reg, "filesrc"); + if (plugin) + gst_plugin_feature_set_rank(plugin, GST_RANK_SECONDARY); + plugin = gst_registry_lookup_feature(reg, "giosrc"); + if (plugin) + gst_plugin_feature_set_rank(plugin, GST_RANK_SECONDARY-1); +} diff --git a/playback/player/ios/GstPlay/main.m b/playback/player/ios/GstPlay/main.m new file mode 100644 index 0000000000..6cf4e0f612 --- /dev/null +++ b/playback/player/ios/GstPlay/main.m @@ -0,0 +1,12 @@ +#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])); + } +}