Skip to content

Commit ea0bb4d

Browse files
authored
OPENTOK-41730: metal implementation as custom video driver (#3)
* OPENTOK-41730: metal implementation as custom video driver * OPENTOK-41730: code review changes * OPENTOK-41730: documentation updated * OPENTOK-41730: removed header
1 parent 26a6541 commit ea0bb4d

17 files changed

+989
-64
lines changed

ARFrameMetadata.xcodeproj/project.pbxproj

+44-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10+
4521304F2519A51E004E4237 /* Shaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = 4521304E2519A51E004E4237 /* Shaders.metal */; };
11+
45E8E8EA251B931600A77EF2 /* MetalCameraSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E8E8E4251B931600A77EF2 /* MetalCameraSession.swift */; };
12+
45E8E8EC251B931600A77EF2 /* MetalVideoCaptureController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E8E8E6251B931600A77EF2 /* MetalVideoCaptureController.swift */; };
13+
45E8E8ED251B931600A77EF2 /* Shaders2.metal in Sources */ = {isa = PBXBuildFile; fileRef = 45E8E8E7251B931600A77EF2 /* Shaders2.metal */; };
14+
45E8E8EE251B931600A77EF2 /* MetalCameraSessionTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E8E8E8251B931600A77EF2 /* MetalCameraSessionTypes.swift */; };
15+
45E8E8EF251B931600A77EF2 /* MetalCameraCaptureDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E8E8E9251B931600A77EF2 /* MetalCameraCaptureDevice.swift */; };
16+
45E8E904251C010D00A77EF2 /* Texture+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E8E903251C010D00A77EF2 /* Texture+.swift */; };
1017
9923EAF6BD6D354CCC7A0D71 /* Pods_ARFrameMetadata.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7CA9CBE79063FE982937D8 /* Pods_ARFrameMetadata.framework */; };
1118
F8266FF020B7067C00A0EB14 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8266FEF20B7067C00A0EB14 /* AppDelegate.swift */; };
1219
F8266FF220B7067D00A0EB14 /* art.scnassets in Resources */ = {isa = PBXBuildFile; fileRef = F8266FF120B7067D00A0EB14 /* art.scnassets */; };
@@ -26,6 +33,15 @@
2633
/* Begin PBXFileReference section */
2734
0A7CA9CBE79063FE982937D8 /* Pods_ARFrameMetadata.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ARFrameMetadata.framework; sourceTree = BUILT_PRODUCTS_DIR; };
2835
17B1798930EF1DC67569654C /* Pods-ARFrameMetadata.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ARFrameMetadata.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ARFrameMetadata/Pods-ARFrameMetadata.debug.xcconfig"; sourceTree = "<group>"; };
36+
4521304E2519A51E004E4237 /* Shaders.metal */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.metal; path = Shaders.metal; sourceTree = "<group>"; };
37+
45213053251A2106004E4237 /* ShaderTypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShaderTypes.h; sourceTree = "<group>"; };
38+
45213055251A2208004E4237 /* ARFrameMetadata-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ARFrameMetadata-Bridging-Header.h"; sourceTree = "<group>"; };
39+
45E8E8E4251B931600A77EF2 /* MetalCameraSession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetalCameraSession.swift; sourceTree = "<group>"; };
40+
45E8E8E6251B931600A77EF2 /* MetalVideoCaptureController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetalVideoCaptureController.swift; sourceTree = "<group>"; };
41+
45E8E8E7251B931600A77EF2 /* Shaders2.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; path = Shaders2.metal; sourceTree = "<group>"; };
42+
45E8E8E8251B931600A77EF2 /* MetalCameraSessionTypes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetalCameraSessionTypes.swift; sourceTree = "<group>"; };
43+
45E8E8E9251B931600A77EF2 /* MetalCameraCaptureDevice.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetalCameraCaptureDevice.swift; sourceTree = "<group>"; };
44+
45E8E903251C010D00A77EF2 /* Texture+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Texture+.swift"; sourceTree = "<group>"; };
2945
8139F6698F71C07B436B3CBB /* Pods-ARFrameMetadata.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ARFrameMetadata.release.xcconfig"; path = "Pods/Target Support Files/Pods-ARFrameMetadata/Pods-ARFrameMetadata.release.xcconfig"; sourceTree = "<group>"; };
3046
F8266FEC20B7067C00A0EB14 /* ARFrameMetadata.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ARFrameMetadata.app; sourceTree = BUILT_PRODUCTS_DIR; };
3147
F8266FEF20B7067C00A0EB14 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
@@ -56,6 +72,21 @@
5672
/* End PBXFrameworksBuildPhase section */
5773

