MeiCam SDK For iOS  3.10.0
NvsSmartCutGenerator.h
Go to the documentation of this file.
1 //================================================================================
2 //
3 // (c) Copyright China Digital Video (Beijing) Limited, 2019. All rights reserved.
4 //
5 // This code and information is provided "as is" without warranty of any kind,
6 // either expressed or implied, including but not limited to the implied
7 // warranties of merchantability and/or fitness for a particular purpose.
8 //
9 //--------------------------------------------------------------------------------
10 // Birth Date: Aug 21. 2019
11 // Author: NewAuto video team
12 //================================================================================
13 #pragma once
14 
15 #import <Foundation/Foundation.h>
16 #import "NvsCommonDef.h"
17 
24 NVS_EXPORT @interface NvsSmartCutClipData : NSObject
25 
26 @property (nonatomic, assign) int templateSlotIndex;
27 @property (nonatomic, copy) NSString* videoFilePath;
28 @property (nonatomic, assign) uint64_t trimIn;
29 @property (nonatomic, assign) uint64_t trimOut;
30 @property (nonatomic, assign) BOOL nospeed;
31 @property (nonatomic, assign) BOOL isImage;
32 @property (nonatomic, assign) BOOL imageMotion;
33 
34 @end
35 
36 NVS_EXPORT @interface NvsSmartCutCaptionInfo : NSObject
37 
38 @property (nonatomic, assign) int templateSlotIndex;
39 @property (nonatomic, copy) NSString* text;
40 @property (nonatomic, copy) NSString* style;
41 @property (nonatomic, assign) uint64_t duration;
42 @property (nonatomic, assign) uint64_t startOffset;
43 
44 @end
45 
47 
48 @property (nonatomic, assign) int templateSlotIndex;
49 @property (nonatomic, copy) NSString* name;
50 @property (nonatomic, assign) uint64_t duration;
51 
52 @end
53 
54 NVS_EXPORT @interface NvsSmartCutFilterInfo : NSObject
55 
56 @property (nonatomic, assign) int templateSlotIndex;
57 @property (nonatomic, copy) NSString* name;
58 @property (nonatomic, assign) uint64_t duration;
59 
60 @end
61 
62 NVS_EXPORT @interface NvsSmartCutSpeedInfo : NSObject
63 
64 @property (nonatomic, assign) uint64_t duration;
65 @property (nonatomic, assign) float speed0;
66 @property (nonatomic, assign) float speed1;
67 
68 @end
69 
70 NVS_EXPORT @interface NvsSmartCutSpeedList : NSObject
71 
72 @property (nonatomic, assign) int templateSlotIndex;
73 @property (nonatomic, strong) NSMutableArray<NvsSmartCutSpeedInfo*>* speeds;
74 
75 @end
76 
77 NVS_EXPORT @interface NvsSmartCutSCDData : NSObject
78 
79 @property (nonatomic, assign) uint64_t frameIndex;
80 @property (nonatomic, assign) int8_t sceneType;
81 @property (nonatomic, assign) int8_t environment;
82 @property (nonatomic, assign) int8_t location;
83 @property (nonatomic, assign) int8_t placeTypeL1;
84 @property (nonatomic, assign) int8_t placeTypeL2;
85 
86 @end
87 
88 NVS_EXPORT @interface NvsSmartCutSCDInfo : NSObject
89 
90 @property (nonatomic, copy) NSString* videoFilePath;
91 @property (nonatomic, copy) NSArray<NvsSmartCutSCDData*>* scdDataArray;
92 
93 @end
94 
95 
96 NVS_EXPORT @interface NvsSmartCutResultData : NSObject
97 
98 @property (nonatomic, strong) NSString *templatePath;
99 @property (nonatomic, strong) NSString *videoDate;
100 @property (nonatomic, strong) NSMutableArray <NvsSmartCutClipData *>*smartCutClips;
101 @property (nonatomic, strong) NSString *titleFilePath;
102 @property (nonatomic, strong) NSString *endingFilePath;
103 @property (nonatomic, strong) NSMutableArray <NvsSmartCutCaptionInfo *>*smartCutCaptions;
104 @property (nonatomic, strong) NSMutableArray <NvsSmartCutTransitionInfo *>*smartCutTransitions;
105 @property (nonatomic, strong) NSMutableArray <NvsSmartCutFilterInfo *>*smartCutClipFilters;
106 @property (nonatomic, strong) NSMutableArray <NvsSmartCutSpeedList *>*smartCutSpeeds;
107 @property (nonatomic, strong) NvsSmartCutFilterInfo *endingFilter;
108 @property (nonatomic, strong) NSString *musicFilePath;
109 @property (nonatomic, strong) NSMutableArray <NSString *>*timelineFilters;
110 @property (nonatomic, strong) NSString *smartFilter;
111 @property (nonatomic, strong) NvsSmartCutCaptionInfo *titleCaption;
112 @property (nonatomic, strong) NvsSmartCutCaptionInfo *endingCaption;
113 
114 @end
115 
116 
123 @protocol SmartCutGeneratorDelegate <NSObject>
124 @optional
125 
134 - (void)didSmartCutFinished:(NvsSmartCutResultData*) smartCutResult;
135 
144 - (void)didSmartCutError:(int) errorType;
145 
154 - (void)didSmartCutProgress:(float) progress;
155 
156 @end
157 
158 
165 NVS_EXPORT @interface NvsSmartCutGenerator : NSObject
166 
167 @property (weak, atomic) id<SmartCutGeneratorDelegate> delegate;
168 
181 + (instancetype)sharedInstance:(int)flag;
182 
183 
191 + (void)close;
192 
193 
218 - (BOOL)startSmartCut:(NSMutableArray<NSString*>*)scdFileList
219  videoFileList:(NSMutableArray<NSString*>*)videoFileList
220  templatePathList:(NSMutableArray<NSString*>*)templatePathList
221  captionPath:(NSString*)captionPath captionLicPath:(NSString*)captionLicPath
222  filterPath:(NSString*)filterPath filterLicPath:(NSString*)filterLicPath
223  location:(NSString*)location;
224 
225 -(BOOL)startSmartCut:(NSArray<NvsSmartCutSCDInfo*>*)scdInfoList
226  templatePathList:(NSArray<NSString*>*)templatePathList
227  captionPath:(NSString*)captionPath
228  captionLicPath:(NSString*)captionLicPath
229  filterPath:(NSString*)filterPath
230  filterLicPath:(NSString*)filterLicPath
231  location:(NSString*)location;
232 
241 - (BOOL)changeTemplate:(NSString*)templatePath;
242 
243 @end
244 
NvsSmartCutSpeedInfo
Definition: NvsSmartCutGenerator.h:63
NvsSmartCutTransitionInfo
Definition: NvsSmartCutGenerator.h:47
NvsSmartCutCaptionInfo
Definition: NvsSmartCutGenerator.h:37
NvsSmartCutClipData::trimOut
uint64_t trimOut
Definition: NvsSmartCutGenerator.h:29
NvsSmartCutFilterInfo
Definition: NvsSmartCutGenerator.h:55
NvsSmartCutClipData::imageMotion
BOOL imageMotion
Definition: NvsSmartCutGenerator.h:32
NvsSmartCutClipData::templateSlotIndex
int templateSlotIndex
Definition: NvsSmartCutGenerator.h:26
NvsSmartCutResultData
Definition: NvsSmartCutGenerator.h:97
NvsSmartCutClipData
SmartCutGenerator data class.
Definition: NvsSmartCutGenerator.h:25
NvsSmartCutSpeedList
Definition: NvsSmartCutGenerator.h:71
NvsSmartCutClipData::isImage
BOOL isImage
Definition: NvsSmartCutGenerator.h:31
NvsSmartCutClipData::trimIn
uint64_t trimIn
Definition: NvsSmartCutGenerator.h:28
NvsSmartCutGenerator
Smart cut generator class.
Definition: NvsSmartCutGenerator.h:166
NvsSmartCutSCDInfo
Definition: NvsSmartCutGenerator.h:89
NvsSmartCutClipData::videoFilePath
NSString * videoFilePath
Definition: NvsSmartCutGenerator.h:27
NVS_EXPORT
#define NVS_EXPORT
Definition: NvsCommonDef.h:20
NvsSmartCutSCDData
Definition: NvsSmartCutGenerator.h:78
NvsCommonDef.h
NvsSmartCutClipData::nospeed
BOOL nospeed
Definition: NvsSmartCutGenerator.h:30
SmartCutGeneratorDelegate-p
smart cut generator callback interface
Definition: NvsSmartCutGenerator.h:123