MeiCam SDK For iOS  3.14.0
NvsTimeline.h
Go to the documentation of this file.
1 //================================================================================
2 //
3 // (c) Copyright Meishe Co. Ltd, 2016. 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: Dec 29. 2016
11 // Author: Meishe video team
12 //================================================================================
13 #pragma once
14 
15 #import "NvsCommonDef.h"
16 #import "NvsObject.h"
17 #import "NvsLiveWindow.h"
18 #import "NvsCustomVideoFx.h"
21 
22 @class NvsVideoTrack;
23 @class NvsAudioTrack;
24 @class NvsTimelineCaption;
26 @class NvsTimelineVideoFx;
27 @class NvsClip;
28 @class NvsCaption;
29 
36 typedef enum {
42 
44 
45  @property (nonatomic, assign) int64_t startTime;
46  @property (nonatomic, assign) int64_t endTime;
47  @property (nonatomic, assign) float playbackRate;
48  @property (nonatomic, assign) float audioGain;
49 
50 @end
51 
53 
54 @property (nonatomic, strong) NvsCaption* caption;
55 @property (nonatomic, strong) NSArray<NSValue*>* values; // CGPoint
56 
57 @end
58 
60 
61 @property (nonatomic, strong) NvsClip* clip;
62 @property (nonatomic, strong) NSArray<NSValue*>* values; // CGPoint
63 
64 @end
65 
66 
67 
85 
86 @property (readonly) NvsVideoResolution videoRes;
87 
88 @property (readonly) NvsAudioResolution audioRes;
89 
90 @property (readonly) NvsRational videoFps;
91 
92 @property (readonly) int64_t duration;
93 
94 @property (nonatomic) int64_t audioFadeOutDuration;
95 
104 -(int)getCreationFlags;
105 
119 - (NvsVideoTrack *)appendVideoTrack;
120 
134 - (NvsAudioTrack *)appendAudioTrack;
135 
151 - (NvsVideoTrack *)insertVideoTrack:(unsigned int)clipIndex;
152 
168 - (NvsAudioTrack *)insertAudioTrack:(unsigned int)clipIndex;
169 
185 - (BOOL)removeVideoTrack:(unsigned int)trackIndex;
186 
202 - (BOOL)removeAudioTrack:(unsigned int)trackIndex;
203 
214 - (unsigned int)videoTrackCount;
215 
226 - (unsigned int)audioTrackCount;
227 
241 - (NvsVideoTrack *)getVideoTrackByIndex:(unsigned int)trackIndex;
242 
256 - (NvsAudioTrack *)getAudioTrackByIndex:(unsigned int)trackIndex;
257 
275 - (BOOL)changeVideoSize:(int)videoWidth videoHeight:(int)videoHeight;
276 
288 - (BOOL)changeVideoBitDepth:(NvsVideoResolutionBitDepth)newBitDepth;
289 
290 
300 - (void)setCaptionBoundingRectInActualMode:(BOOL)isActualBoundingRect;
301 
317 - (void)enableRenderOrderByZValue:(BOOL)enable;
318 
328 - (BOOL)isRenderOrderByZValueEnabled;
329 
340 - (NvsTimelineCaption *)getFirstCaption;
341 
352 - (NvsTimelineCaption *)getLastCaption;
353 
365 - (NvsTimelineCaption *)getPrevCaption:(NvsTimelineCaption *)caption;
366 
378 - (NvsTimelineCaption *)getNextCaption:(NvsTimelineCaption *)caption;
379 
397 - (NSArray *)getCaptionsByTimelinePosition:(int64_t)timelinePos;
398 
422 - (NvsTimelineCaption *)addCaption:(NSString *)captionText inPoint:(int64_t)inPoint duration:(int64_t)duration captionStylePackageId:(NSString *)captionStylePackageId;
423 
450 - (NvsTimelineCaption *)addPanoramicCaption:(NSString *)captionText inPoint:(int64_t)inPoint duration:(int64_t)duration captionStylePackageId:(NSString *)captionStylePackageId;
451 
473 - (NvsTimelineCaption *)addModularCaption:(NSString *)captionText inPoint:(int64_t)inPoint duration:(int64_t)duration;
474 
486 - (NvsTimelineCaption *)removeCaption:(NvsTimelineCaption *)caption;
487 
499 - (NvsTimelineCompoundCaption *)getFirstCompoundCaption;
500 
512 - (NvsTimelineCompoundCaption *)getLastCompoundCaption;
513 
526 - (NvsTimelineCompoundCaption *)getPrevCompoundCaption:(NvsTimelineCompoundCaption *)caption;
527 
540 - (NvsTimelineCompoundCaption *)getNextCompoundCaption:(NvsTimelineCompoundCaption *)caption;
541 
560 - (NSArray<NvsTimelineCompoundCaption*> *)getCompoundCaptionsByTimelinePosition:(int64_t)timelinePos;
561 
586 - (NvsTimelineCompoundCaption *)addCompoundCaption:(int64_t)inPoint
587  duration:(int64_t)duration
588  compoundCaptionPackageId:(NSString *)compoundCaptionPackageId;
589 
615 - (NvsTimelineCompoundCaption *)addPanoramicCompoundCaption:(int64_t)inPoint
616  duration:(int64_t)duration
617  compoundCaptionPackageId:(NSString *)compoundCaptionPackageId;
618 
631 - (NvsTimelineCompoundCaption *)removeCompoundCaption:(NvsTimelineCompoundCaption *)caption;
632 
643 - (NvsTimelineAnimatedSticker *)getFirstAnimatedSticker;
644 
654 - (NvsTimelineAnimatedSticker *)getLastAnimatedSticker;
655 
667 - (NvsTimelineAnimatedSticker *)getPrevAnimatedSticker:(NvsTimelineAnimatedSticker *)animatedSticker;
668 
680 - (NvsTimelineAnimatedSticker *)getNextAnimatedSticker:(NvsTimelineAnimatedSticker *)animatedSticker;
681 
699 - (NSArray *)getAnimatedStickersByTimelinePosition:(int64_t)timelinePos;
700 
726 - (NvsTimelineAnimatedSticker *)addAnimatedSticker:(int64_t)inPoint duration:(int64_t)duration animatedStickerPackageId:(NSString *)animatedStickerPackageId;
727 
756 - (NvsTimelineAnimatedSticker *)addPanoramicAnimatedSticker:(int64_t)inPoint duration:(int64_t)duration animatedStickerPackageId:(NSString *)animatedStickerPackageId;
757 
787 - (NvsTimelineAnimatedSticker *)addCustomAnimatedSticker:(int64_t)inPoint duration:(int64_t)duration animatedStickerPackageId:(NSString *)animatedStickerPackageId customImagePath:(NSString *)customImagePath;
788 
821 - (NvsTimelineAnimatedSticker *)addCustomPanoramicAnimatedSticker:(int64_t)inPoint duration:(int64_t)duration animatedStickerPackageId:(NSString *)animatedStickerPackageId customImagePath:(NSString *)customImagePath;
822 
834 - (NvsTimelineAnimatedSticker *)removeAnimatedSticker:(NvsTimelineAnimatedSticker *)animatedSticker;
835 
844 - (NvsTimelineVideoFx *)getFirstTimelineVideoFx;
845 
854 - (NvsTimelineVideoFx *)getLastTimelineVideoFx;
855 
866 - (NvsTimelineVideoFx *)getPrevTimelineVideoFx:(NvsTimelineVideoFx *)videoFx;
867 
878 - (NvsTimelineVideoFx *)getNextTimelineVideoFx:(NvsTimelineVideoFx *)videoFx;
879 
896 - (NSArray *)getTimelineVideoFxByTimelinePosition:(int64_t)timelinePos;
897 
920 - (NvsTimelineVideoFx *)addBuiltinTimelineVideoFx:(int64_t)inPoint duration:(int64_t)duration videoFxName:(NSString *)videoFxName;
921 
946 - (NvsTimelineVideoFx *)addPackagedTimelineVideoFx:(int64_t)inPoint duration:(int64_t)duration videoFxPackageId:(NSString *)videoFxPackageId;
947 
971 - (NvsTimelineVideoFx *)addCustomTimelineVideoFx:(int64_t)inPoint
972  duration:(int64_t)duration
973  customVideoFxRender:(id<NvsCustomVideoFxRenderer>)customVideoFxRender;
974 
985 - (NvsTimelineVideoFx *)removeTimelineVideoFx:(NvsTimelineVideoFx *)videoFx;
986 
997 - (NSString *)getCurrentThemeId;
998 
1026 - (BOOL)applyTheme:(NSString *)themeId;
1027 
1038 - (void)removeCurrentTheme;
1039 
1050 - (void)setThemeTitleCaptionText:(NSString *)text;
1051 
1062 - (void)setThemeTrailerCaptionText:(NSString *)text;
1063 
1075 - (void)setThemeMusicVolumeGain:(float)leftVolumeGain rightVolumeGain:(float)rightVolumeGain;
1076 
1088 - (void)getThemeMusicVolumeGain:(float *)leftVolumeGain rightVolumeGain:(float *)rightVolumeGain;
1089 
1114 - (bool)addWatermark:(NSString*)watermarkFilePath displayWidth:(int)displayWidth displayHeight:(int)displayHeight opacity:(float)opacity position:(int)position marginX:(int)marginX marginY:(int)marginY;
1115 
1126 - (void)deleteWatermark;
1127 
1138 - (bool)setWatermarkOpacity:(float)opacity;
1139 
1159 - (bool)setTimelineEndingLogo:(NSString*)logoFilePath displayWidth:(unsigned int)displayWidth displayHeight:(unsigned int)displayHeight centerX:(int)centerX centerY:(int)centerY;
1160 
1170 - (void)removeTimelineEndingLogo;
1171 
1172 - (void)setPlaybackRateControl:(NSArray *) arrayPlaybackRateControlRegion;
1173 
1174 - (NSArray *)getPlaybackRateControl;
1175 
1190 - (BOOL)moveVideoTrackIndex:(unsigned int)srcTrackIndex dstTrackIndex:(unsigned int)dstTrackIndex;
1191 
1201 - (NvsTimelineGraphCompositor *)getFirstTimelineGraphCompositor;
1202 
1212 - (NvsTimelineGraphCompositor *)getLastTimelineGraphCompositor;
1213 
1225 - (NvsTimelineGraphCompositor *)getPrevTimelineGraphCompositor:(NvsTimelineGraphCompositor*)graphCompositor;
1226 
1238 - (NvsTimelineGraphCompositor *)getNextTimelineGraphCompositor:(NvsTimelineGraphCompositor*)graphCompositor;
1239 
1251 - (NvsTimelineGraphCompositor *)getTimelineGraphCompositorByTimelinePosition:(int64_t)timelinePos;
1252 
1268 - (NvsTimelineGraphCompositor *)addTimelineGraphCompositor:(int64_t)inPoint duration:(int64_t)duration graphDescStr:(NSString *)graphDescStr;
1269 
1288 - (NvsTimelineGraphCompositor *)addTimelineGraphCompositor:(int64_t)inPoint duration:(int64_t)duration graphDescStr:(NSString *)graphDescStr buddyTrackIndex:(int)buddyTrackIndex;
1289 
1290 
1302 - (NvsTimelineGraphCompositor *)removeTimelineGraphCompositor:(NvsTimelineGraphCompositor*)graphCompositor;
1303 
1313 - (unsigned int)creationFlags;
1314 
1327 - (bool)applyThemeTemplate:(NSString *)templateId;
1328 
1339 - (NSArray<NvsCaptionBoundingVerticesInfo*>*)getCaptionsBoundingVerticesRecursively:(NvsBoundingType)boundingType timelinePosition:(int64_t)timelinePosition;
1340 
1351 - (NSArray<NvsClipBoundingVerticesInfo*>*)getVideoClipBoundingVerticesRecursively:(int64_t)timelinePosition;
1352 
1353 @end
1354 
NvsTimeline
Timeline is which the entity of editing the scene.
Definition: NvsTimeline.h:85
NvsCaptionBoundingVerticesInfo
Definition: NvsTimeline.h:53
NvsTimelineWatermarkPosition_TopRight
@ NvsTimelineWatermarkPosition_TopRight
Watermark on top-right.
Definition: NvsTimeline.h:37
NvsTimelineWatermarkPosition_BottomLeft
@ NvsTimelineWatermarkPosition_BottomLeft
Watermark on bottom-left.
Definition: NvsTimeline.h:39
NvsPlaybackRateControlRegion::endTime
int64_t endTime
Definition: NvsTimeline.h:46
NvsVideoTrack
Video track is the collection of video clips.
Definition: NvsVideoTrack.h:64
NvsPlaybackRateControlRegion::startTime
int64_t startTime
Definition: NvsTimeline.h:45
NvsTimelineWatermarkPosition_TopLeft
@ NvsTimelineWatermarkPosition_TopLeft
Watermark on top-left.
Definition: NvsTimeline.h:38
NvsObject
The NvsObject class inherits from the NSObject class in object-c.
Definition: NvsObject.h:78
NvsRational
Rational value.
Definition: NvsCommonDef.h:339
NvsBoundingType
NvsBoundingType
Definition: NvsCompoundCaption.h:44
NvsPlaybackRateControlRegion
Definition: NvsTimeline.h:44
NvsTimelineCompoundCaption
Timeline compound caption.
Definition: NvsTimelineCompoundCaption.h:36
NvsTimelineGraphCompositor
Timeline video effect Timeline GraphCompositor is a video effect applied to a Timeline instance.
Definition: NvsTimelineGraphCompositor.h:29
NvsTimelineWatermarkPosition
NvsTimelineWatermarkPosition
Watermark position.
Definition: NvsTimeline.h:36
NvsCustomVideoFxRenderer-p
Custom video effects renderer interface.
Definition: NvsCustomVideoFx.h:52
NvsTimelineCaption
Timeline captions.
Definition: NvsTimelineCaption.h:32
NvsTimelineAnimatedSticker
Timeline animated sticker class.
Definition: NvsTimelineAnimatedSticker.h:36
NvsObject.h
NvsCaption
captions.
Definition: NvsCaption.h:34
NvsTimelineVideoFx
Timeline video effect Timeline Video Effect is a video effect applied to a Timeline instance....
Definition: NvsTimelineVideoFx.h:53
NvsTimelineWatermarkPosition_BottomRight
@ NvsTimelineWatermarkPosition_BottomRight
Watermark on bottom-right.
Definition: NvsTimeline.h:40
NvsAudioResolution
Audio resolution.
Definition: NvsCommonDef.h:374
NvsTimelineGraphCompositor.h
NVS_EXPORT
#define NVS_EXPORT
Definition: NvsCommonDef.h:20
NvsVideoResolution
Video resolution.
Definition: NvsCommonDef.h:386
NvsClipBoundingVerticesInfo
Definition: NvsTimeline.h:60
NvsClip
Clips are specific description of audio and video files.
Definition: NvsClip.h:47
NvsCommonDef.h
NvsCustomVideoFx.h
NvsPlaybackRateControlRegion::playbackRate
float playbackRate
Definition: NvsTimeline.h:47
NvsLiveWindow.h
NvsTimelineCompoundCaption.h
NvsVideoResolutionBitDepth
NvsVideoResolutionBitDepth
Video frame pixel format.
Definition: NvsCommonDef.h:269
NvsPlaybackRateControlRegion::audioGain
float audioGain
Definition: NvsTimeline.h:48
NvsAudioTrack
Audio track, collection of audio clips.
Definition: NvsAudioTrack.h:39