xcode: remove manually created xcode projects. Instead one should use ./prepare.py -G Xcode to generate them

This commit is contained in:
Gautier Pelloux-Prayer 2016-06-22 16:27:49 +02:00
parent 43eade8df8
commit 8cf3f4d380
28 changed files with 0 additions and 5162 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View file

@ -1,606 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
F03A97691AFA48E800651655 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F03A97681AFA48E800651655 /* main.m */; };
F03A976C1AFA48E800651655 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F03A976B1AFA48E800651655 /* AppDelegate.m */; };
F03A976F1AFA48E800651655 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F03A976E1AFA48E800651655 /* ViewController.m */; };
F03A97721AFA48E800651655 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F03A97701AFA48E800651655 /* Main.storyboard */; };
F03A97741AFA48E800651655 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F03A97731AFA48E800651655 /* Images.xcassets */; };
F03A97771AFA48E800651655 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = F03A97751AFA48E800651655 /* LaunchScreen.xib */; };
F03A97831AFA48E900651655 /* MS2Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = F03A97821AFA48E900651655 /* MS2Tests.m */; };
F03A97931AFA561900651655 /* libmsamr.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A978D1AFA561900651655 /* libmsamr.a */; };
F03A97941AFA561A00651655 /* libmsbcg729.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A978E1AFA561900651655 /* libmsbcg729.a */; };
F03A97951AFA561A00651655 /* libmsilbc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A978F1AFA561900651655 /* libmsilbc.a */; };
F03A97961AFA561A00651655 /* libmsopenh264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97901AFA561900651655 /* libmsopenh264.a */; };
F03A97971AFA561A00651655 /* libmssilk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97911AFA561900651655 /* libmssilk.a */; };
F03A97981AFA561A00651655 /* libmsx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97921AFA561900651655 /* libmsx264.a */; };
F03A97AE1AFA563200651655 /* libavcodec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97991AFA563200651655 /* libavcodec.a */; };
F03A97AF1AFA563200651655 /* libavutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A979A1AFA563200651655 /* libavutil.a */; };
F03A97B01AFA563200651655 /* libbzrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A979B1AFA563200651655 /* libbzrtp.a */; };
F03A97B11AFA563200651655 /* libgsm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A979C1AFA563200651655 /* libgsm.a */; };
F03A97B21AFA563200651655 /* libilbc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A979D1AFA563200651655 /* libilbc.a */; };
F03A97B31AFA563200651655 /* libmediastreamer_base.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A979E1AFA563200651655 /* libmediastreamer_base.a */; };
F03A97B41AFA563200651655 /* libmediastreamer_voip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A979F1AFA563200651655 /* libmediastreamer_voip.a */; };
F03A97B51AFA563200651655 /* libopencore-amrnb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A01AFA563200651655 /* libopencore-amrnb.a */; };
F03A97B61AFA563200651655 /* libopencore-amrwb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A11AFA563200651655 /* libopencore-amrwb.a */; };
F03A97B71AFA563200651655 /* libopenh264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A21AFA563200651655 /* libopenh264.a */; };
F03A97B81AFA563200651655 /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A31AFA563200651655 /* libopus.a */; };
F03A97B91AFA563200651655 /* libortp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A41AFA563200651655 /* libortp.a */; };
F03A97BC1AFA563200651655 /* libspeex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A71AFA563200651655 /* libspeex.a */; };
F03A97BD1AFA563200651655 /* libspeexdsp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A81AFA563200651655 /* libspeexdsp.a */; };
F03A97BE1AFA563200651655 /* libsrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97A91AFA563200651655 /* libsrtp.a */; };
F03A97BF1AFA563200651655 /* libswresample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97AA1AFA563200651655 /* libswresample.a */; };
F03A97C01AFA563200651655 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97AB1AFA563200651655 /* libswscale.a */; };
F03A97C11AFA563200651655 /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97AC1AFA563200651655 /* libvpx.a */; };
F03A97C21AFA563200651655 /* libx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97AD1AFA563200651655 /* libx264.a */; };
F03A97C61AFA565000651655 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97C31AFA565000651655 /* AudioToolbox.framework */; };
F03A97C71AFA565000651655 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97C41AFA565000651655 /* AVFoundation.framework */; };
F03A97C81AFA565000651655 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97C51AFA565000651655 /* CoreAudio.framework */; };
F03A97CA1AFA565C00651655 /* libxml2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97C91AFA565C00651655 /* libxml2.a */; };
F03A97CC1AFA572600651655 /* libstdc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97CB1AFA572600651655 /* libstdc++.dylib */; };
F03A97D81AFA580100651655 /* UITextField+DoneButton.m in Sources */ = {isa = PBXBuildFile; fileRef = F03A97D71AFA580100651655 /* UITextField+DoneButton.m */; };
F03A97DA1AFA589E00651655 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97D91AFA589E00651655 /* Foundation.framework */; };
F03A97DC1AFA58B600651655 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97DB1AFA58B600651655 /* UIKit.framework */; };
F03A97E11AFA5B4A00651655 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A97E01AFA5B4A00651655 /* CoreMedia.framework */; };
F03A97E31AFA64D200651655 /* nowebcamCIF.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F03A97E21AFA64D200651655 /* nowebcamCIF.jpg */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
F03A977D1AFA48E900651655 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = F03A975B1AFA48E800651655 /* Project object */;
proxyType = 1;
remoteGlobalIDString = F03A97621AFA48E800651655;
remoteInfo = MS2;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
F03A97631AFA48E800651655 /* MS2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MS2.app; sourceTree = BUILT_PRODUCTS_DIR; };
F03A97671AFA48E800651655 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
F03A97681AFA48E800651655 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
F03A976A1AFA48E800651655 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
F03A976B1AFA48E800651655 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
F03A976D1AFA48E800651655 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
F03A976E1AFA48E800651655 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
F03A97711AFA48E800651655 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
F03A97731AFA48E800651655 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
F03A97761AFA48E800651655 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
F03A977C1AFA48E900651655 /* MS2Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MS2Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
F03A97811AFA48E900651655 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
F03A97821AFA48E900651655 /* MS2Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MS2Tests.m; sourceTree = "<group>"; };
F03A978D1AFA561900651655 /* libmsamr.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsamr.a; path = "../../../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsamr.a"; sourceTree = "<group>"; };
F03A978E1AFA561900651655 /* libmsbcg729.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsbcg729.a; path = "../../../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsbcg729.a"; sourceTree = "<group>"; };
F03A978F1AFA561900651655 /* libmsilbc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsilbc.a; path = "../../../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsilbc.a"; sourceTree = "<group>"; };
F03A97901AFA561900651655 /* libmsopenh264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsopenh264.a; path = "../../../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsopenh264.a"; sourceTree = "<group>"; };
F03A97911AFA561900651655 /* libmssilk.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmssilk.a; path = "../../../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmssilk.a"; sourceTree = "<group>"; };
F03A97921AFA561900651655 /* libmsx264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsx264.a; path = "../../../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsx264.a"; sourceTree = "<group>"; };
F03A97991AFA563200651655 /* libavcodec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavcodec.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libavcodec.a"; sourceTree = "<group>"; };
F03A979A1AFA563200651655 /* libavutil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavutil.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libavutil.a"; sourceTree = "<group>"; };
F03A979B1AFA563200651655 /* libbzrtp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libbzrtp.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libbzrtp.a"; sourceTree = "<group>"; };
F03A979C1AFA563200651655 /* libgsm.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgsm.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libgsm.a"; sourceTree = "<group>"; };
F03A979D1AFA563200651655 /* libilbc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libilbc.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libilbc.a"; sourceTree = "<group>"; };
F03A979E1AFA563200651655 /* libmediastreamer_base.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmediastreamer_base.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libmediastreamer_base.a"; sourceTree = "<group>"; };
F03A979F1AFA563200651655 /* libmediastreamer_voip.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmediastreamer_voip.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libmediastreamer_voip.a"; sourceTree = "<group>"; };
F03A97A01AFA563200651655 /* libopencore-amrnb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libopencore-amrnb.a"; path = "../../../liblinphone-sdk/apple-darwin/lib/libopencore-amrnb.a"; sourceTree = "<group>"; };
F03A97A11AFA563200651655 /* libopencore-amrwb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libopencore-amrwb.a"; path = "../../../liblinphone-sdk/apple-darwin/lib/libopencore-amrwb.a"; sourceTree = "<group>"; };
F03A97A21AFA563200651655 /* libopenh264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopenh264.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libopenh264.a"; sourceTree = "<group>"; };
F03A97A31AFA563200651655 /* libopus.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopus.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libopus.a"; sourceTree = "<group>"; };
F03A97A41AFA563200651655 /* libortp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libortp.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libortp.a"; sourceTree = "<group>"; };
F03A97A71AFA563200651655 /* libspeex.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libspeex.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libspeex.a"; sourceTree = "<group>"; };
F03A97A81AFA563200651655 /* libspeexdsp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libspeexdsp.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libspeexdsp.a"; sourceTree = "<group>"; };
F03A97A91AFA563200651655 /* libsrtp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsrtp.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libsrtp.a"; sourceTree = "<group>"; };
F03A97AA1AFA563200651655 /* libswresample.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libswresample.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libswresample.a"; sourceTree = "<group>"; };
F03A97AB1AFA563200651655 /* libswscale.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libswscale.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libswscale.a"; sourceTree = "<group>"; };
F03A97AC1AFA563200651655 /* libvpx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvpx.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libvpx.a"; sourceTree = "<group>"; };
F03A97AD1AFA563200651655 /* libx264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libx264.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libx264.a"; sourceTree = "<group>"; };
F03A97C31AFA565000651655 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
F03A97C41AFA565000651655 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
F03A97C51AFA565000651655 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
F03A97C91AFA565C00651655 /* libxml2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libxml2.a; path = "../../../liblinphone-sdk/apple-darwin/lib/libxml2.a"; sourceTree = "<group>"; };
F03A97CB1AFA572600651655 /* libstdc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libstdc++.dylib"; path = "usr/lib/libstdc++.dylib"; sourceTree = SDKROOT; };
F03A97D61AFA580100651655 /* UITextField+DoneButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITextField+DoneButton.h"; sourceTree = "<group>"; };
F03A97D71AFA580100651655 /* UITextField+DoneButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITextField+DoneButton.m"; sourceTree = "<group>"; };
F03A97D91AFA589E00651655 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
F03A97DB1AFA58B600651655 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
F03A97E01AFA5B4A00651655 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
F03A97E21AFA64D200651655 /* nowebcamCIF.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = nowebcamCIF.jpg; path = "../../../liblinphone-sdk/apple-darwin/share/images/nowebcamCIF.jpg"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
F03A97601AFA48E800651655 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F03A97E11AFA5B4A00651655 /* CoreMedia.framework in Frameworks */,
F03A97DC1AFA58B600651655 /* UIKit.framework in Frameworks */,
F03A97DA1AFA589E00651655 /* Foundation.framework in Frameworks */,
F03A97CC1AFA572600651655 /* libstdc++.dylib in Frameworks */,
F03A97C61AFA565000651655 /* AudioToolbox.framework in Frameworks */,
F03A97C71AFA565000651655 /* AVFoundation.framework in Frameworks */,
F03A97C81AFA565000651655 /* CoreAudio.framework in Frameworks */,
F03A97971AFA561A00651655 /* libmssilk.a in Frameworks */,
F03A97B61AFA563200651655 /* libopencore-amrwb.a in Frameworks */,
F03A97B91AFA563200651655 /* libortp.a in Frameworks */,
F03A97CA1AFA565C00651655 /* libxml2.a in Frameworks */,
F03A97981AFA561A00651655 /* libmsx264.a in Frameworks */,
F03A97B81AFA563200651655 /* libopus.a in Frameworks */,
F03A97B31AFA563200651655 /* libmediastreamer_base.a in Frameworks */,
F03A97B41AFA563200651655 /* libmediastreamer_voip.a in Frameworks */,
F03A97B21AFA563200651655 /* libilbc.a in Frameworks */,
F03A97931AFA561900651655 /* libmsamr.a in Frameworks */,
F03A97B11AFA563200651655 /* libgsm.a in Frameworks */,
F03A97C21AFA563200651655 /* libx264.a in Frameworks */,
F03A97951AFA561A00651655 /* libmsilbc.a in Frameworks */,
F03A97B71AFA563200651655 /* libopenh264.a in Frameworks */,
F03A97941AFA561A00651655 /* libmsbcg729.a in Frameworks */,
F03A97AE1AFA563200651655 /* libavcodec.a in Frameworks */,
F03A97B01AFA563200651655 /* libbzrtp.a in Frameworks */,
F03A97C01AFA563200651655 /* libswscale.a in Frameworks */,
F03A97BF1AFA563200651655 /* libswresample.a in Frameworks */,
F03A97C11AFA563200651655 /* libvpx.a in Frameworks */,
F03A97BC1AFA563200651655 /* libspeex.a in Frameworks */,
F03A97BE1AFA563200651655 /* libsrtp.a in Frameworks */,
F03A97B51AFA563200651655 /* libopencore-amrnb.a in Frameworks */,
F03A97AF1AFA563200651655 /* libavutil.a in Frameworks */,
F03A97961AFA561A00651655 /* libmsopenh264.a in Frameworks */,
F03A97BD1AFA563200651655 /* libspeexdsp.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F03A97791AFA48E900651655 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
F03A975A1AFA48E800651655 = {
isa = PBXGroup;
children = (
F03A978C1AFA560800651655 /* Frameworks */,
F03A97651AFA48E800651655 /* MS2 */,
F03A977F1AFA48E900651655 /* MS2Tests */,
F03A97641AFA48E800651655 /* Products */,
);
sourceTree = "<group>";
};
F03A97641AFA48E800651655 /* Products */ = {
isa = PBXGroup;
children = (
F03A97631AFA48E800651655 /* MS2.app */,
F03A977C1AFA48E900651655 /* MS2Tests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
F03A97651AFA48E800651655 /* MS2 */ = {
isa = PBXGroup;
children = (
F03A976A1AFA48E800651655 /* AppDelegate.h */,
F03A976B1AFA48E800651655 /* AppDelegate.m */,
F03A976D1AFA48E800651655 /* ViewController.h */,
F03A976E1AFA48E800651655 /* ViewController.m */,
F03A97E21AFA64D200651655 /* nowebcamCIF.jpg */,
F03A97D61AFA580100651655 /* UITextField+DoneButton.h */,
F03A97D71AFA580100651655 /* UITextField+DoneButton.m */,
F03A97701AFA48E800651655 /* Main.storyboard */,
F03A97731AFA48E800651655 /* Images.xcassets */,
F03A97751AFA48E800651655 /* LaunchScreen.xib */,
F03A97661AFA48E800651655 /* Supporting Files */,
);
path = MS2;
sourceTree = "<group>";
};
F03A97661AFA48E800651655 /* Supporting Files */ = {
isa = PBXGroup;
children = (
F03A97671AFA48E800651655 /* Info.plist */,
F03A97681AFA48E800651655 /* main.m */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
F03A977F1AFA48E900651655 /* MS2Tests */ = {
isa = PBXGroup;
children = (
F03A97821AFA48E900651655 /* MS2Tests.m */,
F03A97801AFA48E900651655 /* Supporting Files */,
);
path = MS2Tests;
sourceTree = "<group>";
};
F03A97801AFA48E900651655 /* Supporting Files */ = {
isa = PBXGroup;
children = (
F03A97811AFA48E900651655 /* Info.plist */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
F03A978C1AFA560800651655 /* Frameworks */ = {
isa = PBXGroup;
children = (
F03A97E01AFA5B4A00651655 /* CoreMedia.framework */,
F03A97DB1AFA58B600651655 /* UIKit.framework */,
F03A97D91AFA589E00651655 /* Foundation.framework */,
F03A97CB1AFA572600651655 /* libstdc++.dylib */,
F03A97C31AFA565000651655 /* AudioToolbox.framework */,
F03A97C41AFA565000651655 /* AVFoundation.framework */,
F03A97C51AFA565000651655 /* CoreAudio.framework */,
F03A978D1AFA561900651655 /* libmsamr.a */,
F03A978E1AFA561900651655 /* libmsbcg729.a */,
F03A97991AFA563200651655 /* libavcodec.a */,
F03A979A1AFA563200651655 /* libavutil.a */,
F03A979B1AFA563200651655 /* libbzrtp.a */,
F03A979C1AFA563200651655 /* libgsm.a */,
F03A979D1AFA563200651655 /* libilbc.a */,
F03A979E1AFA563200651655 /* libmediastreamer_base.a */,
F03A979F1AFA563200651655 /* libmediastreamer_voip.a */,
F03A97A01AFA563200651655 /* libopencore-amrnb.a */,
F03A97A11AFA563200651655 /* libopencore-amrwb.a */,
F03A97C91AFA565C00651655 /* libxml2.a */,
F03A97A21AFA563200651655 /* libopenh264.a */,
F03A97A31AFA563200651655 /* libopus.a */,
F03A97A41AFA563200651655 /* libortp.a */,
F03A97A71AFA563200651655 /* libspeex.a */,
F03A97A81AFA563200651655 /* libspeexdsp.a */,
F03A97A91AFA563200651655 /* libsrtp.a */,
F03A97AA1AFA563200651655 /* libswresample.a */,
F03A97AB1AFA563200651655 /* libswscale.a */,
F03A97AC1AFA563200651655 /* libvpx.a */,
F03A97AD1AFA563200651655 /* libx264.a */,
F03A978F1AFA561900651655 /* libmsilbc.a */,
F03A97901AFA561900651655 /* libmsopenh264.a */,
F03A97911AFA561900651655 /* libmssilk.a */,
F03A97921AFA561900651655 /* libmsx264.a */,
);
name = Frameworks;
path = MS2;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
F03A97621AFA48E800651655 /* MS2 */ = {
isa = PBXNativeTarget;
buildConfigurationList = F03A97861AFA48E900651655 /* Build configuration list for PBXNativeTarget "MS2" */;
buildPhases = (
F03A975F1AFA48E800651655 /* Sources */,
F03A97601AFA48E800651655 /* Frameworks */,
F03A97611AFA48E800651655 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = MS2;
productName = MS2;
productReference = F03A97631AFA48E800651655 /* MS2.app */;
productType = "com.apple.product-type.application";
};
F03A977B1AFA48E900651655 /* MS2Tests */ = {
isa = PBXNativeTarget;
buildConfigurationList = F03A97891AFA48E900651655 /* Build configuration list for PBXNativeTarget "MS2Tests" */;
buildPhases = (
F03A97781AFA48E900651655 /* Sources */,
F03A97791AFA48E900651655 /* Frameworks */,
F03A977A1AFA48E900651655 /* Resources */,
);
buildRules = (
);
dependencies = (
F03A977E1AFA48E900651655 /* PBXTargetDependency */,
);
name = MS2Tests;
productName = MS2Tests;
productReference = F03A977C1AFA48E900651655 /* MS2Tests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
F03A975B1AFA48E800651655 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0630;
ORGANIZATIONNAME = "Belldonne Communications";
TargetAttributes = {
F03A97621AFA48E800651655 = {
CreatedOnToolsVersion = 6.3;
};
F03A977B1AFA48E900651655 = {
CreatedOnToolsVersion = 6.3;
TestTargetID = F03A97621AFA48E800651655;
};
};
};
buildConfigurationList = F03A975E1AFA48E800651655 /* Build configuration list for PBXProject "MS2" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = F03A975A1AFA48E800651655;
productRefGroup = F03A97641AFA48E800651655 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
F03A97621AFA48E800651655 /* MS2 */,
F03A977B1AFA48E900651655 /* MS2Tests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
F03A97611AFA48E800651655 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F03A97E31AFA64D200651655 /* nowebcamCIF.jpg in Resources */,
F03A97721AFA48E800651655 /* Main.storyboard in Resources */,
F03A97771AFA48E800651655 /* LaunchScreen.xib in Resources */,
F03A97741AFA48E800651655 /* Images.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F03A977A1AFA48E900651655 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
F03A975F1AFA48E800651655 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F03A976F1AFA48E800651655 /* ViewController.m in Sources */,
F03A976C1AFA48E800651655 /* AppDelegate.m in Sources */,
F03A97691AFA48E800651655 /* main.m in Sources */,
F03A97D81AFA580100651655 /* UITextField+DoneButton.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F03A97781AFA48E900651655 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F03A97831AFA48E900651655 /* MS2Tests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
F03A977E1AFA48E900651655 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = F03A97621AFA48E800651655 /* MS2 */;
targetProxy = F03A977D1AFA48E900651655 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
F03A97701AFA48E800651655 /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
F03A97711AFA48E800651655 /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
F03A97751AFA48E800651655 /* LaunchScreen.xib */ = {
isa = PBXVariantGroup;
children = (
F03A97761AFA48E800651655 /* Base */,
);
name = LaunchScreen.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
F03A97841AFA48E900651655 /* 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_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
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 = 8.3;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
F03A97851AFA48E900651655 /* 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_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
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 = 8.3;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
F03A97871AFA48E900651655 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/include",
);
INFOPLIST_FILE = MS2/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"/Users/guillaume/Dev/linphone-iphone/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins",
"/Users/guillaume/Dev/linphone-iphone/liblinphone-sdk/apple-darwin/lib",
);
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
F03A97881AFA48E900651655 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/include",
);
INFOPLIST_FILE = MS2/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"/Users/guillaume/Dev/linphone-iphone/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins",
"/Users/guillaume/Dev/linphone-iphone/liblinphone-sdk/apple-darwin/lib",
);
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
F03A978A1AFA48E900651655 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
);
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = MS2Tests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MS2.app/MS2";
};
name = Debug;
};
F03A978B1AFA48E900651655 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
);
INFOPLIST_FILE = MS2Tests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MS2.app/MS2";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
F03A975E1AFA48E800651655 /* Build configuration list for PBXProject "MS2" */ = {
isa = XCConfigurationList;
buildConfigurations = (
F03A97841AFA48E900651655 /* Debug */,
F03A97851AFA48E900651655 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F03A97861AFA48E900651655 /* Build configuration list for PBXNativeTarget "MS2" */ = {
isa = XCConfigurationList;
buildConfigurations = (
F03A97871AFA48E900651655 /* Debug */,
F03A97881AFA48E900651655 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F03A97891AFA48E900651655 /* Build configuration list for PBXNativeTarget "MS2Tests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
F03A978A1AFA48E900651655 /* Debug */,
F03A978B1AFA48E900651655 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = F03A975B1AFA48E800651655 /* Project object */;
}

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:MS2.xcodeproj">
</FileRef>
</Workspace>

View file

@ -1,15 +0,0 @@
//
// AppDelegate.h
// MS2
//
// Created by guillaume on 06/05/2015.
// Copyright (c) 2015 Belldonne Communications. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property(strong, nonatomic) UIWindow *window;
@end

View file

@ -1,52 +0,0 @@
//
// AppDelegate.m
// MS2
//
// Created by guillaume on 06/05/2015.
// Copyright (c) 2015 Belldonne Communications. All rights reserved.
//
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@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

View file

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6214" systemVersion="14A314h" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6207"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" Copyright (c) 2015 Belldonne Communications. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
<rect key="frame" x="20" y="439" width="441" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="MS2" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
<rect key="frame" x="20" y="140" width="441" height="43"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
<constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
<constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/>
<constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/>
<constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/>
<constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
</constraints>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="548" y="455"/>
</view>
</objects>
</document>

View file

@ -1,128 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="7531" systemVersion="14D131" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7520"/>
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="ViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" horizontalHuggingPriority="249" verticalHuggingPriority="249" verticalCompressionResistancePriority="749" translatesAutoresizingMaskIntoConstraints="NO" id="NEX-36-MqC">
<rect key="frame" x="16" y="20" width="568" height="200"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CBm-CY-BBe" userLabel="remoteVideo">
<rect key="frame" x="0.0" y="0.0" width="282" height="200"/>
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VjN-5I-lOb" userLabel="localVideo">
<rect key="frame" x="287" y="0.0" width="281" height="200"/>
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="VjN-5I-lOb" secondAttribute="bottom" id="5Fh-Fw-eZA"/>
<constraint firstItem="VjN-5I-lOb" firstAttribute="leading" secondItem="CBm-CY-BBe" secondAttribute="trailing" constant="5" id="DEQ-jV-auz"/>
<constraint firstAttribute="bottom" secondItem="CBm-CY-BBe" secondAttribute="bottom" id="Ffv-Mf-Llx"/>
<constraint firstItem="VjN-5I-lOb" firstAttribute="width" secondItem="CBm-CY-BBe" secondAttribute="width" id="JHc-Aa-x2i"/>
<constraint firstItem="VjN-5I-lOb" firstAttribute="top" secondItem="NEX-36-MqC" secondAttribute="top" id="Jio-xo-NA4"/>
<constraint firstItem="CBm-CY-BBe" firstAttribute="top" secondItem="NEX-36-MqC" secondAttribute="top" id="T70-va-mQD"/>
<constraint firstItem="CBm-CY-BBe" firstAttribute="leading" secondItem="NEX-36-MqC" secondAttribute="leading" id="dF0-pU-nUR"/>
<constraint firstAttribute="trailing" secondItem="VjN-5I-lOb" secondAttribute="trailing" id="nkU-HU-fxu"/>
<constraint firstAttribute="height" constant="200" id="trC-wz-mxI"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Dof-dF-W5E">
<rect key="frame" x="16" y="230" width="568" height="360"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Infos" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ahO-FT-Buh" userLabel="InfoLabel">
<rect key="frame" x="10" y="58" width="548" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dpE-4Z-Bca">
<rect key="frame" x="10" y="8" width="100" height="30"/>
<constraints>
<constraint firstAttribute="width" constant="100" id="ULh-vL-P6x"/>
</constraints>
<state key="normal" title="Start streams">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="onStartStreamsClick:" destination="BYZ-38-t0r" eventType="touchUpInside" id="Ef8-CC-iky"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hJG-dO-y2z" userLabel="Change Cam">
<rect key="frame" x="458" y="8" width="100" height="30"/>
<constraints>
<constraint firstAttribute="width" constant="100" id="ucZ-rB-FYo"/>
</constraints>
<state key="normal" title="Push To Cam!">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="changeCamDown:" destination="BYZ-38-t0r" eventType="touchDown" id="v1t-qp-dZb"/>
<action selector="changeCamUp:" destination="BYZ-38-t0r" eventType="touchUpInside" id="i7t-HS-skE"/>
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Bandwidth" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qRc-kS-kqP" userLabel="BWLabel">
<rect key="frame" x="12" y="87" width="548" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="ahO-FT-Buh" secondAttribute="trailing" constant="10" id="IMo-n1-N9M"/>
<constraint firstItem="hJG-dO-y2z" firstAttribute="top" secondItem="Dof-dF-W5E" secondAttribute="top" constant="8" id="Koi-ap-9Ac"/>
<constraint firstItem="ahO-FT-Buh" firstAttribute="leading" secondItem="Dof-dF-W5E" secondAttribute="leading" constant="10" id="NeM-ch-QXt"/>
<constraint firstItem="ahO-FT-Buh" firstAttribute="height" secondItem="qRc-kS-kqP" secondAttribute="height" id="TFn-Oz-nA8"/>
<constraint firstItem="ahO-FT-Buh" firstAttribute="leading" secondItem="qRc-kS-kqP" secondAttribute="leading" constant="-2" id="TSw-Fw-4gv"/>
<constraint firstItem="ahO-FT-Buh" firstAttribute="top" secondItem="dpE-4Z-Bca" secondAttribute="bottom" constant="20" id="bHD-BD-qfs"/>
<constraint firstItem="qRc-kS-kqP" firstAttribute="top" secondItem="ahO-FT-Buh" secondAttribute="bottom" constant="8" id="bQ1-79-qUP"/>
<constraint firstItem="dpE-4Z-Bca" firstAttribute="top" secondItem="Dof-dF-W5E" secondAttribute="top" constant="8" id="bff-S2-ssI"/>
<constraint firstItem="hJG-dO-y2z" firstAttribute="centerY" secondItem="dpE-4Z-Bca" secondAttribute="centerY" id="cpB-ox-u06"/>
<constraint firstItem="dpE-4Z-Bca" firstAttribute="leading" secondItem="Dof-dF-W5E" secondAttribute="leading" constant="10" id="lGn-tx-JZk"/>
<constraint firstAttribute="centerX" secondItem="ahO-FT-Buh" secondAttribute="centerX" id="qGi-4Q-dov"/>
<constraint firstItem="ahO-FT-Buh" firstAttribute="width" secondItem="qRc-kS-kqP" secondAttribute="width" id="s5k-sE-Di2"/>
<constraint firstAttribute="trailing" secondItem="hJG-dO-y2z" secondAttribute="trailing" constant="10" id="yuZ-Up-tVt"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="Dof-dF-W5E" firstAttribute="width" secondItem="NEX-36-MqC" secondAttribute="width" id="HPK-aJ-ipr"/>
<constraint firstItem="wfy-db-euE" firstAttribute="top" secondItem="Dof-dF-W5E" secondAttribute="bottom" constant="10" id="L6J-IF-iaB"/>
<constraint firstItem="NEX-36-MqC" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" id="SKF-lO-hHH"/>
<constraint firstItem="Dof-dF-W5E" firstAttribute="top" secondItem="NEX-36-MqC" secondAttribute="bottom" constant="10" id="VpA-cB-0ae"/>
<constraint firstItem="NEX-36-MqC" firstAttribute="top" secondItem="y3c-jy-aDJ" secondAttribute="bottom" id="YcI-o7-27u"/>
<constraint firstItem="Dof-dF-W5E" firstAttribute="leading" secondItem="NEX-36-MqC" secondAttribute="leading" id="iHb-xY-F8j"/>
<constraint firstAttribute="trailingMargin" secondItem="NEX-36-MqC" secondAttribute="trailing" id="pOO-hc-WkC"/>
</constraints>
</view>
<connections>
<outlet property="bandwidthLabel" destination="qRc-kS-kqP" id="6Y0-4e-J9B"/>
<outlet property="infoLabel" destination="ahO-FT-Buh" id="EZr-MB-hUS"/>
<outlet property="localView" destination="VjN-5I-lOb" id="Hee-ge-Sjd"/>
<outlet property="remoteView" destination="CBm-CY-BBe" id="avg-4V-Kse"/>
<outlet property="startStreamLabel" destination="dpE-4Z-Bca" id="NzX-dg-Wok"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="325" y="387"/>
</scene>
</scenes>
</document>

View file

@ -1,68 +0,0 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View file

@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>com.belledonne-communications.$(PRODUCT_NAME:rfc1034identifier)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>

View file

@ -1,13 +0,0 @@
//
// UITextField+DoneButton.h
// linphone
//
// Created by Gautier Pelloux-Prayer on 14/10/14.
//
//
#import <UIKit/UIKit.h>
@interface UITextField (DoneButton)
- (void)addDoneButton;
@end

View file

@ -1,42 +0,0 @@
//
// UITextField+DoneButton.m
// linphone
//
// Created by Gautier Pelloux-Prayer on 14/10/14.
//
//
#import "UITextField+DoneButton.h"
@implementation UITextField (DoneButton)
- (void)addDoneButton {
// actually on iPad there is a done button
UIToolbar *numberToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
numberToolbar.items = [NSArray
arrayWithObjects:[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Cancel", nil)
style:UIBarButtonItemStyleBordered
target:self
action:@selector(cancelNumberPad)],
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil],
[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Done", nil)
style:UIBarButtonItemStyleDone
target:self
action:@selector(doneWithNumberPad)],
nil];
[numberToolbar sizeToFit];
self.inputAccessoryView = numberToolbar;
}
- (void)cancelNumberPad {
[self resignFirstResponder];
self.text = @"";
}
- (void)doneWithNumberPad {
[self resignFirstResponder];
}
@end

View file

@ -1,24 +0,0 @@
//
// ViewController.h
// MS2
//
// Created by guillaume on 06/05/2015.
// Copyright (c) 2015 Belldonne Communications. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
- (IBAction)onStartStreamsClick:(id)sender;
- (IBAction)changeCamUp:(id)sender;
- (IBAction)changeCamDown:(id)sender;
@property(weak, nonatomic) IBOutlet UIView *remoteView;
@property(weak, nonatomic) IBOutlet UIView *localView;
@property(weak, nonatomic) IBOutlet UIButton *startStreamLabel;
@property(weak, nonatomic) IBOutlet UILabel *infoLabel;
@property(weak, nonatomic) IBOutlet UILabel *bandwidthLabel;
@end

View file

@ -1,151 +0,0 @@
//
// ViewController.m
// MS2
//
// Created by guillaume on 06/05/2015.
// Copyright (c) 2015 Belldonne Communications. All rights reserved.
//
#import "ViewController.h"
#include <ifaddrs.h>
#include <arpa/inet.h>
#import "mediastreamer2/mediastream.h"
#import "oRTP/rtpsession.h"
#import "UITextField+DoneButton.h"
extern void libmsopenh264_init();
@interface ViewController () {
MSWebCam *videoCam;
MSWebCam *noCam;
MSFilter *noWebCamFilter;
MSFilter *videoCamFilter;
RtpProfile *profile;
VideoStream *currentStream;
IceSession *iceSession;
PayloadType *vp8_pt;
}
@end
@implementation ViewController
#define CAM_NAME "AV Capture: com.apple.avfoundation.avcapturedevice.built-in_video:1"
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
ortp_init();
ortp_set_log_level_mask(ORTP_DEBUG | ORTP_MESSAGE | ORTP_WARNING | ORTP_ERROR | ORTP_FATAL);
ms_init();
libmsopenh264_init(); /*no plugin on IOS/Android */
NSString *nowebFile = @"nowebcamCIF.jpg";
NSString *path = [[NSBundle mainBundle] pathForResource:[nowebFile stringByDeletingPathExtension]
ofType:[nowebFile pathExtension]];
ms_static_image_set_default_image([path UTF8String]);
noCam = ms_web_cam_manager_get_cam(ms_web_cam_manager_get(), "StaticImage: Static picture");
videoCam = ms_web_cam_manager_get_cam(ms_web_cam_manager_get(), CAM_NAME);
noWebCamFilter = ms_web_cam_create_reader(noCam);
videoCamFilter = ms_web_cam_create_reader(videoCam);
currentStream = NULL;
profile = rtp_profile_clone_full(&av_profile);
rtp_profile_set_payload(profile, 103, &payload_type_vp8);
vp8_pt = payload_type_clone(rtp_profile_get_payload(profile, 103));
// Enable AVPF
PayloadTypeAvpfParams avpf_params;
payload_type_set_flag(vp8_pt, PAYLOAD_TYPE_RTCP_FEEDBACK_ENABLED);
avpf_params.features =
PAYLOAD_TYPE_AVPF_FIR | PAYLOAD_TYPE_AVPF_PLI | PAYLOAD_TYPE_AVPF_SLI | PAYLOAD_TYPE_AVPF_RPSI;
avpf_params.trr_interval = 3000;
payload_type_set_avpf_params(vp8_pt, avpf_params);
vp8_pt->normal_bitrate = 500000;
[NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(timer:) userInfo:nil repeats:TRUE];
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(infoTimer:) userInfo:nil repeats:TRUE];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)updateInfo {
if (currentStream == NULL) {
self.infoLabel.text = @"No stream";
self.bandwidthLabel.text = @"";
return;
}
const MSWebCam *currentCam = video_stream_get_camera(currentStream);
if (currentCam)
self.infoLabel.text = [NSString stringWithFormat:@"Stream running, current cam: %s", currentCam->name];
else
self.infoLabel.text = @"No Webcam ?!";
MediaStream *ms = (MediaStream *)currentStream;
float upload = rtp_session_get_rtp_send_bandwidth(ms->sessions.rtp_session);
float download = rtp_session_get_rtp_recv_bandwidth(ms->sessions.rtp_session);
self.bandwidthLabel.text =
[NSString stringWithFormat:@"Upload: %f kbit/s, Download: %f kbit/s", upload / 1000.0, download / 1000.0];
}
#pragma mark - Timer callbacks
- (void)timer:(NSTimer *)timer {
if (currentStream) {
media_stream_iterate((MediaStream *)currentStream);
}
}
- (void)infoTimer:(NSTimer *)timer {
[self updateInfo];
}
#pragma mark - Actions
- (IBAction)onStartStreamsClick:(id)sender {
if (currentStream) {
VideoStream *stream = currentStream;
currentStream = NULL;
video_stream_stop_keep_source(stream);
[self.startStreamLabel setTitle:@"Start streams" forState:UIControlStateNormal];
} else {
VideoStream *stream = video_stream_new(3456, 3457, FALSE);
video_stream_set_native_window_id(stream, (unsigned long)self.remoteView);
video_stream_set_native_preview_window_id(stream, (unsigned long)self.localView);
video_stream_start_with_source(stream, profile, "127.0.0.1", 3456, "127.0.0.1", 3457, 103, 30, noCam,
noWebCamFilter);
currentStream = stream;
[self.startStreamLabel setTitle:@"Stop streams" forState:UIControlStateNormal];
[self updateInfo];
}
}
- (IBAction)changeCamUp:(id)sender {
if (currentStream == NULL)
return;
NSLog(@"Restore static cam (%p)", noWebCamFilter);
video_stream_change_source_filter(currentStream, noCam, noWebCamFilter, TRUE);
[self updateInfo];
}
- (IBAction)changeCamDown:(id)sender {
if (currentStream == NULL) {
return;
}
NSLog(@"Use real camera (%p)", videoCamFilter);
video_stream_change_source_filter(currentStream, videoCam, videoCamFilter, TRUE);
[self updateInfo];
}
@end

View file

@ -1,16 +0,0 @@
//
// main.m
// MS2
//
// Created by guillaume on 06/05/2015.
// Copyright (c) 2015 Belldonne Communications. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char *argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>com.belledonne-communications.$(PRODUCT_NAME:rfc1034identifier)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

View file

@ -1,40 +0,0 @@
//
// MS2Tests.m
// MS2Tests
//
// Created by guillaume on 06/05/2015.
// Copyright (c) 2015 Belldonne Communications. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>
@interface MS2Tests : XCTestCase
@end
@implementation MS2Tests
- (void)setUp {
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
}
- (void)tearDown {
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testExample {
// This is an example of a functional test case.
XCTAssert(YES, @"Pass");
}
- (void)testPerformanceExample {
// This is an example of a performance test case.
[self measureBlock:^{
// Put the code you want to measure the time of here.
}];
}
@end

View file

@ -1,10 +0,0 @@
## Simple example of MediaStreamer 2 usage
This Xcode project is a simple local (not using the network) example of use of the MediaStreamer2 API. **This project only works on a real device with a camera onboard: running it on the simulator will not work**.
It requires first that you compile the liblinphone SDK into the `submodules/build` directory. Please read theroot directory README for instructions on how to build this SDK.
After that, simply open the MS2.xcodeproj file with Xcode and press the Run button on the top.
You will be presented with a munimal UI that lets you start a streaming session, and switch rapidly between a static image and the live image coming from the camera sensor of the device.

View file

@ -1,31 +0,0 @@
############################################################################
# Makefile
# Copyright (C) 2009 Belledonne Communications,Grenoble France
#
############################################################################
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
############################################################################
all:
@echo "*******************************************************************************"
@echo "This makefile is deprecated. Please see README.md for compilation instructions. Here are some equivalents:"
@echo "Equivalent of make is: cd ../../ && ./prepare.py && make"
@echo "Equivalent of make enable_gpl_third_parties=no is: cd ../../ && ./prepare.py -DENABLE_GPL_THIRD_PARTIES=NO && make"
@echo "Equivalent of make enable_debug=yes is: cd ../../ && ./prepare.py -d && make"
@echo "Equivalent of make enable_i386=yes is: cd ../../ && ./prepare.py all && make"
@echo "Equivalent of make enable_zrpt=yes enable_opus=yes enable_ffmpeg is: cd ../../ && ./prepare.py -DENABLE_ZRTP=YES -DENABLE_OPUS=YES -DENABLE_FFMPEG=YES && make"
@echo "*******************************************************************************"

File diff suppressed because it is too large Load diff

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:liblinphone.xcodeproj">
</FileRef>
</Workspace>

View file

@ -1,53 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>9A1D1003-FB23-4CFA-98EE-023D9D0776DB</string>
<key>IDESourceControlProjectName</key>
<string>liblinphone</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>0D7533C70B3E77874DB4DC9E2131A9B1895C2C86</key>
<string>git.linphone.org:linphone-iphone.git</string>
<key>B9A509D4F3D25560F565CB53A09A75E2140C5232</key>
<string>git://git.linphone.org/mediastreamer2.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>submodules/liblinphone.xcodeproj</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>0D7533C70B3E77874DB4DC9E2131A9B1895C2C86</key>
<string>../../..</string>
<key>B9A509D4F3D25560F565CB53A09A75E2140C5232</key>
<string>../../..submodules/linphone/mediastreamer2</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>git.linphone.org:linphone-iphone.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>111</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>0D7533C70B3E77874DB4DC9E2131A9B1895C2C86</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>0D7533C70B3E77874DB4DC9E2131A9B1895C2C86</string>
<key>IDESourceControlWCCName</key>
<string>linphone-iphone</string>
</dict>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>B9A509D4F3D25560F565CB53A09A75E2140C5232</string>
<key>IDESourceControlWCCName</key>
<string>mediastreamer2</string>
</dict>
</array>
</dict>
</plist>

View file

@ -1,7 +0,0 @@
//
// Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project.
//
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#endif

View file

@ -1,28 +0,0 @@
//
// DTObjectBlockExecutor.h
// DTFoundation
//
// Created by Oliver Drobnik on 12.02.13.
// Copyright (c) 2013 Cocoanetics. All rights reserved.
//
/**
This class is used by [NSObject addDeallocBlock:] to execute blocks on dealloc
*/
#import <Foundation/Foundation.h>
@interface DTObjectBlockExecutor : NSObject
/**
Convenience method to create a block executor with a deallocation block
@param block The block to execute when the created receiver is being deallocated
*/
+ (id)blockExecutorWithDeallocBlock:(void (^)())block;
/**
Block to execute when dealloc of the receiver is called
*/
@property(nonatomic, copy) void (^deallocBlock)();
@end

View file

@ -1,26 +0,0 @@
//
// DTObjectBlockExecutor.m
// DTFoundation
//
// Created by Oliver Drobnik on 12.02.13.
// Copyright (c) 2013 Cocoanetics. All rights reserved.
//
#import "DTObjectBlockExecutor.h"
@implementation DTObjectBlockExecutor
+ (id)blockExecutorWithDeallocBlock:(void (^)())block {
DTObjectBlockExecutor *executor = [[DTObjectBlockExecutor alloc] init];
executor.deallocBlock = block; // copy
return executor;
}
- (void)dealloc {
if (_deallocBlock) {
_deallocBlock();
_deallocBlock = nil;
}
}
@end

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>com.belledonne-communications.tester.$(PRODUCT_NAME:rfc1034identifier)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

View file

@ -1,58 +0,0 @@
//
// NSObject+DTRuntime.h
// DTFoundation
//
// Created by Oliver Drobnik on 4/25/12.
// Copyright (c) 2012 Cocoanetics. All rights reserved.
//
/**
Methods to dynamically modify objects at runtime
*/
@interface NSObject (DTRuntime)
/**-------------------------------------------------------------------------------------
@name Blocks
---------------------------------------------------------------------------------------
*/
/**
Adds a block to be executed as soon as the receiver's memory is deallocated
@param block The block to execute when the receiver is being deallocated
*/
- (void)addDeallocBlock:(void (^)())block;
/**
Adds a new instance method to a class. All instances of this class will have this method.
The block captures `self` in the calling context. To allow access to the instance from within the block it is passed as
parameter to the block.
@param selectorName The name of the method.
@param block The block to execute for the instance method, a pointer to the instance is passed as the only parameter.
@returns `YES` if the operation was successful
*/
+ (BOOL)addInstanceMethodWithSelectorName:(NSString *)selectorName block:(void (^)(id))block;
/**-------------------------------------------------------------------------------------
@name Method Swizzling
---------------------------------------------------------------------------------------
*/
/**
Exchanges two method implementations. After the call methods to the first selector will now go to the second one and
vice versa.
@param selector The first method
@param otherSelector The second method
*/
+ (void)swizzleMethod:(SEL)selector withMethod:(SEL)otherSelector;
/**
Exchanges two class method implementations. After the call methods to the first selector will now go to the second one
and vice versa.
@param selector The first method
@param otherSelector The second method
*/
+ (void)swizzleClassMethod:(SEL)selector withMethod:(SEL)otherSelector;
@end

View file

@ -1,94 +0,0 @@
//
// NSObject_DTRuntime.h
// DTFoundation
//
// Created by Oliver Drobnik on 4/25/12.
// Copyright (c) 2012 Cocoanetics. All rights reserved.
//
#import <objc/runtime.h>
#import "DTObjectBlockExecutor.h"
@implementation NSObject (DTRuntime)
static char DTRuntimeDeallocBlocks;
#pragma mark - Blocks
- (void)addDeallocBlock:(void (^)())block {
// don't accept NULL block
NSParameterAssert(block);
NSMutableArray *deallocBlocks = objc_getAssociatedObject(self, &DTRuntimeDeallocBlocks);
// add array of dealloc blocks if not existing yet
if (!deallocBlocks) {
deallocBlocks = [[NSMutableArray alloc] init];
objc_setAssociatedObject(self, &DTRuntimeDeallocBlocks, deallocBlocks, OBJC_ASSOCIATION_RETAIN);
}
DTObjectBlockExecutor *executor = [DTObjectBlockExecutor blockExecutorWithDeallocBlock:block];
[deallocBlocks addObject:executor];
}
+ (BOOL)addInstanceMethodWithSelectorName:(NSString *)selectorName block:(void (^)(id))block {
// don't accept nil name
NSParameterAssert(selectorName);
// don't accept NULL block
NSParameterAssert(block);
// See http://stackoverflow.com/questions/6357663/casting-a-block-to-a-void-for-dynamic-class-method-resolution
#if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_7
void *impBlockForIMP = (void *)objc_unretainedPointer(block);
#else
id impBlockForIMP = (__bridge id)objc_unretainedPointer(block);
#endif
IMP myIMP = imp_implementationWithBlock(impBlockForIMP);
SEL selector = NSSelectorFromString(selectorName);
return class_addMethod(self, selector, myIMP, "v@:");
}
#pragma mark - Method Swizzling
+ (void)swizzleMethod:(SEL)selector withMethod:(SEL)otherSelector {
// my own class is being targetted
Class c = [self class];
// get the methods from the selectors
Method originalMethod = class_getInstanceMethod(c, selector);
Method otherMethod = class_getInstanceMethod(c, otherSelector);
if (class_addMethod(c, selector, method_getImplementation(otherMethod), method_getTypeEncoding(otherMethod))) {
class_replaceMethod(c, otherSelector, method_getImplementation(originalMethod),
method_getTypeEncoding(originalMethod));
} else {
method_exchangeImplementations(originalMethod, otherMethod);
}
}
+ (void)swizzleClassMethod:(SEL)selector withMethod:(SEL)otherSelector {
// my own class is being targetted
Class c = [self class];
// get the methods from the selectors
Method originalMethod = class_getClassMethod(c, selector);
Method otherMethod = class_getClassMethod(c, otherSelector);
// if (class_addMethod(c, selector, method_getImplementation(otherMethod), method_getTypeEncoding(otherMethod)))
// {
// class_replaceMethod(c, otherSelector, method_getImplementation(originalMethod),
// method_getTypeEncoding(originalMethod));
// }
// else
// {
method_exchangeImplementations(originalMethod, otherMethod);
// }
}
@end

View file

@ -1,107 +0,0 @@
//
// mediastream_tester_Tests.m
// mediastream-tester Tests
//
// Created by guillaume on 21/11/2014.
//
//
#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>
#include "ortp.h"
#import "NSObject+DTRuntime.h"
#include "mediastreamer2_tester.h"
@interface mediastream_tester_Tests : XCTestCase
@property(nonatomic, retain) NSString *bundlePath;
@property(nonatomic, retain) NSString *documentPath;
@property(nonatomic, retain) NSString *staticImagePath;
@end
@implementation mediastream_tester_Tests
+ (NSArray *)skippedSuites {
NSArray *skipped_suites = @[];
return skipped_suites;
}
+ (NSString *)safeifyTestString:(NSString *)testString {
NSArray *invalidChars = @[ @"[", @"]", @" ", @"-", @"." ];
NSString *safeString = testString;
for (NSString *c in invalidChars) {
safeString = [safeString stringByReplacingOccurrencesOfString:c withString:@"_"];
}
return safeString;
}
static void log_handler(int lev, const char *fmt, va_list args) {
va_list cap;
va_copy(cap, args);
/* Otherwise, we must use stdio to avoid log formatting (for autocompletion etc.) */
vfprintf(lev == ORTP_ERROR ? stderr : stdout, fmt, cap);
fprintf(lev == ORTP_ERROR ? stderr : stdout, "\n");
va_end(cap);
}
+ (void)initialize {
bc_tester_init(log_handler, ORTP_MESSAGE, ORTP_ERROR);
ortp_set_log_level_mask(ORTP_MESSAGE | ORTP_WARNING | ORTP_ERROR | ORTP_FATAL);
int count = bc_tester_nb_suites();
for (int i = 0; i < count; i++) {
const char *suite = bc_tester_suite_name(i);
int test_count = bc_tester_nb_tests(suite);
for (int k = 0; k < test_count; k++) {
const char *test = bc_tester_test_name(suite, k);
NSString *sSuite = [NSString stringWithUTF8String:suite];
NSString *sTest = [NSString stringWithUTF8String:test];
if ([[mediastream_tester_Tests skippedSuites] containsObject:sSuite])
continue;
// prepend test_ so that it gets found by introspection
NSString *safesTest = [self safeifyTestString:sTest];
NSString *safesSuite = [self safeifyTestString:sSuite];
NSString *selectorName = [NSString stringWithFormat:@"test_%@__%@", safesSuite, safesTest];
NSLog(@"Adding test: %@", selectorName);
[mediastream_tester_Tests addInstanceMethodWithSelectorName:selectorName
block:^(mediastream_tester_Tests *myself) {
[myself testForSuite:sSuite andTest:sTest];
}];
}
}
}
- (void)setUp {
[super setUp];
self.bundlePath = [[NSBundle mainBundle] bundlePath];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
self.documentPath = [paths objectAtIndex:0];
self.staticImagePath = [[self.bundlePath stringByAppendingString:@"/"] stringByAppendingString:@"nowebcamCIF.jpg"];
NSLog(@"Bundle path: %@", self.bundlePath);
NSLog(@"Document path: %@", self.documentPath);
bc_tester_writable_dir_prefix = [self.documentPath UTF8String];
bc_tester_read_dir_prefix = [self.bundlePath UTF8String];
ms_static_image_set_default_image([self.staticImagePath UTF8String]);
// Put setup code here. This method is called before the invocation of each test method in the class.
}
- (void)tearDown {
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testForSuite:(NSString *)suite andTest:(NSString *)test {
NSLog(@"Launching test %@ from suite %@", test, suite);
XCTAssertFalse(bc_tester_run_tests([suite UTF8String], [test UTF8String]), @"Suite '%@' / Test '%@' failed", suite,
test);
}
@end