summaryrefslogtreecommitdiff
path: root/pjsip-apps
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2014-04-08 09:43:01 +0000
committerLiong Sauw Ming <ming@teluu.com>2014-04-08 09:43:01 +0000
commit606c6843f5b533740858d65c8568485f0eb3ed93 (patch)
treee74e5d0289d13873de56461c9fbd58b34d82837c /pjsip-apps
parentf8f81f703f4715440cbfb28c2232345df5564b80 (diff)
Re #1757: Add example to display video in ipjsua (require ffmpeg libraries)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4813 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip-apps')
-rw-r--r--pjsip-apps/src/pjsua/ios/ipjsua.xcodeproj/project.pbxproj112
-rw-r--r--pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaAppDelegate.h22
-rw-r--r--pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaAppDelegate.m54
-rw-r--r--pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaViewController.h22
-rw-r--r--pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaViewController.m22
-rw-r--r--pjsip-apps/src/pjsua/pjsua_app.c3
6 files changed, 182 insertions, 53 deletions
diff --git a/pjsip-apps/src/pjsua/ios/ipjsua.xcodeproj/project.pbxproj b/pjsip-apps/src/pjsua/ios/ipjsua.xcodeproj/project.pbxproj
index 3219b42f..560c0ad0 100644
--- a/pjsip-apps/src/pjsua/ios/ipjsua.xcodeproj/project.pbxproj
+++ b/pjsip-apps/src/pjsua/ios/ipjsua.xcodeproj/project.pbxproj
@@ -7,18 +7,32 @@
objects = {
/* Begin PBXBuildFile section */
- 3A92068F16F1DE7100D49F96 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A92068E16F1DE7100D49F96 /* AudioToolbox.framework */; };
- 3A92069316F1DEA500D49F96 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A92069216F1DEA500D49F96 /* CFNetwork.framework */; };
+ 3A7E649018E9A60700C00CB6 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A7E648B18E9A60700C00CB6 /* libswscale.a */; };
+ 3A7E649118E9A60700C00CB6 /* libavformat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A7E648C18E9A60700C00CB6 /* libavformat.a */; };
+ 3A7E649218E9A60700C00CB6 /* libavresample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A7E648D18E9A60700C00CB6 /* libavresample.a */; };
+ 3A7E649318E9A60700C00CB6 /* libavfilter.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A7E648E18E9A60700C00CB6 /* libavfilter.a */; };
+ 3A7E649618E9A91400C00CB6 /* libavutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A7E649518E9A91400C00CB6 /* libavutil.a */; };
+ 3A7E649A18E9A94100C00CB6 /* libavcodec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A7E649918E9A94100C00CB6 /* libavcodec.a */; };
+ 3A7E649C18E9A95500C00CB6 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A7E649B18E9A95500C00CB6 /* libz.dylib */; };
+ 3AA31FF618F3FB4C00112C3D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FE918F3FB4C00112C3D /* AudioToolbox.framework */; };
+ 3AA31FF718F3FB4C00112C3D /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FEA18F3FB4C00112C3D /* AVFoundation.framework */; };
+ 3AA31FF818F3FB4C00112C3D /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FEB18F3FB4C00112C3D /* CFNetwork.framework */; };
+ 3AA31FF918F3FB4C00112C3D /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FEC18F3FB4C00112C3D /* CoreAudio.framework */; };
+ 3AA31FFA18F3FB4C00112C3D /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FED18F3FB4C00112C3D /* CoreFoundation.framework */; };
+ 3AA31FFB18F3FB4C00112C3D /* CoreImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FEE18F3FB4C00112C3D /* CoreImage.framework */; };
+ 3AA31FFC18F3FB4C00112C3D /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FEF18F3FB4C00112C3D /* CoreMedia.framework */; };
+ 3AA31FFD18F3FB4C00112C3D /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FF018F3FB4C00112C3D /* CoreVideo.framework */; };
+ 3AA31FFE18F3FB4C00112C3D /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FF118F3FB4C00112C3D /* OpenGLES.framework */; };
+ 3AA31FFF18F3FB4C00112C3D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FF218F3FB4C00112C3D /* QuartzCore.framework */; };
+ 3AA3200018F3FB4C00112C3D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FF318F3FB4C00112C3D /* Foundation.framework */; };
+ 3AA3200118F3FB4C00112C3D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FF418F3FB4C00112C3D /* CoreGraphics.framework */; };
+ 3AA3200218F3FB4C00112C3D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AA31FF518F3FB4C00112C3D /* UIKit.framework */; };
3ADCCD171715338D0007BE8E /* pjsua.png in Resources */ = {isa = PBXBuildFile; fileRef = 3ADCCD161715338D0007BE8E /* pjsua.png */; };
3ADCCD2D172E40120007BE8E /* pjsua_app_cli.c in Sources */ = {isa = PBXBuildFile; fileRef = 3ADCCD28172E40120007BE8E /* pjsua_app_cli.c */; };
3ADCCD2E172E40120007BE8E /* pjsua_app_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 3ADCCD29172E40120007BE8E /* pjsua_app_common.c */; };
3ADCCD2F172E40120007BE8E /* pjsua_app_config.c in Sources */ = {isa = PBXBuildFile; fileRef = 3ADCCD2A172E40120007BE8E /* pjsua_app_config.c */; };
3ADCCD30172E40120007BE8E /* pjsua_app_legacy.c in Sources */ = {isa = PBXBuildFile; fileRef = 3ADCCD2B172E40120007BE8E /* pjsua_app_legacy.c */; };
3ADCCD31172E40120007BE8E /* pjsua_app.c in Sources */ = {isa = PBXBuildFile; fileRef = 3ADCCD2C172E40120007BE8E /* pjsua_app.c */; };
- 3ADFCCFD1803B00600B0A097 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3ADFCCFC1803B00600B0A097 /* AVFoundation.framework */; };
- 3AF0580916F050770046B835 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AF0580816F050770046B835 /* UIKit.framework */; };
- 3AF0580B16F050770046B835 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AF0580A16F050770046B835 /* Foundation.framework */; };
- 3AF0580D16F050770046B835 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AF0580C16F050770046B835 /* CoreGraphics.framework */; };
3AF0581316F050780046B835 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3AF0581116F050780046B835 /* InfoPlist.strings */; };
3AF0581516F050780046B835 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AF0581416F050780046B835 /* main.m */; };
3AF0581916F050780046B835 /* ipjsuaAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AF0581816F050780046B835 /* ipjsuaAppDelegate.m */; };
@@ -49,19 +63,34 @@
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
- 3A92068E16F1DE7100D49F96 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
- 3A92069216F1DEA500D49F96 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
+ 3A7E648B18E9A60700C00CB6 /* libswscale.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libswscale.a; path = "../../../../../video/ffmpeg-iphone/build/built/armv7/lib/libswscale.a"; sourceTree = "<group>"; };
+ 3A7E648C18E9A60700C00CB6 /* libavformat.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavformat.a; path = "../../../../../video/ffmpeg-iphone/build/built/armv7/lib/libavformat.a"; sourceTree = "<group>"; };
+ 3A7E648D18E9A60700C00CB6 /* libavresample.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavresample.a; path = "../../../../../video/ffmpeg-iphone/build/built/armv7/lib/libavresample.a"; sourceTree = "<group>"; };
+ 3A7E648E18E9A60700C00CB6 /* libavfilter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavfilter.a; path = "../../../../../video/ffmpeg-iphone/build/built/armv7/lib/libavfilter.a"; sourceTree = "<group>"; };
+ 3A7E648F18E9A60700C00CB6 /* libavdevice.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavdevice.a; path = "../../../../../video/ffmpeg-iphone/build/built/armv7/lib/libavdevice.a"; sourceTree = "<group>"; };
+ 3A7E649518E9A91400C00CB6 /* libavutil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavutil.a; path = "../../../../../video/ffmpeg-iphone/build/built/armv7/lib/libavutil.a"; sourceTree = "<group>"; };
+ 3A7E649918E9A94100C00CB6 /* libavcodec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavcodec.a; path = "../../../../../video/ffmpeg-iphone/build/built/armv7/lib/libavcodec.a"; sourceTree = "<group>"; };
+ 3A7E649B18E9A95500C00CB6 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
+ 3AA31FE918F3FB4C00112C3D /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+ 3AA31FEA18F3FB4C00112C3D /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
+ 3AA31FEB18F3FB4C00112C3D /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
+ 3AA31FEC18F3FB4C00112C3D /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
+ 3AA31FED18F3FB4C00112C3D /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
+ 3AA31FEE18F3FB4C00112C3D /* CoreImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = System/Library/Frameworks/CoreImage.framework; sourceTree = SDKROOT; };
+ 3AA31FEF18F3FB4C00112C3D /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
+ 3AA31FF018F3FB4C00112C3D /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; };
+ 3AA31FF118F3FB4C00112C3D /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
+ 3AA31FF218F3FB4C00112C3D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+ 3AA31FF318F3FB4C00112C3D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 3AA31FF418F3FB4C00112C3D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ 3AA31FF518F3FB4C00112C3D /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
3ADCCD161715338D0007BE8E /* pjsua.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pjsua.png; sourceTree = "<group>"; };
3ADCCD28172E40120007BE8E /* pjsua_app_cli.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pjsua_app_cli.c; path = ../../pjsua_app_cli.c; sourceTree = "<group>"; };
3ADCCD29172E40120007BE8E /* pjsua_app_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pjsua_app_common.c; path = ../../pjsua_app_common.c; sourceTree = "<group>"; };
3ADCCD2A172E40120007BE8E /* pjsua_app_config.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pjsua_app_config.c; path = ../../pjsua_app_config.c; sourceTree = "<group>"; };
3ADCCD2B172E40120007BE8E /* pjsua_app_legacy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pjsua_app_legacy.c; path = ../../pjsua_app_legacy.c; sourceTree = "<group>"; };
3ADCCD2C172E40120007BE8E /* pjsua_app.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pjsua_app.c; path = ../../pjsua_app.c; sourceTree = "<group>"; };
- 3ADFCCFC1803B00600B0A097 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
3AF0580416F050770046B835 /* ipjsua.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ipjsua.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 3AF0580816F050770046B835 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
- 3AF0580A16F050770046B835 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- 3AF0580C16F050770046B835 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
3AF0581016F050780046B835 /* ipjsua-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "ipjsua-Info.plist"; sourceTree = "<group>"; };
3AF0581216F050780046B835 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
3AF0581416F050780046B835 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
@@ -100,26 +129,40 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 3ADFCCFD1803B00600B0A097 /* AVFoundation.framework in Frameworks */,
- 3A92069316F1DEA500D49F96 /* CFNetwork.framework in Frameworks */,
- 3A92068F16F1DE7100D49F96 /* AudioToolbox.framework in Frameworks */,
- 3AF0580916F050770046B835 /* UIKit.framework in Frameworks */,
- 3AF0580B16F050770046B835 /* Foundation.framework in Frameworks */,
- 3AF0580D16F050770046B835 /* CoreGraphics.framework in Frameworks */,
+ 3A7E649318E9A60700C00CB6 /* libavfilter.a in Frameworks */,
+ 3A7E649118E9A60700C00CB6 /* libavformat.a in Frameworks */,
+ 3AA31FF818F3FB4C00112C3D /* CFNetwork.framework in Frameworks */,
3AF0583716F057740046B835 /* libpj-arm-apple-darwin9.a in Frameworks */,
3AF0583916F057890046B835 /* libpjlib-util-arm-apple-darwin9.a in Frameworks */,
3AF0583F16F057B20046B835 /* libpjmedia-arm-apple-darwin9.a in Frameworks */,
+ 3AA31FFB18F3FB4C00112C3D /* CoreImage.framework in Frameworks */,
+ 3AA31FF618F3FB4C00112C3D /* AudioToolbox.framework in Frameworks */,
3AF0584016F057B30046B835 /* libpjmedia-audiodev-arm-apple-darwin9.a in Frameworks */,
+ 3A7E649218E9A60700C00CB6 /* libavresample.a in Frameworks */,
3AF0584116F057B30046B835 /* libpjmedia-codec-arm-apple-darwin9.a in Frameworks */,
3AF0584216F057B30046B835 /* libpjmedia-videodev-arm-apple-darwin9.a in Frameworks */,
3AF0584316F057B30046B835 /* libpjsdp-arm-apple-darwin9.a in Frameworks */,
+ 3AA31FF718F3FB4C00112C3D /* AVFoundation.framework in Frameworks */,
3AF0584516F057D30046B835 /* libpjnath-arm-apple-darwin9.a in Frameworks */,
+ 3AA31FFE18F3FB4C00112C3D /* OpenGLES.framework in Frameworks */,
+ 3A7E649618E9A91400C00CB6 /* libavutil.a in Frameworks */,
3AF0584A16F057F70046B835 /* libpjsip-arm-apple-darwin9.a in Frameworks */,
+ 3A7E649C18E9A95500C00CB6 /* libz.dylib in Frameworks */,
+ 3AA3200018F3FB4C00112C3D /* Foundation.framework in Frameworks */,
+ 3AA3200118F3FB4C00112C3D /* CoreGraphics.framework in Frameworks */,
3AF0584B16F057F70046B835 /* libpjsip-simple-arm-apple-darwin9.a in Frameworks */,
+ 3AA31FF918F3FB4C00112C3D /* CoreAudio.framework in Frameworks */,
+ 3AA31FFD18F3FB4C00112C3D /* CoreVideo.framework in Frameworks */,
3AF0584C16F057F70046B835 /* libpjsip-ua-arm-apple-darwin9.a in Frameworks */,
+ 3AA3200218F3FB4C00112C3D /* UIKit.framework in Frameworks */,
+ 3AA31FFA18F3FB4C00112C3D /* CoreFoundation.framework in Frameworks */,
3AF0584D16F057F70046B835 /* libpjsua-arm-apple-darwin9.a in Frameworks */,
+ 3A7E649018E9A60700C00CB6 /* libswscale.a in Frameworks */,
+ 3AA31FFC18F3FB4C00112C3D /* CoreMedia.framework in Frameworks */,
+ 3A7E649A18E9A94100C00CB6 /* libavcodec.a in Frameworks */,
3AF0585516F058290046B835 /* libg7221codec-arm-apple-darwin9.a in Frameworks */,
3AF0585616F058290046B835 /* libgsmcodec-arm-apple-darwin9.a in Frameworks */,
+ 3AA31FFF18F3FB4C00112C3D /* QuartzCore.framework in Frameworks */,
3AF0585716F058290046B835 /* libilbccodec-arm-apple-darwin9.a in Frameworks */,
3AF0585916F058290046B835 /* libresample-arm-apple-darwin9.a in Frameworks */,
3AF0585A16F058290046B835 /* libspeex-arm-apple-darwin9.a in Frameworks */,
@@ -163,12 +206,19 @@
3AF0580716F050770046B835 /* Frameworks */ = {
isa = PBXGroup;
children = (
- 3ADFCCFC1803B00600B0A097 /* AVFoundation.framework */,
- 3A92069216F1DEA500D49F96 /* CFNetwork.framework */,
- 3A92068E16F1DE7100D49F96 /* AudioToolbox.framework */,
- 3AF0580816F050770046B835 /* UIKit.framework */,
- 3AF0580A16F050770046B835 /* Foundation.framework */,
- 3AF0580C16F050770046B835 /* CoreGraphics.framework */,
+ 3AA31FE918F3FB4C00112C3D /* AudioToolbox.framework */,
+ 3AA31FEA18F3FB4C00112C3D /* AVFoundation.framework */,
+ 3AA31FEB18F3FB4C00112C3D /* CFNetwork.framework */,
+ 3AA31FEC18F3FB4C00112C3D /* CoreAudio.framework */,
+ 3AA31FED18F3FB4C00112C3D /* CoreFoundation.framework */,
+ 3AA31FEE18F3FB4C00112C3D /* CoreImage.framework */,
+ 3AA31FEF18F3FB4C00112C3D /* CoreMedia.framework */,
+ 3AA31FF018F3FB4C00112C3D /* CoreVideo.framework */,
+ 3AA31FF118F3FB4C00112C3D /* OpenGLES.framework */,
+ 3AA31FF218F3FB4C00112C3D /* QuartzCore.framework */,
+ 3AA31FF318F3FB4C00112C3D /* Foundation.framework */,
+ 3AA31FF418F3FB4C00112C3D /* CoreGraphics.framework */,
+ 3AA31FF518F3FB4C00112C3D /* UIKit.framework */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -206,6 +256,14 @@
3AF0583516F056CC0046B835 /* Libraries */ = {
isa = PBXGroup;
children = (
+ 3A7E649B18E9A95500C00CB6 /* libz.dylib */,
+ 3A7E649918E9A94100C00CB6 /* libavcodec.a */,
+ 3A7E649518E9A91400C00CB6 /* libavutil.a */,
+ 3A7E648B18E9A60700C00CB6 /* libswscale.a */,
+ 3A7E648C18E9A60700C00CB6 /* libavformat.a */,
+ 3A7E648D18E9A60700C00CB6 /* libavresample.a */,
+ 3A7E648E18E9A60700C00CB6 /* libavfilter.a */,
+ 3A7E648F18E9A60700C00CB6 /* libavdevice.a */,
3AF0584E16F058290046B835 /* libg7221codec-arm-apple-darwin9.a */,
3AF0584F16F058290046B835 /* libgsmcodec-arm-apple-darwin9.a */,
3AF0585016F058290046B835 /* libilbccodec-arm-apple-darwin9.a */,
@@ -410,13 +468,14 @@
INFOPLIST_FILE = "ipjsua/ipjsua-Info.plist";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
- "\"$(SRCROOT)\"",
+ "$(SRCROOT)",
"\"$(SRCROOT)/../../../../pjlib/lib\"",
"\"$(SRCROOT)/../../../../pjlib-util/lib\"",
"\"$(SRCROOT)/../../../../pjmedia/lib\"",
"\"$(SRCROOT)/../../../../pjnath/lib\"",
"\"$(SRCROOT)/../../../../pjsip/lib\"",
"\"$(SRCROOT)/../../../../third_party/lib\"",
+ "../../../../../video/ffmpeg-iphone/build/built/armv7/lib",
);
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -445,13 +504,14 @@
INFOPLIST_FILE = "ipjsua/ipjsua-Info.plist";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
- "\"$(SRCROOT)\"",
+ "$(SRCROOT)",
"\"$(SRCROOT)/../../../../pjlib/lib\"",
"\"$(SRCROOT)/../../../../pjlib-util/lib\"",
"\"$(SRCROOT)/../../../../pjmedia/lib\"",
"\"$(SRCROOT)/../../../../pjnath/lib\"",
"\"$(SRCROOT)/../../../../pjsip/lib\"",
"\"$(SRCROOT)/../../../../third_party/lib\"",
+ "../../../../../video/ffmpeg-iphone/build/built/armv7/lib",
);
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
diff --git a/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaAppDelegate.h b/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaAppDelegate.h
index 56e6d3ea..7f01d275 100644
--- a/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaAppDelegate.h
+++ b/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaAppDelegate.h
@@ -1,11 +1,23 @@
//
// ipjsuaAppDelegate.h
// ipjsua
-//
-// Created by Liong Sauw Ming on 13/3/13.
-// Copyright (c) 2013 Teluu. All rights reserved.
-//
-
+/*
+ * Copyright (C) 2013-2014 Teluu Inc. (http://www.teluu.com)
+ *
+ * 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
+ */
#import <UIKit/UIKit.h>
@class ipjsuaViewController;
diff --git a/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaAppDelegate.m b/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaAppDelegate.m
index 5bcf2409..d415d94c 100644
--- a/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaAppDelegate.m
+++ b/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaAppDelegate.m
@@ -1,11 +1,23 @@
//
// ipjsuaAppDelegate.m
// ipjsua
-//
-// Created by Liong Sauw Ming on 13/3/13.
-// Copyright (c) 2013 Teluu. All rights reserved.
-//
-
+/*
+ * Copyright (C) 2013-2014 Teluu Inc. (http://www.teluu.com)
+ *
+ * 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
+ */
#import "ipjsuaAppDelegate.h"
#import <pjlib.h>
#import <pjsua.h>
@@ -33,8 +45,8 @@ static pj_thread_t *a_thread;
static void displayMsg(const char *msg)
{
NSString *str = [NSString stringWithFormat:@"%s", msg];
- [app performSelectorOnMainThread:@selector(displayMsg:) withObject:str
- waitUntilDone:NO];
+ dispatch_async(dispatch_get_main_queue(),
+ ^{app.viewController.textLabel.text = str;});
}
static void pjsuaOnStartedCb(pj_status_t status, const char* msg)
@@ -73,11 +85,6 @@ static void pjsuaOnAppConfigCb(pjsua_app_config *cfg)
PJ_UNUSED_ARG(cfg);
}
-- (void)displayMsg:(NSString *)str
-{
- app.viewController.textLabel.text = str;
-}
-
- (void)pjsuaStart
{
// TODO: read from config?
@@ -215,4 +222,27 @@ pj_bool_t showNotification(pjsua_call_id call_id)
return PJ_FALSE;
}
+void displayWindow(pjsua_vid_win_id wid)
+{
+#if PJSUA_HAS_VIDEO
+ pjsua_vid_win_info wi;
+
+ if (wid != PJSUA_INVALID_ID &&
+ pjsua_vid_win_get_info(wid, &wi) == PJ_SUCCESS)
+ {
+ UIView *view = (__bridge UIView *)wi.hwnd.info.ios.window;
+ if (view) {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ UIView *parent = app.viewController.view;
+ /* Add the video window as subview */
+ [parent addSubview:view];
+ /* Center it */
+ view.center = CGPointMake(parent.bounds.size.width/2.0,
+ parent.bounds.size.height/2.0);
+ });
+ }
+ }
+#endif
+}
+
@end
diff --git a/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaViewController.h b/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaViewController.h
index 1b892756..460a7349 100644
--- a/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaViewController.h
+++ b/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaViewController.h
@@ -1,11 +1,23 @@
//
// ipjsuaViewController.h
// ipjsua
-//
-// Created by Liong Sauw Ming on 13/3/13.
-// Copyright (c) 2013 Teluu. All rights reserved.
-//
-
+/*
+ * Copyright (C) 2013-2014 Teluu Inc. (http://www.teluu.com)
+ *
+ * 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
+ */
#import <UIKit/UIKit.h>
@interface ipjsuaViewController : UIViewController
diff --git a/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaViewController.m b/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaViewController.m
index 44b335ee..d03acd5a 100644
--- a/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaViewController.m
+++ b/pjsip-apps/src/pjsua/ios/ipjsua/ipjsuaViewController.m
@@ -1,11 +1,23 @@
//
// ipjsuaViewController.m
// ipjsua
-//
-// Created by Liong Sauw Ming on 13/3/13.
-// Copyright (c) 2013 Teluu. All rights reserved.
-//
-
+/*
+ * Copyright (C) 2013-2014 Teluu Inc. (http://www.teluu.com)
+ *
+ * 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
+ */
#import "ipjsuaViewController.h"
@interface ipjsuaViewController ()
diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c
index 95461073..3839f120 100644
--- a/pjsip-apps/src/pjsua/pjsua_app.c
+++ b/pjsip-apps/src/pjsua/pjsua_app.c
@@ -551,6 +551,9 @@ static void on_call_video_state(pjsua_call_info *ci, unsigned mi,
return;
arrange_window(ci->media[mi].stream.vid.win_in);
+#ifdef USE_GUI
+ displayWindow(ci->media[mi].stream.vid.win_in);
+#endif
PJ_UNUSED_ARG(has_error);
}