5874
/* Begin PBXGroup section */
75+
45E8E8E3251B931600A77EF2 /* Metal */ = {
76+
isa = PBXGroup;
77+
children = (
78+
45E8E8E4251B931600A77EF2 /* MetalCameraSession.swift */,
79+
45E8E8E6251B931600A77EF2 /* MetalVideoCaptureController.swift */,
80+
45E8E8E8251B931600A77EF2 /* MetalCameraSessionTypes.swift */,
81+
45E8E8E9251B931600A77EF2 /* MetalCameraCaptureDevice.swift */,
82+
45E8E903251C010D00A77EF2 /* Texture+.swift */,
83+
45E8E8E7251B931600A77EF2 /* Shaders2.metal */,
84+
4521304E2519A51E004E4237 /* Shaders.metal */,
85+
45213053251A2106004E4237 /* ShaderTypes.h */,
86+
);
87+
path = Metal;
88+
sourceTree = "<group>";
89+
};
5990
7ADF075AFBBDFEB45816860B /* Frameworks */ = {
6091
isa = PBXGroup;
6192
children = (
@@ -94,6 +125,7 @@
94125
F8266FEE20B7067C00A0EB14 /* ARFrameMetadata */ = {
95126
isa = PBXGroup;
96127
children = (
128+
45E8E8E3251B931600A77EF2 /* Metal */,
97129
F8266FEF20B7067C00A0EB14 /* AppDelegate.swift */,
98130
F8266FF120B7067D00A0EB14 /* art.scnassets */,
99131
F8266FF520B7067D00A0EB14 /* Main.storyboard */,
@@ -108,6 +140,7 @@
108140
F854D8F220D00E220000AB67 /* ExampleVideoRender.swift */,
109141
F854D8F420D00E580000AB67 /* EAGLVideoRenderer.swift */,
110142
F8EDE04920D3E1BD00753C0B /* SCNViewVideoCapture.swift */,
143+
45213055251A2208004E4237 /* ARFrameMetadata-Bridging-Header.h */,
111144
);
112145
path = ARFrameMetadata;
113146
sourceTree = "<group>";
@@ -209,12 +242,19 @@
209242
F8EDE04A20D3E1BD00753C0B /* SCNViewVideoCapture.swift in Sources */,
210243
F89AFC4720CFC8C90016C510 /* OTConstants.swift in Sources */,
211244
F854D8F520D00E580000AB67 /* EAGLVideoRenderer.swift in Sources */,
245+
45E8E8ED251B931600A77EF2 /* Shaders2.metal in Sources */,
212246
F826700620B714E300A0EB14 /* AROpentokVideoCapturer.swift in Sources */,
247+
45E8E904251C010D00A77EF2 /* Texture+.swift in Sources */,
248+
4521304F2519A51E004E4237 /* Shaders.metal in Sources */,
249+
45E8E8EE251B931600A77EF2 /* MetalCameraSessionTypes.swift in Sources */,
213250
F8266FF420B7067D00A0EB14 /* PublisherViewController.swift in Sources */,
251+
45E8E8EF251B931600A77EF2 /* MetalCameraCaptureDevice.swift in Sources */,
214252
F8266FF020B7067C00A0EB14 /* AppDelegate.swift in Sources */,
215253
F89AFC4520CFC8260016C510 /* SubscriberViewController.swift in Sources */,
216254
F854D8F320D00E220000AB67 /* ExampleVideoRender.swift in Sources */,
217255
F854D8F120CFDD250000AB67 /* Data+fromArray.swift in Sources */,
256+
45E8E8EA251B931600A77EF2 /* MetalCameraSession.swift in Sources */,
257+
45E8E8EC251B931600A77EF2 /* MetalVideoCaptureController.swift in Sources */,
218258
);
219259
runOnlyForDeploymentPostprocessing = 0;
220260
};
@@ -361,7 +401,7 @@
361401
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
362402
CODE_SIGN_IDENTITY = "iPhone Developer";
363403
CODE_SIGN_STYLE = Automatic;
364-
DEVELOPMENT_TEAM = Y6ZF2U3QJC;
404+
DEVELOPMENT_TEAM = PR6C39UQ38;
365405
INFOPLIST_FILE = ARFrameMetadata/Info.plist;
366406
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
367407
LD_RUNPATH_SEARCH_PATHS = (
@@ -372,6 +412,7 @@
372412
PRODUCT_NAME = "$(TARGET_NAME)";
373413
PROVISIONING_PROFILE = "";
374414
PROVISIONING_PROFILE_SPECIFIER = "";
415+
SWIFT_OBJC_BRIDGING_HEADER = "ARFrameMetadata/ARFrameMetadata-Bridging-Header.h";
375416
SWIFT_VERSION = 4.0;
376417
TARGETED_DEVICE_FAMILY = "1,2";
377418
};
@@ -384,7 +425,7 @@
384425
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
385426
CODE_SIGN_IDENTITY = "iPhone Developer";
386427
CODE_SIGN_STYLE = Automatic;
387-
DEVELOPMENT_TEAM = Y6ZF2U3QJC;
428+
DEVELOPMENT_TEAM = PR6C39UQ38;
388429
INFOPLIST_FILE = ARFrameMetadata/Info.plist;
389430
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
390431
LD_RUNPATH_SEARCH_PATHS = (
@@ -394,6 +435,7 @@
394435
PRODUCT_BUNDLE_IDENTIFIER = com.tokbox.ARFrameMetadata;
395436
PRODUCT_NAME = "$(TARGET_NAME)";
396437
PROVISIONING_PROFILE_SPECIFIER = "";
438+
SWIFT_OBJC_BRIDGING_HEADER = "ARFrameMetadata/ARFrameMetadata-Bridging-Header.h";
397439
SWIFT_VERSION = 4.0;
398440
TARGETED_DEVICE_FAMILY = "1,2";
399441
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
#ifndef ARFrameMetadata_Bridging_Header_h
3+
#define ARFrameMetadata_Bridging_Header_h
4+
5+
#include "ShaderTypes.h"
6+
7+
#endif /* ARFrameMetadata_Bridging_Header_h */

0 commit comments

Comments
 (0)