react-native-video-trim 3.0.10 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +80 -63
- package/VideoTrim.podspec +24 -0
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +82 -49
- package/android/gradle.properties +7 -5
- package/android/src/main/AndroidManifest.xml +4 -2
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrim.kt +646 -0
- package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrimPackage.kt +22 -0
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/enums/ErrorCode.java +1 -1
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/interfaces/IVideoTrimmerView.java +1 -1
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/interfaces/VideoTrimListener.java +6 -5
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/MediaMetadataUtil.java +1 -1
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/StorageUtil.java +3 -1
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/VideoTrimmerUtil.java +51 -41
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/widgets/VideoTrimmerView.java +45 -69
- package/ios/AssetLoader.swift +2 -2
- package/ios/ErrorCode.swift +2 -2
- package/ios/ProgressAlertController.swift +2 -2
- package/ios/VideoTrim.swift +52 -835
- package/ios/VideoTrimImpl.swift +957 -0
- package/ios/VideoTrimmer.swift +2 -3
- package/ios/VideoTrimmerThumb.swift +33 -26
- package/ios/VideoTrimmerViewController.swift +47 -28
- package/lib/module/VideoTrim.nitro.js +4 -0
- package/lib/module/VideoTrim.nitro.js.map +1 -0
- package/lib/module/index.js +98 -22
- package/lib/module/index.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/{index.d.ts → src/VideoTrim.nitro.d.ts} +125 -134
- package/lib/typescript/src/VideoTrim.nitro.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +49 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/nitrogen/generated/android/c++/JEditorConfig.hpp +237 -0
- package/nitrogen/generated/android/c++/JFileValidationResult.hpp +61 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +74 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string_std__unordered_map_std__string__std__string_.hpp +89 -0
- package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.cpp +151 -0
- package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JTrimOptions.hpp +109 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/EditorConfig.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/FileValidationResult.kt +28 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void_std__string_std__unordered_map_std__string__std__string_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/HybridVideoTrimSpec.kt +86 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/TrimOptions.kt +40 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/videotrimOnLoad.kt +35 -0
- package/nitrogen/generated/android/videotrim+autolinking.cmake +78 -0
- package/nitrogen/generated/android/videotrim+autolinking.gradle +27 -0
- package/nitrogen/generated/android/videotrimOnLoad.cpp +50 -0
- package/nitrogen/generated/android/videotrimOnLoad.hpp +25 -0
- package/nitrogen/generated/ios/VideoTrim+autolinking.rb +60 -0
- package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.cpp +96 -0
- package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.hpp +374 -0
- package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Umbrella.hpp +56 -0
- package/nitrogen/generated/ios/VideoTrimAutolinking.mm +33 -0
- package/nitrogen/generated/ios/VideoTrimAutolinking.swift +25 -0
- package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.hpp +127 -0
- package/nitrogen/generated/ios/swift/EditorConfig.swift +541 -0
- package/nitrogen/generated/ios/swift/FileValidationResult.swift +57 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_FileValidationResult.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_double.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string_std__unordered_map_std__string__std__string_.swift +54 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridVideoTrimSpec.swift +54 -0
- package/nitrogen/generated/ios/swift/HybridVideoTrimSpec_cxx.swift +241 -0
- package/nitrogen/generated/ios/swift/TrimOptions.swift +189 -0
- package/nitrogen/generated/shared/c++/EditorConfig.hpp +253 -0
- package/nitrogen/generated/shared/c++/FileValidationResult.hpp +77 -0
- package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.cpp +27 -0
- package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.hpp +80 -0
- package/nitrogen/generated/shared/c++/TrimOptions.hpp +125 -0
- package/package.json +75 -71
- package/src/VideoTrim.nitro.ts +263 -0
- package/src/index.tsx +120 -257
- package/android/src/main/AndroidManifestDeprecated.xml +0 -3
- package/android/src/main/java/com/videotrim/VideoTrimModule.java +0 -603
- package/android/src/main/java/com/videotrim/VideoTrimPackage.java +0 -28
- package/ios/VideoTrim-Bridging-Header.h +0 -2
- package/ios/VideoTrim.mm +0 -17
- package/ios/VideoTrim.xcodeproj/project.pbxproj +0 -283
- package/lib/commonjs/index.js +0 -87
- package/lib/commonjs/index.js.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/react-native-video-trim.podspec +0 -43
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// VideoTrim-Swift-Cxx-Umbrella.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
// Forward declarations of C++ defined types
|
|
11
|
+
// Forward declaration of `EditorConfig` to properly resolve imports.
|
|
12
|
+
namespace margelo::nitro::videotrim { struct EditorConfig; }
|
|
13
|
+
// Forward declaration of `FileValidationResult` to properly resolve imports.
|
|
14
|
+
namespace margelo::nitro::videotrim { struct FileValidationResult; }
|
|
15
|
+
// Forward declaration of `HybridVideoTrimSpec` to properly resolve imports.
|
|
16
|
+
namespace margelo::nitro::videotrim { class HybridVideoTrimSpec; }
|
|
17
|
+
// Forward declaration of `TrimOptions` to properly resolve imports.
|
|
18
|
+
namespace margelo::nitro::videotrim { struct TrimOptions; }
|
|
19
|
+
|
|
20
|
+
// Include C++ defined types
|
|
21
|
+
#include "EditorConfig.hpp"
|
|
22
|
+
#include "FileValidationResult.hpp"
|
|
23
|
+
#include "HybridVideoTrimSpec.hpp"
|
|
24
|
+
#include "TrimOptions.hpp"
|
|
25
|
+
#include <NitroModules/Promise.hpp>
|
|
26
|
+
#include <NitroModules/Result.hpp>
|
|
27
|
+
#include <exception>
|
|
28
|
+
#include <functional>
|
|
29
|
+
#include <memory>
|
|
30
|
+
#include <string>
|
|
31
|
+
#include <unordered_map>
|
|
32
|
+
#include <vector>
|
|
33
|
+
|
|
34
|
+
// C++ helpers for Swift
|
|
35
|
+
#include "VideoTrim-Swift-Cxx-Bridge.hpp"
|
|
36
|
+
|
|
37
|
+
// Common C++ types used in Swift
|
|
38
|
+
#include <NitroModules/ArrayBufferHolder.hpp>
|
|
39
|
+
#include <NitroModules/AnyMapHolder.hpp>
|
|
40
|
+
#include <NitroModules/RuntimeError.hpp>
|
|
41
|
+
|
|
42
|
+
// Forward declarations of Swift defined types
|
|
43
|
+
// Forward declaration of `HybridVideoTrimSpec_cxx` to properly resolve imports.
|
|
44
|
+
namespace VideoTrim { class HybridVideoTrimSpec_cxx; }
|
|
45
|
+
|
|
46
|
+
// Include Swift defined types
|
|
47
|
+
#if __has_include("VideoTrim-Swift.h")
|
|
48
|
+
// This header is generated by Xcode/Swift on every app build.
|
|
49
|
+
// If it cannot be found, make sure the Swift module's name (= podspec name) is actually "VideoTrim".
|
|
50
|
+
#include "VideoTrim-Swift.h"
|
|
51
|
+
// Same as above, but used when building with frameworks (`use_frameworks`)
|
|
52
|
+
#elif __has_include(<VideoTrim/VideoTrim-Swift.h>)
|
|
53
|
+
#include <VideoTrim/VideoTrim-Swift.h>
|
|
54
|
+
#else
|
|
55
|
+
#error VideoTrim's autogenerated Swift header cannot be found! Make sure the Swift module's name (= podspec name) is actually "VideoTrim", and try building the app first.
|
|
56
|
+
#endif
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// VideoTrimAutolinking.mm
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#import <Foundation/Foundation.h>
|
|
9
|
+
#import <NitroModules/HybridObjectRegistry.hpp>
|
|
10
|
+
#import "VideoTrim-Swift-Cxx-Umbrella.hpp"
|
|
11
|
+
#import <type_traits>
|
|
12
|
+
|
|
13
|
+
#include "HybridVideoTrimSpecSwift.hpp"
|
|
14
|
+
|
|
15
|
+
@interface VideoTrimAutolinking : NSObject
|
|
16
|
+
@end
|
|
17
|
+
|
|
18
|
+
@implementation VideoTrimAutolinking
|
|
19
|
+
|
|
20
|
+
+ (void) load {
|
|
21
|
+
using namespace margelo::nitro;
|
|
22
|
+
using namespace margelo::nitro::videotrim;
|
|
23
|
+
|
|
24
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
25
|
+
"VideoTrim",
|
|
26
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
27
|
+
std::shared_ptr<margelo::nitro::videotrim::HybridVideoTrimSpec> hybridObject = VideoTrim::VideoTrimAutolinking::createVideoTrim();
|
|
28
|
+
return hybridObject;
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// VideoTrimAutolinking.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
public final class VideoTrimAutolinking {
|
|
9
|
+
public typealias bridge = margelo.nitro.videotrim.bridge.swift
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Creates an instance of a Swift class that implements `HybridVideoTrimSpec`,
|
|
13
|
+
* and wraps it in a Swift class that can directly interop with C++ (`HybridVideoTrimSpec_cxx`)
|
|
14
|
+
*
|
|
15
|
+
* This is generated by Nitrogen and will initialize the class specified
|
|
16
|
+
* in the `"autolinking"` property of `nitro.json` (in this case, `VideoTrim`).
|
|
17
|
+
*/
|
|
18
|
+
public static func createVideoTrim() -> bridge.std__shared_ptr_margelo__nitro__videotrim__HybridVideoTrimSpec_ {
|
|
19
|
+
let hybridObject = VideoTrim()
|
|
20
|
+
return { () -> bridge.std__shared_ptr_margelo__nitro__videotrim__HybridVideoTrimSpec_ in
|
|
21
|
+
let __cxxWrapped = hybridObject.getCxxWrapper()
|
|
22
|
+
return __cxxWrapped.getCxxPart()
|
|
23
|
+
}()
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridVideoTrimSpecSwift.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "HybridVideoTrimSpecSwift.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::videotrim {
|
|
11
|
+
} // namespace margelo::nitro::videotrim
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridVideoTrimSpecSwift.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "HybridVideoTrimSpec.hpp"
|
|
11
|
+
|
|
12
|
+
// Forward declaration of `HybridVideoTrimSpec_cxx` to properly resolve imports.
|
|
13
|
+
namespace VideoTrim { class HybridVideoTrimSpec_cxx; }
|
|
14
|
+
|
|
15
|
+
// Forward declaration of `EditorConfig` to properly resolve imports.
|
|
16
|
+
namespace margelo::nitro::videotrim { struct EditorConfig; }
|
|
17
|
+
// Forward declaration of `FileValidationResult` to properly resolve imports.
|
|
18
|
+
namespace margelo::nitro::videotrim { struct FileValidationResult; }
|
|
19
|
+
// Forward declaration of `TrimOptions` to properly resolve imports.
|
|
20
|
+
namespace margelo::nitro::videotrim { struct TrimOptions; }
|
|
21
|
+
|
|
22
|
+
#include <string>
|
|
23
|
+
#include "EditorConfig.hpp"
|
|
24
|
+
#include <functional>
|
|
25
|
+
#include <unordered_map>
|
|
26
|
+
#include <NitroModules/Promise.hpp>
|
|
27
|
+
#include <vector>
|
|
28
|
+
#include "FileValidationResult.hpp"
|
|
29
|
+
#include "TrimOptions.hpp"
|
|
30
|
+
|
|
31
|
+
#include "VideoTrim-Swift-Cxx-Umbrella.hpp"
|
|
32
|
+
|
|
33
|
+
namespace margelo::nitro::videotrim {
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The C++ part of HybridVideoTrimSpec_cxx.swift.
|
|
37
|
+
*
|
|
38
|
+
* HybridVideoTrimSpecSwift (C++) accesses HybridVideoTrimSpec_cxx (Swift), and might
|
|
39
|
+
* contain some additional bridging code for C++ <> Swift interop.
|
|
40
|
+
*
|
|
41
|
+
* Since this obviously introduces an overhead, I hope at some point in
|
|
42
|
+
* the future, HybridVideoTrimSpec_cxx can directly inherit from the C++ class HybridVideoTrimSpec
|
|
43
|
+
* to simplify the whole structure and memory management.
|
|
44
|
+
*/
|
|
45
|
+
class HybridVideoTrimSpecSwift: public virtual HybridVideoTrimSpec {
|
|
46
|
+
public:
|
|
47
|
+
// Constructor from a Swift instance
|
|
48
|
+
explicit HybridVideoTrimSpecSwift(const VideoTrim::HybridVideoTrimSpec_cxx& swiftPart):
|
|
49
|
+
HybridObject(HybridVideoTrimSpec::TAG),
|
|
50
|
+
_swiftPart(swiftPart) { }
|
|
51
|
+
|
|
52
|
+
public:
|
|
53
|
+
// Get the Swift part
|
|
54
|
+
inline VideoTrim::HybridVideoTrimSpec_cxx& getSwiftPart() noexcept {
|
|
55
|
+
return _swiftPart;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public:
|
|
59
|
+
// Get memory pressure
|
|
60
|
+
inline size_t getExternalMemorySize() noexcept override {
|
|
61
|
+
return _swiftPart.getMemorySize();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public:
|
|
65
|
+
// Properties
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
public:
|
|
69
|
+
// Methods
|
|
70
|
+
inline void showEditor(const std::string& filePath, const EditorConfig& config, const std::function<void(const std::string& /* eventName */, const std::unordered_map<std::string, std::string>& /* payload */)>& onEvent) override {
|
|
71
|
+
auto __result = _swiftPart.showEditor(filePath, config, onEvent);
|
|
72
|
+
if (__result.hasError()) [[unlikely]] {
|
|
73
|
+
std::rethrow_exception(__result.error());
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
inline std::shared_ptr<Promise<std::vector<std::string>>> listFiles() override {
|
|
77
|
+
auto __result = _swiftPart.listFiles();
|
|
78
|
+
if (__result.hasError()) [[unlikely]] {
|
|
79
|
+
std::rethrow_exception(__result.error());
|
|
80
|
+
}
|
|
81
|
+
auto __value = std::move(__result.value());
|
|
82
|
+
return __value;
|
|
83
|
+
}
|
|
84
|
+
inline std::shared_ptr<Promise<double>> cleanFiles() override {
|
|
85
|
+
auto __result = _swiftPart.cleanFiles();
|
|
86
|
+
if (__result.hasError()) [[unlikely]] {
|
|
87
|
+
std::rethrow_exception(__result.error());
|
|
88
|
+
}
|
|
89
|
+
auto __value = std::move(__result.value());
|
|
90
|
+
return __value;
|
|
91
|
+
}
|
|
92
|
+
inline std::shared_ptr<Promise<bool>> deleteFile(const std::string& filePath) override {
|
|
93
|
+
auto __result = _swiftPart.deleteFile(filePath);
|
|
94
|
+
if (__result.hasError()) [[unlikely]] {
|
|
95
|
+
std::rethrow_exception(__result.error());
|
|
96
|
+
}
|
|
97
|
+
auto __value = std::move(__result.value());
|
|
98
|
+
return __value;
|
|
99
|
+
}
|
|
100
|
+
inline void closeEditor(const std::function<void()>& onComplete) override {
|
|
101
|
+
auto __result = _swiftPart.closeEditor(onComplete);
|
|
102
|
+
if (__result.hasError()) [[unlikely]] {
|
|
103
|
+
std::rethrow_exception(__result.error());
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
inline std::shared_ptr<Promise<FileValidationResult>> isValidFile(const std::string& url) override {
|
|
107
|
+
auto __result = _swiftPart.isValidFile(url);
|
|
108
|
+
if (__result.hasError()) [[unlikely]] {
|
|
109
|
+
std::rethrow_exception(__result.error());
|
|
110
|
+
}
|
|
111
|
+
auto __value = std::move(__result.value());
|
|
112
|
+
return __value;
|
|
113
|
+
}
|
|
114
|
+
inline std::shared_ptr<Promise<std::string>> trim(const std::string& url, const TrimOptions& options) override {
|
|
115
|
+
auto __result = _swiftPart.trim(url, options);
|
|
116
|
+
if (__result.hasError()) [[unlikely]] {
|
|
117
|
+
std::rethrow_exception(__result.error());
|
|
118
|
+
}
|
|
119
|
+
auto __value = std::move(__result.value());
|
|
120
|
+
return __value;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
private:
|
|
124
|
+
VideoTrim::HybridVideoTrimSpec_cxx _swiftPart;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
} // namespace margelo::nitro::videotrim
|