--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoeditor_plat/video_editor_engine_api/inc/VedCommon.h Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,349 @@
+/*
+* Copyright (c) 2010 Ixonos Plc.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - Initial contribution
+*
+* Contributors:
+* Ixonos Plc
+*
+* Description:
+*
+*/
+
+
+
+
+#ifndef __VEDCOMMON_H__
+#define __VEDCOMMON_H__
+
+#include <e32std.h>
+
+
+/**
+ * Constants for video clip speed settings. The speed is given by % x10, i.e. 1000 means 100 %.
+ */
+const TInt KVedNormalSpeed(1000);
+const TInt KVedMaxSpeed(1000);
+const TInt KVedMinSpeed(1);
+
+
+/**
+ * Enumeration for video clip classes.
+ */
+enum TVedVideoClipClass
+ {
+ EVedVideoClipClassFile = 15001,
+ EVedVideoClipClassGenerated
+ };
+
+
+/**
+ * Enumeration for bitrate modes.
+ */
+enum TVedBitrateMode
+ {
+ EVedBitrateModeUnrecognized = 18001,
+ EVedBitrateModeConstant,
+ EVedBitrateModeVariable,
+ EVedBitrateModeLast // should always be the last one
+ };
+
+/**
+ * Enumeration for video bitstream modes.
+ */
+enum TVedVideoBitstreamMode
+ {
+ EVedVideoBitstreamModeUnknown = 0, /* unrecognized mode; outside of H.263 Profile 0 Level 10, or MPEG-4 Visual Simple Profile */
+ EVedVideoBitstreamModeH263, /* H.263 Simple Profile (Profile 0, Level 10) */
+ EVedVideoBitstreamModeMPEG4ShortHeader, /* MPEG-4 Visual Simple Profile - Short Header */
+ EVedVideoBitstreamModeMPEG4Regular, /* MPEG-4 Visual Simple Profile - Regular */
+ EVedVideoBitstreamModeMPEG4Resyn, /* MPEG-4 Visual Simple Profile - Regular with Resynchronization Markers */
+ EVedVideoBitstreamModeMPEG4DP, /* MPEG-4 Visual Simple Profile - Data Partitioned */
+ EVedVideoBitstreamModeMPEG4DP_RVLC, /* MPEG-4 Visual Simple Profile - Data Partitioned with Reversible VLCs */
+ EVedVideoBitstreamModeMPEG4Resyn_DP, /* MPEG-4 Visual Simple Profile - Data Partitioned with Resynchronization Markers */
+ EVedVideoBitstreamModeMPEG4Resyn_DP_RVLC, /* MPEG-4 Visual Simple Profile - Data Partitioned with Reversible VLCs & Resynchronization Markers */
+ EVedVideoBitstreamModeAVC
+ };
+
+
+
+/* Video format of bitstream - used everywhere */
+enum TVedVideoType
+ {
+ EVedVideoTypeUnrecognized = 13001, /* should always be the first one */
+ EVedVideoTypeNoVideo, /* video is not present */
+ EVedVideoTypeH263Profile0Level10, /* H.263 Simple Profile (Profile 0, Level 10) */
+ EVedVideoTypeH263Profile0Level45, /* H.263 Simple Profile (Profile 0, Level 45) */
+ EVedVideoTypeMPEG4SimpleProfile, /* MPEG-4 Visual Simple Profile (any mode) */
+ EVedVideoTypeAVCBaselineProfile, /* AVC Baseline Profile */
+ EVedVideoTypeLast /* should always be the last one */
+ };
+
+/**
+ * Enumeration for video formats.
+ */
+enum TVedVideoFormat
+ {
+ EVedVideoFormatUnrecognized = 11001, // should always be the first one
+ EVedVideoFormat3GPP,
+ EVedVideoFormatMP4,
+ EVedVideoFormatLast // should always be the last one
+ };
+
+/**
+ * Enumeration for audio formats.
+ */
+enum TVedAudioFormat
+ {
+ EVedAudioFormatUnrecognized = 16001, // should always be the first one
+ EVedAudioFormat3GPP,
+ EVedAudioFormatMP4,
+ EVedAudioFormatAMR,
+ EVedAudioFormatAMRWB,
+ EVedAudioFormatMP3,
+ EVedAudioFormatAAC_ADIF,
+ EVedAudioFormatAAC_ADTS,
+ EVedAudioFormatWAV,
+ EVedAudioFormatLast // should always be the last one
+ };
+
+
+/**
+ * Enumeration for audio types (that is, codecs).
+ */
+enum TVedAudioType
+ {
+ EVedAudioTypeUnrecognized = 14001, // should always be the first one
+ EVedAudioTypeNoAudio,
+ EVedAudioTypeAMR,
+ EVedAudioTypeAMRWB,
+ EVedAudioTypeMP3,
+ EVedAudioTypeAAC_LC,
+ EVedAudioTypeAAC_LTP,
+ EVedAudioTypeWAV,
+ EVedAudioTypeLast // should always be the last one
+ };
+
+/**
+ * Enumeration for audio channel modes.
+ */
+enum TVedAudioChannelMode
+ {
+ EVedAudioChannelModeUnrecognized = 17001,
+ EVedAudioChannelModeStereo,
+ EVedAudioChannelModeDualChannel,
+ EVedAudioChannelModeSingleChannel
+ };
+
+/**
+ * Output parameter class
+ */
+
+class TVedOutputParameters
+ {
+ public:
+ // default constructor; initializes optional parameters to values which mean that editor can decide the value
+ inline TVedOutputParameters()
+ : iVideoType(EVedVideoTypeH263Profile0Level10), iVideoResolution(TSize(0,0)), iVideoBitrate(0), iVideoFrameRate(0),
+ iAudioType(EVedAudioTypeAMR), iAudioBitrate(0), iAudioChannelMode(EVedAudioChannelModeSingleChannel), iAudioSamplingRate(0),
+ iSyncIntervalInPicture(0), iSegmentSizeInBytes(0)
+ {}
+
+ public:
+
+ // video codec
+ TVedVideoType iVideoType;
+ // target resolution, 0 = no preference (use from input)
+ TSize iVideoResolution;
+ // target video bitrate, 0 = no preference
+ TInt iVideoBitrate;
+ // target video framerate, 0 = no preference
+ TReal iVideoFrameRate;
+
+ // audio codec
+ TVedAudioType iAudioType;
+ // target audio bitrate, 0 = no preference
+ TInt iAudioBitrate;
+ // audio channel mode
+ TVedAudioChannelMode iAudioChannelMode;
+ // audio sampling rate, 0 = no preference
+ TInt iAudioSamplingRate;
+
+ // Segment interval in picture. In H.263 baseline this means number of non-empty GOB headers (1=every GOB has a header),
+ // Default is 0 == no segments inside picture
+ // Coding standard & used profile etc. limit the value.
+ TInt iSyncIntervalInPicture;
+
+ // Target size of each coded video segment. Valid for H.264 and MPEG-4
+ // Default is 0 == no segments inside picture
+ TInt iSegmentSizeInBytes;
+
+ };
+
+
+/**
+ * Enumeration for start transition effects.
+ */
+enum TVedStartTransitionEffect
+ {
+ EVedStartTransitionEffectNone = 21001, // should always be the first one
+ EVedStartTransitionEffectFadeFromBlack,
+ EVedStartTransitionEffectFadeFromWhite,
+ EVedStartTransitionEffectLast // should always be the last one
+ };
+
+
+/**
+ * Enumeration for middle transition effects.
+ */
+enum TVedMiddleTransitionEffect
+ {
+ EVedMiddleTransitionEffectNone = 22001, // should always be the first one
+ EVedMiddleTransitionEffectDipToBlack,
+ EVedMiddleTransitionEffectDipToWhite,
+ EVedMiddleTransitionEffectCrossfade,
+ EVedMiddleTransitionEffectWipeLeftToRight,
+ EVedMiddleTransitionEffectWipeRightToLeft,
+ EVedMiddleTransitionEffectWipeTopToBottom,
+ EVedMiddleTransitionEffectWipeBottomToTop,
+ EVedMiddleTransitionEffectLast // should always be the last one
+ };
+
+
+/**
+ * Enumeration for end transition effects.
+ */
+enum TVedEndTransitionEffect
+ {
+ EVedEndTransitionEffectNone = 23001, // should always be the first one
+ EVedEndTransitionEffectFadeToBlack,
+ EVedEndTransitionEffectFadeToWhite,
+ EVedEndTransitionEffectLast // should always be the last one
+ };
+
+
+/**
+ * Enumeration for color effects.
+ */
+enum TVedColorEffect
+ {
+ EVedColorEffectNone = 31001, // should always be the first one
+ EVedColorEffectBlackAndWhite,
+ EVedColorEffectToning,
+ EVedColorEffectLast // should always be the last one
+ };
+
+
+/**
+ * Class for storing dynamic level marks.
+ */
+class TVedDynamicLevelMark
+ {
+public:
+ /** Mark time. */
+ TTimeIntervalMicroSeconds iTime;
+
+ /**
+ * Dynamic level (-63.5 - +12.7) in dB:s; one step represents +0.1 or -0.5 dB => values are -127...+127
+ */
+ TInt8 iLevel;
+
+ /**
+ * Constructs a new dynamic level mark.
+ *
+ * @param aTime time for the mark
+ * @param aLevel dynamic level (-63.5 ... +12.7) in dB:s one step = +0.1 or -0.5 dB => values can be -127...+127
+ */
+ inline TVedDynamicLevelMark(TTimeIntervalMicroSeconds aTime, TInt aLevel);
+
+ /**
+ * Constructs a new dynamic level mark from existing instance.
+ *
+ * @param aMark dynamic level mark to copy
+ */
+ inline TVedDynamicLevelMark(const TVedDynamicLevelMark& aMark);
+ };
+
+
+/**
+ * Transcode factor.
+ */
+struct TVedTranscodeFactor
+ {
+ TInt iTRes;
+ TVedVideoBitstreamMode iStreamType;
+ };
+
+
+/**
+ * Enumerates video editor engine panic codes and
+ * provides a static Panic() function.
+ *
+ */
+class TVedPanic
+ {
+public:
+ enum TVedPanicCodes
+ {
+ EInternal = 1, // internal error (that is, a in the video editor engine)
+ EDeprecated, // deprecated class or method
+ EVideoClipInfoNotReady,
+ EVideoClipInfoIllegalVideoFrameIndex,
+ EVideoClipInfoIllegalVideoFrameTime,
+ EVideoClipInfoFrameOperationAlreadyRunning,
+ EVideoClipInfoIllegalFrameResolution,
+ EVideoClipInfoNoFileAssociated,
+ EVideoClipInfoNoGeneratorAssociated,
+ EAudioClipInfoNotReady, //10
+ EMovieEmpty,
+ EMovieAddOperationAlreadyRunning,
+ EMovieIllegalStartTransitionEffect,
+ EMovieIllegalMiddleTransitionEffect,
+ EMovieIllegalEndTransitionEffect,
+ EMovieProcessingOperationAlreadyRunning,
+ EMovieObserverAlreadyRegistered,
+ EMovieObserverNotRegistered,
+ EMovieIllegalQuality,
+ EVideoClipIllegalIndex, //20
+ EVideoClipIllegalSpeed,
+ EVideoClipIllegalColorEffect,
+ EVideoClipIllegalCutInTime,
+ EVideoClipIllegalCutOutTime,
+ EVideoClipNoFileAssociated,
+ EAudioClipIllegalStartTime,
+ EAudioClipIllegalCutInTime,
+ EAudioClipIllegalCutOutTime,
+ EVideoClipGeneratorNotInserted,
+ EVideoClipGeneratorNotReady,//30
+ EVideoClipGeneratorAlreadyInserted,
+ EVideoClipGeneratorIllegalVideoFrameIndex,
+ EVideoClipGeneratorIllegalDuration,
+ EVideoClipGeneratorIllegalFrameResolution,
+ EVideoClipGeneratorIllegalVideoFrameTime,
+ EImageClipGeneratorIllegalMaxResolution,
+ EImageClipGeneratorNotReady,
+ EImageClipGeneratorFrameOperationAlreadyRunning,
+ ETitleClipGeneratorIllegalMaxResolution,
+ ETitleClipGeneratorIllegalMaxFramerate,//40
+ ETitleClipGeneratorFrameOperationAlreadyRunning,
+ EIllegalDynamicLevelMark,
+ EIllegalDynamicLevelMarkIndex,
+ EVideoClipGeneratorNotOveray,
+ EAnimationClipGeneratorNotReady
+ };
+
+public:
+ inline static void Panic(TInt aPanic);
+ };
+
+
+#include "VedCommon.inl"
+
+#endif // __VEDCOMMON_H__
+