aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael <michael.foiani@gmail.com>2021-07-02 14:34:33 -0400
committerMichael <michael.foiani@gmail.com>2021-07-02 14:34:33 -0400
commit643e7adcda3e5ae7aa3daeb86020f2e6f38d1448 (patch)
tree032dcc7c80a96f709e24ac747c74e75045d8845b
parent66c974161b59f1e3570e2a4a42334fabc16c2129 (diff)
Add depedencies to xcode for react-native-video-processing. Building the project was successful.
-rw-r--r--ios/Frontend.xcodeproj/project.pbxproj252
-rw-r--r--ios/Frontend/Info.plist16
-rw-r--r--ios/Podfile.lock18
-rw-r--r--ios/RNVideoProcessing/Frontend-Bridging-Header.h4
-rw-r--r--ios/RNVideoProcessing/RNTrimmerView/RNTrimmerView-Bridging-Header.h11
-rw-r--r--ios/RNVideoProcessing/RNTrimmerView/RNTrimmerView.swift273
-rw-r--r--ios/RNVideoProcessing/RNTrimmerView/RNTrimmerViewManager.swift17
7 files changed, 562 insertions, 29 deletions
diff --git a/ios/Frontend.xcodeproj/project.pbxproj b/ios/Frontend.xcodeproj/project.pbxproj
index aa86fb3d..ce1492da 100644
--- a/ios/Frontend.xcodeproj/project.pbxproj
+++ b/ios/Frontend.xcodeproj/project.pbxproj
@@ -18,6 +18,29 @@
2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
2DCD954D1E0B4F2C00145EB5 /* FrontendTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* FrontendTests.m */; };
8CFABFFB75409DE440B1F946 /* libPods-Frontend-FrontendTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6C8C01B1DA113E97C596E47C /* libPods-Frontend-FrontendTests.a */; };
+ B12DC05B268F8B3100AFB62E /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B12DC05A268F8B3100AFB62E /* CoreMedia.framework */; };
+ B12DC05D268F8B3A00AFB62E /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B12DC05C268F8B3A00AFB62E /* CoreVideo.framework */; };
+ B12DC05F268F8B4000AFB62E /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B12DC05E268F8B4000AFB62E /* OpenGLES.framework */; };
+ B12DC061268F8B4800AFB62E /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B12DC060268F8B4800AFB62E /* AVFoundation.framework */; };
+ B12DC063268F8B5000AFB62E /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B12DC062268F8B5000AFB62E /* QuartzCore.framework */; };
+ B12DC065268F8B5500AFB62E /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B12DC064268F8B5500AFB62E /* MobileCoreServices.framework */; };
+ B12DC066268F8B5A00AFB62E /* GPUImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B1267235268F88A000F5BECB /* GPUImage.framework */; };
+ B12DC067268F8B5A00AFB62E /* GPUImage.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B1267235268F88A000F5BECB /* GPUImage.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ B170CF27268F86B600D3E799 /* VideoProcessingGPUFilters.swift in Sources */ = {isa = PBXBuildFile; fileRef = B170CF24268F86B600D3E799 /* VideoProcessingGPUFilters.swift */; };
+ B170CF28268F86B600D3E799 /* RNVideoProcessingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B170CF25268F86B600D3E799 /* RNVideoProcessingManager.swift */; };
+ B170CF29268F86B600D3E799 /* RNVideoPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = B170CF26268F86B600D3E799 /* RNVideoPlayer.swift */; };
+ B170CF30268F872200D3E799 /* RNTrimmerViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B170CF2E268F872100D3E799 /* RNTrimmerViewManager.swift */; };
+ B170CF31268F872200D3E799 /* RNTrimmerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B170CF2F268F872100D3E799 /* RNTrimmerView.swift */; };
+ B170CF39268F875200D3E799 /* ICGThumbView.m in Sources */ = {isa = PBXBuildFile; fileRef = B170CF32268F875200D3E799 /* ICGThumbView.m */; };
+ B170CF3A268F875200D3E799 /* ICGRulerView.m in Sources */ = {isa = PBXBuildFile; fileRef = B170CF34268F875200D3E799 /* ICGRulerView.m */; };
+ B170CF3B268F875200D3E799 /* ICGVideoTrimmerView.m in Sources */ = {isa = PBXBuildFile; fileRef = B170CF38268F875200D3E799 /* ICGVideoTrimmerView.m */; };
+ B170CF3E268F875D00D3E799 /* RNTrimmerViewBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = B170CF3C268F875D00D3E799 /* RNTrimmerViewBridge.m */; };
+ B170CF43268F877100D3E799 /* RNVideoProcessingBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = B170CF3F268F877100D3E799 /* RNVideoProcessingBridge.m */; };
+ B170CF4A268F878400D3E799 /* SDAVAssetExportSession.m in Sources */ = {isa = PBXBuildFile; fileRef = B170CF44268F878400D3E799 /* SDAVAssetExportSession.m */; };
+ B170CF4B268F878400D3E799 /* RNVideoTrimmerBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = B170CF46268F878400D3E799 /* RNVideoTrimmerBridge.m */; };
+ B170CF4C268F878400D3E799 /* RNVideoTrimmer.swift in Sources */ = {isa = PBXBuildFile; fileRef = B170CF47268F878400D3E799 /* RNVideoTrimmer.swift */; };
+ B170CF4D268F878400D3E799 /* AVUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = B170CF48268F878400D3E799 /* AVUtilities.swift */; };
+ B1C776B0268F8F210072612E /* Frontend-Bridging-Header.h in Sources */ = {isa = PBXBuildFile; fileRef = B1C776AC268F8EBB0072612E /* Frontend-Bridging-Header.h */; };
B6D41FC4D095A2EF7C3277A9 /* libPods-Frontend-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F8C4537388D0708785A4770E /* libPods-Frontend-tvOS.a */; };
B7B3F698256E07C400EF4575 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B7B3F697256E07C400EF4575 /* GoogleService-Info.plist */; };
B7B3F699256E07C400EF4575 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B7B3F697256E07C400EF4575 /* GoogleService-Info.plist */; };
@@ -39,8 +62,36 @@
remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7;
remoteInfo = "Frontend-tvOS";
};
+ B1267232268F88A000F5BECB /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = B126722C268F88A000F5BECB /* GPUImage.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = BCF1A33414DDB1EC00852800;
+ remoteInfo = GPUImage;
+ };
+ B1267234268F88A000F5BECB /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = B126722C268F88A000F5BECB /* GPUImage.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = BCE209E51943F20C002FEED8;
+ remoteInfo = GPUImageFramework;
+ };
/* End PBXContainerItemProxy section */
+/* Begin PBXCopyFilesBuildPhase section */
+ B12DC068268F8B5A00AFB62E /* Embed Frameworks */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ B12DC067268F8B5A00AFB62E /* GPUImage.framework in Embed Frameworks */,
+ );
+ name = "Embed Frameworks";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
/* Begin PBXFileReference section */
008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
00E356EE1AD99517003FC87E /* FrontendTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FrontendTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -64,6 +115,39 @@
82C6ED904DE229CD9C824BE9 /* Pods-Frontend.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Frontend.release.xcconfig"; path = "Target Support Files/Pods-Frontend/Pods-Frontend.release.xcconfig"; sourceTree = "<group>"; };
9441D0AF6446AB2B76D53150 /* Pods-Frontend-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Frontend-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-Frontend-tvOSTests/Pods-Frontend-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; };
A8F8B1059699DFE5975BAB3B /* Pods-Frontend-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Frontend-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-Frontend-tvOS/Pods-Frontend-tvOS.debug.xcconfig"; sourceTree = "<group>"; };
+ B126722C268F88A000F5BECB /* GPUImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = GPUImage.xcodeproj; path = "../node_modules/react-native-video-processing/ios/GPUImage/framework/GPUImage.xcodeproj"; sourceTree = "<group>"; };
+ B12DC05A268F8B3100AFB62E /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
+ B12DC05C268F8B3A00AFB62E /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; };
+ B12DC05E268F8B4000AFB62E /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
+ B12DC060268F8B4800AFB62E /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
+ B12DC062268F8B5000AFB62E /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+ B12DC064268F8B5500AFB62E /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
+ B170CF24268F86B600D3E799 /* VideoProcessingGPUFilters.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VideoProcessingGPUFilters.swift; path = "../../node_modules/react-native-video-processing/ios/RNVideoProcessing/VideoProcessingGPUFilters.swift"; sourceTree = "<group>"; };
+ B170CF25268F86B600D3E799 /* RNVideoProcessingManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RNVideoProcessingManager.swift; path = "../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNVideoProcessingManager.swift"; sourceTree = "<group>"; };
+ B170CF26268F86B600D3E799 /* RNVideoPlayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RNVideoPlayer.swift; path = "../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNVideoPlayer.swift"; sourceTree = "<group>"; };
+ B170CF2D268F872100D3E799 /* RNTrimmerView-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RNTrimmerView-Bridging-Header.h"; sourceTree = "<group>"; };
+ B170CF2E268F872100D3E799 /* RNTrimmerViewManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RNTrimmerViewManager.swift; sourceTree = "<group>"; };
+ B170CF2F268F872100D3E799 /* RNTrimmerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RNTrimmerView.swift; sourceTree = "<group>"; };
+ B170CF32268F875200D3E799 /* ICGThumbView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ICGThumbView.m; path = "../../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNTrimmerView/ICGVideoTrimmer/ICGThumbView.m"; sourceTree = "<group>"; };
+ B170CF33268F875200D3E799 /* ICGRulerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ICGRulerView.h; path = "../../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNTrimmerView/ICGVideoTrimmer/ICGRulerView.h"; sourceTree = "<group>"; };
+ B170CF34268F875200D3E799 /* ICGRulerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ICGRulerView.m; path = "../../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNTrimmerView/ICGVideoTrimmer/ICGRulerView.m"; sourceTree = "<group>"; };
+ B170CF35268F875200D3E799 /* ICGVideoTrimmer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ICGVideoTrimmer.h; path = "../../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNTrimmerView/ICGVideoTrimmer/ICGVideoTrimmer.h"; sourceTree = "<group>"; };
+ B170CF36268F875200D3E799 /* ICGVideoTrimmerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ICGVideoTrimmerView.h; path = "../../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNTrimmerView/ICGVideoTrimmer/ICGVideoTrimmerView.h"; sourceTree = "<group>"; };
+ B170CF37268F875200D3E799 /* ICGThumbView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ICGThumbView.h; path = "../../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNTrimmerView/ICGVideoTrimmer/ICGThumbView.h"; sourceTree = "<group>"; };
+ B170CF38268F875200D3E799 /* ICGVideoTrimmerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ICGVideoTrimmerView.m; path = "../../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNTrimmerView/ICGVideoTrimmer/ICGVideoTrimmerView.m"; sourceTree = "<group>"; };
+ B170CF3C268F875D00D3E799 /* RNTrimmerViewBridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RNTrimmerViewBridge.m; path = "../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNTrimmerView/RNTrimmerViewBridge.m"; sourceTree = "<group>"; };
+ B170CF3D268F875D00D3E799 /* RNTrimmerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RNTrimmerView.h; path = "../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNTrimmerView/RNTrimmerView.h"; sourceTree = "<group>"; };
+ B170CF3F268F877100D3E799 /* RNVideoProcessingBridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RNVideoProcessingBridge.m; path = "../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNVideoProcessingBridge.m"; sourceTree = "<group>"; };
+ B170CF40268F877100D3E799 /* RNVideoProcessing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RNVideoProcessing.h; path = "../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNVideoProcessing.h"; sourceTree = "<group>"; };
+ B170CF41268F877100D3E799 /* RCTSwiftBridgeModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RCTSwiftBridgeModule.h; path = "../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RCTSwiftBridgeModule.h"; sourceTree = "<group>"; };
+ B170CF42268F877100D3E799 /* RNVideoProcessing-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "RNVideoProcessing-Bridging-Header.h"; path = "../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNVideoProcessing-Bridging-Header.h"; sourceTree = "<group>"; };
+ B170CF44268F878400D3E799 /* SDAVAssetExportSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDAVAssetExportSession.m; path = "../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNVideoTrimmer/SDAVAssetExportSession.m"; sourceTree = "<group>"; };
+ B170CF45268F878400D3E799 /* SDAVAssetExportSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDAVAssetExportSession.h; path = "../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNVideoTrimmer/SDAVAssetExportSession.h"; sourceTree = "<group>"; };
+ B170CF46268F878400D3E799 /* RNVideoTrimmerBridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RNVideoTrimmerBridge.m; path = "../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNVideoTrimmer/RNVideoTrimmerBridge.m"; sourceTree = "<group>"; };
+ B170CF47268F878400D3E799 /* RNVideoTrimmer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RNVideoTrimmer.swift; path = "../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNVideoTrimmer/RNVideoTrimmer.swift"; sourceTree = "<group>"; };
+ B170CF48268F878400D3E799 /* AVUtilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AVUtilities.swift; path = "../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNVideoTrimmer/AVUtilities.swift"; sourceTree = "<group>"; };
+ B170CF49268F878400D3E799 /* RNVideoTrimmer-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "RNVideoTrimmer-Bridging-Header.h"; path = "../../../node_modules/react-native-video-processing/ios/RNVideoProcessing/RNVideoTrimmer/RNVideoTrimmer-Bridging-Header.h"; sourceTree = "<group>"; };
+ B1C776AC268F8EBB0072612E /* Frontend-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc.preprocessed; fileEncoding = 4; path = "Frontend-Bridging-Header.h"; sourceTree = "<group>"; };
B7B3F697256E07C400EF4575 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
B7D7DF1925880C7800C18E93 /* FrontendDebug.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = FrontendDebug.entitlements; path = Frontend/FrontendDebug.entitlements; sourceTree = "<group>"; };
B848841B31EAA032CEAC624B /* Pods-Frontend-FrontendTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Frontend-FrontendTests.release.xcconfig"; path = "Target Support Files/Pods-Frontend-FrontendTests/Pods-Frontend-FrontendTests.release.xcconfig"; sourceTree = "<group>"; };
@@ -87,7 +171,14 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ B12DC05B268F8B3100AFB62E /* CoreMedia.framework in Frameworks */,
+ B12DC065268F8B5500AFB62E /* MobileCoreServices.framework in Frameworks */,
162320D6BACFC1F441EC22C1 /* libPods-Frontend.a in Frameworks */,
+ B12DC063268F8B5000AFB62E /* QuartzCore.framework in Frameworks */,
+ B12DC061268F8B4800AFB62E /* AVFoundation.framework in Frameworks */,
+ B12DC066268F8B5A00AFB62E /* GPUImage.framework in Frameworks */,
+ B12DC05D268F8B3A00AFB62E /* CoreVideo.framework in Frameworks */,
+ B12DC05F268F8B4000AFB62E /* OpenGLES.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -147,6 +238,12 @@
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
isa = PBXGroup;
children = (
+ B12DC064268F8B5500AFB62E /* MobileCoreServices.framework */,
+ B12DC062268F8B5000AFB62E /* QuartzCore.framework */,
+ B12DC060268F8B4800AFB62E /* AVFoundation.framework */,
+ B12DC05E268F8B4000AFB62E /* OpenGLES.framework */,
+ B12DC05C268F8B3A00AFB62E /* CoreVideo.framework */,
+ B12DC05A268F8B3100AFB62E /* CoreMedia.framework */,
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
032770E196D0B343FBF58097 /* libPods-Frontend.a */,
@@ -175,6 +272,8 @@
83CBB9F61A601CBA00E9B192 = {
isa = PBXGroup;
children = (
+ B126722C268F88A000F5BECB /* GPUImage.xcodeproj */,
+ B170CF22268F863000D3E799 /* RNVideoProcessing */,
13B07FAE1A68108700A75B9A /* Frontend */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
00E356EF1AD99517003FC87E /* FrontendTests */,
@@ -198,6 +297,72 @@
name = Products;
sourceTree = "<group>";
};
+ B126722D268F88A000F5BECB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ B1267233268F88A000F5BECB /* libGPUImage.a */,
+ B1267235268F88A000F5BECB /* GPUImage.framework */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ B170CF22268F863000D3E799 /* RNVideoProcessing */ = {
+ isa = PBXGroup;
+ children = (
+ B1C776AC268F8EBB0072612E /* Frontend-Bridging-Header.h */,
+ B170CF41268F877100D3E799 /* RCTSwiftBridgeModule.h */,
+ B170CF42268F877100D3E799 /* RNVideoProcessing-Bridging-Header.h */,
+ B170CF40268F877100D3E799 /* RNVideoProcessing.h */,
+ B170CF3F268F877100D3E799 /* RNVideoProcessingBridge.m */,
+ B170CF2B268F86F500D3E799 /* RNTrimmerView */,
+ B170CF2A268F86DA00D3E799 /* RNVideoTrimmer */,
+ B170CF26268F86B600D3E799 /* RNVideoPlayer.swift */,
+ B170CF25268F86B600D3E799 /* RNVideoProcessingManager.swift */,
+ B170CF24268F86B600D3E799 /* VideoProcessingGPUFilters.swift */,
+ );
+ path = RNVideoProcessing;
+ sourceTree = "<group>";
+ };
+ B170CF2A268F86DA00D3E799 /* RNVideoTrimmer */ = {
+ isa = PBXGroup;
+ children = (
+ B170CF48268F878400D3E799 /* AVUtilities.swift */,
+ B170CF49268F878400D3E799 /* RNVideoTrimmer-Bridging-Header.h */,
+ B170CF47268F878400D3E799 /* RNVideoTrimmer.swift */,
+ B170CF46268F878400D3E799 /* RNVideoTrimmerBridge.m */,
+ B170CF45268F878400D3E799 /* SDAVAssetExportSession.h */,
+ B170CF44268F878400D3E799 /* SDAVAssetExportSession.m */,
+ );
+ path = RNVideoTrimmer;
+ sourceTree = "<group>";
+ };
+ B170CF2B268F86F500D3E799 /* RNTrimmerView */ = {
+ isa = PBXGroup;
+ children = (
+ B170CF3D268F875D00D3E799 /* RNTrimmerView.h */,
+ B170CF3C268F875D00D3E799 /* RNTrimmerViewBridge.m */,
+ B170CF2C268F86FF00D3E799 /* ICGVideoTrimmer */,
+ B170CF2D268F872100D3E799 /* RNTrimmerView-Bridging-Header.h */,
+ B170CF2F268F872100D3E799 /* RNTrimmerView.swift */,
+ B170CF2E268F872100D3E799 /* RNTrimmerViewManager.swift */,
+ );
+ path = RNTrimmerView;
+ sourceTree = "<group>";
+ };
+ B170CF2C268F86FF00D3E799 /* ICGVideoTrimmer */ = {
+ isa = PBXGroup;
+ children = (
+ B170CF33268F875200D3E799 /* ICGRulerView.h */,
+ B170CF34268F875200D3E799 /* ICGRulerView.m */,
+ B170CF37268F875200D3E799 /* ICGThumbView.h */,
+ B170CF32268F875200D3E799 /* ICGThumbView.m */,
+ B170CF35268F875200D3E799 /* ICGVideoTrimmer.h */,
+ B170CF36268F875200D3E799 /* ICGVideoTrimmerView.h */,
+ B170CF38268F875200D3E799 /* ICGVideoTrimmerView.m */,
+ );
+ path = ICGVideoTrimmer;
+ sourceTree = "<group>";
+ };
DC1ED7ABEFF4D056945504EA /* Pods */ = {
isa = PBXGroup;
children = (
@@ -250,6 +415,7 @@
901AC37769F9C0ACE97F2ECF /* [CP] Embed Pods Frameworks */,
40BC5C221AB5093182A8B9DE /* [CP] Copy Pods Resources */,
5A5C99B7D995797D0BBC1D92 /* [CP-User] [RNFB] Core Configuration */,
+ B12DC068268F8B5A00AFB62E /* Embed Frameworks */,
);
buildRules = (
);
@@ -309,20 +475,22 @@
TargetAttributes = {
00E356ED1AD99517003FC87E = {
CreatedOnToolsVersion = 6.2;
- DevelopmentTeam = CA2JXDK7RB;
+ DevelopmentTeam = VQ6D29Y5N7;
+ ProvisioningStyle = Automatic;
TestTargetID = 13B07F861A680F5B00A75B9A;
};
13B07F861A680F5B00A75B9A = {
- DevelopmentTeam = FZ5J543S6Y;
- LastSwiftMigration = 1120;
+ DevelopmentTeam = VQ6D29Y5N7;
+ LastSwiftMigration = 1250;
ProvisioningStyle = Automatic;
};
2D02E47A1E0B4A5D006451C7 = {
CreatedOnToolsVersion = 8.2.1;
- ProvisioningStyle = Automatic;
+ ProvisioningStyle = Manual;
};
2D02E48F1E0B4A5D006451C7 = {
CreatedOnToolsVersion = 8.2.1;
+ DevelopmentTeam = VQ6D29Y5N7;
ProvisioningStyle = Automatic;
TestTargetID = 2D02E47A1E0B4A5D006451C7;
};
@@ -339,6 +507,12 @@
mainGroup = 83CBB9F61A601CBA00E9B192;
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = B126722D268F88A000F5BECB /* Products */;
+ ProjectRef = B126722C268F88A000F5BECB /* GPUImage.xcodeproj */;
+ },
+ );
projectRoot = "";
targets = (
13B07F861A680F5B00A75B9A /* Frontend */,
@@ -349,6 +523,23 @@
};
/* End PBXProject section */
+/* Begin PBXReferenceProxy section */
+ B1267233268F88A000F5BECB /* libGPUImage.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libGPUImage.a;
+ remoteRef = B1267232268F88A000F5BECB /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ B1267235268F88A000F5BECB /* GPUImage.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = GPUImage.framework;
+ remoteRef = B1267234268F88A000F5BECB /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
/* Begin PBXResourcesBuildPhase section */
00E356EC1AD99517003FC87E /* Resources */ = {
isa = PBXResourcesBuildPhase;
@@ -709,8 +900,23 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ B170CF31268F872200D3E799 /* RNTrimmerView.swift in Sources */,
+ B1C776B0268F8F210072612E /* Frontend-Bridging-Header.h in Sources */,
+ B170CF3E268F875D00D3E799 /* RNTrimmerViewBridge.m in Sources */,
+ B170CF28268F86B600D3E799 /* RNVideoProcessingManager.swift in Sources */,
+ B170CF4A268F878400D3E799 /* SDAVAssetExportSession.m in Sources */,
+ B170CF30268F872200D3E799 /* RNTrimmerViewManager.swift in Sources */,
+ B170CF3B268F875200D3E799 /* ICGVideoTrimmerView.m in Sources */,
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
+ B170CF29268F86B600D3E799 /* RNVideoPlayer.swift in Sources */,
+ B170CF3A268F875200D3E799 /* ICGRulerView.m in Sources */,
+ B170CF27268F86B600D3E799 /* VideoProcessingGPUFilters.swift in Sources */,
+ B170CF43268F877100D3E799 /* RNVideoProcessingBridge.m in Sources */,
+ B170CF4C268F878400D3E799 /* RNVideoTrimmer.swift in Sources */,
+ B170CF4B268F878400D3E799 /* RNVideoTrimmerBridge.m in Sources */,
13B07FC11A68108700A75B9A /* main.m in Sources */,
+ B170CF39268F875200D3E799 /* ICGThumbView.m in Sources */,
+ B170CF4D268F878400D3E799 /* AVUtilities.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -765,7 +971,10 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
- DEVELOPMENT_TEAM = CA2JXDK7RB;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
+ CODE_SIGN_STYLE = Automatic;
+ DEVELOPMENT_TEAM = VQ6D29Y5N7;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
@@ -780,6 +989,8 @@
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Frontend.app/Frontend";
};
name = Debug;
@@ -790,8 +1001,11 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
+ CODE_SIGN_IDENTITY = "Apple Development";
+ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
+ CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
- DEVELOPMENT_TEAM = CA2JXDK7RB;
+ DEVELOPMENT_TEAM = VQ6D29Y5N7;
INFOPLIST_FILE = FrontendTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@@ -802,6 +1016,8 @@
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Frontend.app/Frontend";
};
name = Release;
@@ -816,7 +1032,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = FZ5J543S6Y;
+ DEVELOPMENT_TEAM = VQ6D29Y5N7;
ENABLE_BITCODE = NO;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
@@ -830,9 +1046,10 @@
"-ObjC",
"-lc++",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.taggid.taggid;
+ PRODUCT_BUNDLE_IDENTIFIER = FZ5J543S6Y;
PRODUCT_NAME = Frontend;
PROVISIONING_PROFILE_SPECIFIER = "";
+ SWIFT_OBJC_BRIDGING_HEADER = "RNVideoProcessing/Frontend-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -848,7 +1065,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = FZ5J543S6Y;
+ DEVELOPMENT_TEAM = VQ6D29Y5N7;
INFOPLIST_FILE = Frontend/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@@ -857,9 +1074,10 @@
"-ObjC",
"-lc++",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.taggid.taggid;
+ PRODUCT_BUNDLE_IDENTIFIER = FZ5J543S6Y;
PRODUCT_NAME = Frontend;
PROVISIONING_PROFILE_SPECIFIER = "";
+ SWIFT_OBJC_BRIDGING_HEADER = "RNVideoProcessing/Frontend-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
@@ -875,7 +1093,9 @@
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CODE_SIGN_STYLE = Manual;
DEBUG_INFORMATION_FORMAT = dwarf;
+ DEVELOPMENT_TEAM = "";
ENABLE_TESTABILITY = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Frontend-tvOS/Info.plist";
@@ -885,8 +1105,9 @@
"-ObjC",
"-lc++",
);
- PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.Frontend-tvOS";
+ PRODUCT_BUNDLE_IDENTIFIER = FZ5J543S6Y;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = appletvos;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 12.0;
@@ -903,8 +1124,10 @@
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEVELOPMENT_TEAM = "";
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Frontend-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@@ -913,8 +1136,9 @@
"-ObjC",
"-lc++",
);
- PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.Frontend-tvOS";
+ PRODUCT_BUNDLE_IDENTIFIER = FZ5J543S6Y;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = appletvos;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 12.0;
@@ -931,6 +1155,7 @@
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
+ DEVELOPMENT_TEAM = VQ6D29Y5N7;
ENABLE_TESTABILITY = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Frontend-tvOSTests/Info.plist";
@@ -959,6 +1184,7 @@
CLANG_WARN_SUSPICIOUS_MOVE = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEVELOPMENT_TEAM = VQ6D29Y5N7;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Frontend-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@@ -1033,6 +1259,7 @@
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
+ SWIFT_OBJC_BRIDGING_HEADER = "RNVideoProcessing/Frontend-Bridging-Header.h";
};
name = Debug;
};
@@ -1086,6 +1313,7 @@
);
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
+ SWIFT_OBJC_BRIDGING_HEADER = "RNVideoProcessing/Frontend-Bridging-Header.h";
VALIDATE_PRODUCT = YES;
};
name = Release;
diff --git a/ios/Frontend/Info.plist b/ios/Frontend/Info.plist
index 7dedc043..d74f2dcb 100644
--- a/ios/Frontend/Info.plist
+++ b/ios/Frontend/Info.plist
@@ -2,8 +2,6 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
- <key>NSContactsUsageDescription</key>
- <string>This helps you quickly get in touch with friends on the app and more</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
@@ -50,18 +48,20 @@
</dict>
</dict>
</dict>
+ <key>NSCameraUsageDescription</key>
+ <string>Enable camera access to capture and share moment with your friends</string>
+ <key>NSContactsUsageDescription</key>
+ <string>This helps you quickly get in touch with friends on the app and more</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
<key>NSMainNibFile</key>
<string>LaunchScreen</string>
- <key>NSPhotoLibraryUsageDescription</key>
- <string>This lets you share photos from your library and select profile displays</string>
- <key>NSPhotoLibraryAddUsageDescription</key>
- <string>This lets you save photos captured on Tagg, to your library</string>
- <key>NSCameraUsageDescription</key>
- <string>Enable camera access to capture and share moment with your friends</string>
<key>NSMicrophoneUsageDescription</key>
<string>Enable microphone access to record and listen to videos</string>
+ <key>NSPhotoLibraryAddUsageDescription</key>
+ <string>This lets you save photos captured on Tagg, to your library</string>
+ <key>NSPhotoLibraryUsageDescription</key>
+ <string>This lets you share photos from your library and select profile displays</string>
<key>UIAppFonts</key>
<array>
<string>Feather.ttf</string>
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index ae9f5f83..407b696d 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -134,24 +134,24 @@ PODS:
- GoogleUtilities/Environment (~> 7.2)
- nanopb (~> 2.30907.0)
- PromisesObjC (~> 1.2)
- - GoogleUtilities/AppDelegateSwizzler (7.4.1):
+ - GoogleUtilities/AppDelegateSwizzler (7.4.3):
- GoogleUtilities/Environment
- GoogleUtilities/Logger
- GoogleUtilities/Network
- - GoogleUtilities/Environment (7.4.1):
+ - GoogleUtilities/Environment (7.4.3):
- PromisesObjC (~> 1.2)
- - GoogleUtilities/Logger (7.4.1):
+ - GoogleUtilities/Logger (7.4.3):
- GoogleUtilities/Environment
- - GoogleUtilities/MethodSwizzler (7.4.1):
+ - GoogleUtilities/MethodSwizzler (7.4.3):
- GoogleUtilities/Logger
- - GoogleUtilities/Network (7.4.1):
+ - GoogleUtilities/Network (7.4.3):
- GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Reachability
- - "GoogleUtilities/NSData+zlib (7.4.1)"
- - GoogleUtilities/Reachability (7.4.1):
+ - "GoogleUtilities/NSData+zlib (7.4.3)"
+ - GoogleUtilities/Reachability (7.4.3):
- GoogleUtilities/Logger
- - GoogleUtilities/UserDefaults (7.4.1):
+ - GoogleUtilities/UserDefaults (7.4.3):
- GoogleUtilities/Logger
- libevent (2.1.12)
- nanopb (2.30907.0):
@@ -745,7 +745,7 @@ SPEC CHECKSUMS:
glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3
GoogleAppMeasurement: c542a2feaac9ab98fd074e8f1a02c3585bbfbd47
GoogleDataTransport: 8b0e733ea77c9218778e5a9e34ba9508b8328939
- GoogleUtilities: f8a43108b38a68eebe8b3540e1f4f2d28843ce20
+ GoogleUtilities: 45dbb24a7f351d69d0a601482b39ad6c32e30dab
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
nanopb: 59221d7f958fb711001e6a449489542d92ae113e
OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b
diff --git a/ios/RNVideoProcessing/Frontend-Bridging-Header.h b/ios/RNVideoProcessing/Frontend-Bridging-Header.h
new file mode 100644
index 00000000..ad5afc0d
--- /dev/null
+++ b/ios/RNVideoProcessing/Frontend-Bridging-Header.h
@@ -0,0 +1,4 @@
+//
+// Use this file to import your target's public headers that you would like to expose to Swift.
+//
+#import "RNVideoProcessing.h"
diff --git a/ios/RNVideoProcessing/RNTrimmerView/RNTrimmerView-Bridging-Header.h b/ios/RNVideoProcessing/RNTrimmerView/RNTrimmerView-Bridging-Header.h
new file mode 100644
index 00000000..5151c4d0
--- /dev/null
+++ b/ios/RNVideoProcessing/RNTrimmerView/RNTrimmerView-Bridging-Header.h
@@ -0,0 +1,11 @@
+//
+// RNTrimmerView-Bridging-Header.h
+// RNVideoProcessing
+//
+
+#ifndef RNTrimmerView_Bridging_Header_h
+#define RNTrimmerView_Bridging_Header_h
+
+#import "RCTBridgeModule.h"
+
+#endif /* RNTrimmerView_Bridging_Header_h */
diff --git a/ios/RNVideoProcessing/RNTrimmerView/RNTrimmerView.swift b/ios/RNVideoProcessing/RNTrimmerView/RNTrimmerView.swift
new file mode 100644
index 00000000..d5909249
--- /dev/null
+++ b/ios/RNVideoProcessing/RNTrimmerView/RNTrimmerView.swift
@@ -0,0 +1,273 @@
+//
+// RNTrimmerView.swift
+// RNVideoProcessing
+//
+
+import UIKit
+import AVKit
+
+@objc(RNTrimmerView)
+class RNTrimmerView: RCTView, ICGVideoTrimmerDelegate {
+
+ var trimmerView: ICGVideoTrimmerView?
+ var asset: AVAsset!
+ var rect: CGRect = CGRect.zero
+ var mThemeColor = UIColor.clear
+ var bridge: RCTBridge!
+ @objc var onChange: RCTBubblingEventBlock?
+ @objc var onTrackerMove: RCTBubblingEventBlock?
+ var _minLength: CGFloat? = nil
+ var _maxLength: CGFloat? = nil
+ var _thumbWidth: CGFloat? = nil
+ var _trackerColor: UIColor = UIColor.clear
+ var _trackerHandleColor: UIColor = UIColor.clear
+ var _showTrackerHandle = false
+
+ @objc func setSource(_ val: NSString) {
+ source = val
+ }
+ @objc func setWidth(_ val: NSNumber) {
+ width = val
+ }
+ @objc func setHeight(_ val: NSNumber) {
+ height = val
+ }
+ @objc func setThemeColor(_ val: NSString) {
+ themeColor = val
+ }
+ @objc func setMinLength(_ val: NSNumber) {
+ minLength = val
+ }
+ @objc func setMaxLength(_ val: NSNumber) {
+ maxLength = val
+ }
+ @objc func setCurrentTime(_ val: NSNumber) {
+ currentTime = val
+ }
+ @objc func setTrackerColor(_ val: NSString) {
+ trackerColor = val
+ }
+ @objc func setThumbWidth(_ val: NSNumber) {
+ thumbWidth = val
+ }
+ @objc func setShowTrackerHandle(_ val: NSNumber) {
+ showTrackerHandle = val
+ }
+ @objc func setTrackerHandleColor(_ val: NSString) {
+ trackerHandleColor = val
+ }
+
+ var source: NSString? {
+ set {
+ setSource(source: newValue)
+ }
+ get {
+
+ return nil
+ }
+ }
+
+ var showTrackerHandle: NSNumber? {
+ set {
+ if newValue == nil {
+ return
+ }
+ let _nVal = newValue! == 1 ? true : false
+ if _showTrackerHandle != _nVal {
+ print("CHANGED: showTrackerHandle \(newValue!)");
+ _showTrackerHandle = _nVal
+ self.updateView()
+ }
+ }
+ get {
+ return nil
+ }
+ }
+
+ var trackerHandleColor: NSString? {
+ set {
+ if newValue != nil {
+ let color = NumberFormatter().number(from: newValue! as String)
+ let formattedColor = RCTConvert.uiColor(color)
+ if formattedColor != nil {
+ print("CHANGED: trackerHandleColor: \(newValue!)")
+ self._trackerHandleColor = formattedColor!
+ self.updateView();
+ }
+ }
+ }
+ get {
+ return nil
+ }
+ }
+
+ var height: NSNumber? {
+ set {
+ self.rect.size.height = RCTConvert.cgFloat(newValue) + 40
+ self.updateView()
+ }
+ get {
+ return nil
+ }
+ }
+
+ var width: NSNumber? {
+ set {
+ self.rect.size.width = RCTConvert.cgFloat(newValue)
+ self.updateView()
+ }
+ get {
+ return nil
+ }
+ }
+
+ var themeColor: NSString? {
+ set {
+ if newValue != nil {
+ let color = NumberFormatter().number(from: newValue! as String)
+ self.mThemeColor = RCTConvert.uiColor(color)
+ self.updateView()
+ }
+ }
+ get {
+ return nil
+ }
+ }
+
+ var maxLength: NSNumber? {
+ set {
+ if newValue != nil {
+ self._maxLength = RCTConvert.cgFloat(newValue!)
+ self.updateView()
+ }
+ }
+ get {
+ return nil
+ }
+ }
+
+ var minLength: NSNumber? {
+ set {
+ if newValue != nil {
+ self._minLength = RCTConvert.cgFloat(newValue!)
+ self.updateView()
+ }
+ }
+ get {
+ return nil
+ }
+ }
+
+ var thumbWidth: NSNumber? {
+ set {
+ if newValue != nil {
+ self._thumbWidth = RCTConvert.cgFloat(newValue!)
+ self.updateView()
+ }
+ }
+ get {
+ return nil
+ }
+ }
+
+ var currentTime: NSNumber? {
+ set {
+ print("CHANGED: [TrimmerView]: currentTime: \(newValue)")
+ if newValue != nil && self.trimmerView != nil {
+ let convertedValue = newValue as! CGFloat
+ self.trimmerView?.seek(toTime: convertedValue)
+ // self.trimmerView
+ }
+ }
+ get {
+ return nil
+ }
+ }
+
+ var trackerColor: NSString? {
+ set {
+ if newValue == nil {
+ return
+ }
+ print("CHANGED: trackerColor \(newValue!)")
+ let color = NumberFormatter().number(from: newValue! as String)
+ let formattedColor = RCTConvert.uiColor(color)
+ if formattedColor != nil {
+ self._trackerColor = formattedColor!
+ self.updateView()
+ }
+ }
+ get {
+ return nil
+ }
+ }
+
+ func updateView() {
+ self.frame = rect
+ if trimmerView != nil {
+ trimmerView!.frame = rect
+ trimmerView!.themeColor = self.mThemeColor
+ trimmerView!.trackerColor = self._trackerColor
+ trimmerView!.trackerHandleColor = self._trackerHandleColor
+ trimmerView!.showTrackerHandle = self._showTrackerHandle
+ trimmerView!.maxLength = _maxLength == nil ? CGFloat(self.asset.duration.seconds) : _maxLength!
+ self.frame = CGRect(x: rect.origin.x, y: rect.origin.y, width: rect.size.width, height: rect.size.height + 20)
+ if _minLength != nil {
+ trimmerView!.minLength = _minLength!
+ }
+ if _thumbWidth != nil {
+ trimmerView!.thumbWidth = _thumbWidth!
+ }
+ self.trimmerView!.resetSubviews()
+ // Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(self.updateTrimmer), userInfo: nil, repeats: false)
+ }
+ }
+
+ func updateTrimmer() {
+ self.trimmerView!.resetSubviews()
+ }
+
+ func setSource(source: NSString?) {
+ if source != nil {
+ let pathToSource = NSURL(string: source! as String)
+ self.asset = AVURLAsset(url: pathToSource! as URL, options: nil)
+
+ trimmerView = ICGVideoTrimmerView(frame: rect, asset: self.asset)
+ trimmerView!.showsRulerView = false
+ trimmerView!.hideTracker(false)
+ trimmerView!.delegate = self
+ trimmerView!.trackerColor = self._trackerColor
+ self.addSubview(trimmerView!)
+ self.updateView()
+ }
+ }
+
+ init(frame: CGRect, bridge: RCTBridge) {
+ super.init(frame: frame)
+ self.bridge = bridge
+ }
+
+ required init?(coder aDecoder: NSCoder) {
+ fatalError("init(coder:) has not been implemented")
+ }
+
+ func onTrimmerPositionChange(startTime: CGFloat, endTime: CGFloat) {
+ if self.onChange != nil {
+ let event = ["startTime": startTime, "endTime": endTime]
+ self.onChange!(event)
+ }
+ }
+
+ func trimmerView(_ trimmerView: ICGVideoTrimmerView, didChangeLeftPosition startTime: CGFloat, rightPosition endTime: CGFloat) {
+ onTrimmerPositionChange(startTime: startTime, endTime: endTime)
+ }
+
+ public func trimmerView(_ trimmerView: ICGVideoTrimmerView, currentPosition currentTime: CGFloat) {
+ print("current", currentTime)
+ if onTrackerMove == nil {
+ return
+ }
+ let event = ["currentTime": currentTime]
+ self.onTrackerMove!(event)
+ }
+}
diff --git a/ios/RNVideoProcessing/RNTrimmerView/RNTrimmerViewManager.swift b/ios/RNVideoProcessing/RNTrimmerView/RNTrimmerViewManager.swift
new file mode 100644
index 00000000..450a45b3
--- /dev/null
+++ b/ios/RNVideoProcessing/RNTrimmerView/RNTrimmerViewManager.swift
@@ -0,0 +1,17 @@
+//
+// RNTrimmerViewManager.swift
+// RNVideoProcessing
+//
+
+import UIKit
+
+@objc(RNTrimmerViewManager)
+class RNTrimmerViewManager: RCTViewManager {
+ override class func requiresMainQueueSetup() -> Bool {
+ return true
+ }
+
+ @objc override func view() -> UIView! {
+ return RNTrimmerView(frame: CGRect.zero, bridge: self.bridge)
+ }
+}