--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoeditorengine/vedengine/inc/vedcodecchecker.h Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,173 @@
+/*
+* 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:
+* Header for vedcodecchecker.cpp.
+*
+*/
+
+
+#ifndef __VEDCODECCHECKER_H__
+#define __VEDCODECCHECKER_H__
+
+
+// FORWARD DECLARATIONS
+class CVedVideoClip;
+
+// CONSTANTS
+//WVGA task
+//const TInt KNumResolutions = 6;
+//const TInt KNumCodecs = 14;
+const TInt KNumResolutions = 7;
+const TInt KNumCodecs = 18;
+
+enum TResolution
+ {
+ EResolutionSubQCIF = 0,
+ EResolutionQCIF,
+ EResolutionCIF,
+ EResolutionQVGA,
+ EResolutionVGA16By9,
+ EResolutionVGA,
+ EResolutionWVGA,
+ EResolutionUnsupported
+ };
+
+enum TCodec
+ {
+ ECodecH263BPLevel10 = 0,
+ ECodecH263BPLevel45,
+ ECodecMPEG4VSPLevel0,
+ ECodecMPEG4VSPLevel0B,
+ ECodecMPEG4VSPLevel1,
+ ECodecMPEG4VSPLevel2,
+ ECodecMPEG4VSPLevel3,
+ ECodecMPEG4VSPLevel4,
+ ECodecAVCBPLevel1,
+ ECodecAVCBPLevel1B,
+ ECodecAVCBPLevel1_1,
+ ECodecAVCBPLevel1_2,
+ ECodecAVCBPLevel1_3,
+ ECodecAVCBPLevel2,
+ //WVGA task
+ ECodecAVCBPLevel2_1,
+ ECodecAVCBPLevel2_2,
+ ECodecAVCBPLevel3,
+ ECodecAVCBPLevel3_1,
+ ECodecUnsupported
+ };
+
+class CVedCodecChecker : public CBase
+ {
+
+public: // New functions
+
+ /* Constructors. */
+ static CVedCodecChecker* NewL();
+ static CVedCodecChecker* NewLC();
+
+ /* Destructor. */
+ virtual ~CVedCodecChecker();
+
+ /**
+ * Returns whether the given input clip is supported,
+ * i.e. if it can be decoded or not
+ *
+ * @param aClip Video clip
+ * @return TBool Is supported ?
+ */
+ TBool IsSupportedInputClipL(CVedVideoClip *aClip);
+
+ /**
+ * Returns whether the given output format is supported,
+ * i.e. if it can be encoded or not
+ *
+ * @param aMimeType Codec MIME type
+ * @param aResolution Desired resolution
+ * @return TBool Is supported ?
+ */
+ TBool IsSupportedOutputFormatL(const TPtrC8& aMimeType, TSize aResolution);
+
+private: // Private methods
+
+ /**
+ * By default Symbian OS constructor is private.
+ */
+ void ConstructL();
+
+ /**
+ * C++ default constructor
+ */
+ CVedCodecChecker();
+
+ /**
+ * Determines supported input formats using CTRTranscoder
+ */
+ void GetSupportedInputFormatsL();
+
+ /**
+ * Determines supported output formats using CTRTranscoder
+ */
+ void GetSupportedOutputFormatsL();
+
+ /**
+ * Maps resolution from TSize to TResolution
+ *
+ * @param aResolution Resolution to map
+ * @return TResolution
+ */
+ TResolution MapResolution(TSize aResolution);
+
+ /**
+ * Maps profile-level-id to TCodec
+ *
+ * @param aProfileLevelId id to map
+ * @return TCodec Codec
+ */
+ TCodec MapProfileLevelId(TInt aProfileLevelId);
+
+ /**
+ * Parse codec MIME type
+ *
+ * @param aMimeType MIME to parse
+ * @param aResolution resolution to be used
+ * @return TCodec Codec
+ */
+ TCodec ParseMimeType(const TPtrC8& aMimeType, TSize aResolution);
+
+ /**
+ * Maps AVC level to TCodec
+ *
+ * @param aLevel Level to map
+ * @return TCodec Codec
+ */
+ TCodec MapAVCLevel(TInt aLevel);
+
+private: // Data
+
+ // table of supported input resolutions for each codec
+ TBool* iInputCodecsAndResolutions[KNumCodecs];
+
+ // table of supported output resolutions for each codec
+ TBool* iOutputCodecsAndResolutions[KNumCodecs];
+
+ // have output formats been checked ??
+ TBool iOutputFormatsChecked;
+
+};
+
+#endif // __VEDCODECCHECKER_H__
+
+
+// End of file