camcordermmfplugin/mediarecorder/Inc/CCMRSupportedCodecs.h
changeset 0 9b3e960ffc8a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camcordermmfplugin/mediarecorder/Inc/CCMRSupportedCodecs.h	Thu Dec 17 08:51:24 2009 +0200
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:
+*
+* Description:  Four CC and Mime types for (supported) video and audio codecs
+*
+*/
+
+
+
+#ifndef CCMRSUPPORTEDCODECS_H
+#define CCMRSUPPORTEDCODECS_H
+
+#include <mmf/common/mmffourcc.h>
+
+// FourCC types for video and audio
+
+// These can't be TFourCC objects since TFourCC objects can't be constructed in compile time
+// The ID is internal representation of TFourCC, and computed like follows:
+// iFourCC =(aChar4<<24)+(aChar3<<16)+(aChar2<<8)+aChar1
+// The users should construct a TFourCC object using these numbers
+
+// Four CC for narrowband AMR (' ','A','M','R'), taken from Nokia MMF audio plugin source code
+const TInt32 KCMRFourCCIdAMRNB = KMMFFourCCCodeAMR;
+// Four CC for MPEG-4 AAC (' ','A','A','C')
+const TInt32 KCMRFourCCIdMPEG4AAC = KMMFFourCCCodeAAC;
+
+
+// Mime types for video
+
+// H.263 with profiles & levels. Exact level can be added after this string has been copied to destination
+_LIT8(KCMRMimeTypeH263, "video/H263-2000");
+// Baseline Profile
+_LIT8(KCMRMimeTypeH263BaselineProfile, "video/H263-2000; profile=0");
+// Profile 3; Version 2 Interactive and Streaming Wireless Profile
+_LIT8(KCMRMimeTypeH263Profile3, "video/H263-2000; profile=3");
+
+// MPEG-4 profile & level ID added after ; e.g. "video/mp4v-es; profile-level-id=8"
+_LIT8(KCMRMimeTypeMPEG4V, "video/mp4v-es");
+_LIT8(KCMRMimeTypeMPEG4VSP, "video/mp4v-es; profile-level-id=");
+_LIT8(KCMRMimeTypeMPEG4VSPL0, "video/mp4v-es; profile-level-id=8");
+_LIT8(KCMRMimeTypeMPEG4VSPL0B, "video/mp4v-es; profile-level-id=9");
+_LIT8(KCMRMimeTypeMPEG4VSPL1, "video/mp4v-es; profile-level-id=1");
+_LIT8(KCMRMimeTypeMPEG4VSPL2, "video/mp4v-es; profile-level-id=2");
+_LIT8(KCMRMimeTypeMPEG4VSPL3, "video/mp4v-es; profile-level-id=3");
+_LIT8(KCMRMimeTypeMPEG4VSPL4A, "video/mp4v-es; profile-level-id=4");
+_LIT8(KCMRMimeTypeMPEG4VSPL5, "video/mp4v-es; profile-level-id=5");
+_LIT8(KCMRMimeTypeMPEG4VSPL6, "video/mp4v-es; profile-level-id=6");
+
+// H.264 AVC 
+_LIT8(KCMRMimeTypeH264AVC, "video/H264");
+_LIT8(KCMRMimeTypeH264AVCProfileId, "video/H264; profile-level-id=");
+
+// H.264 AVC Baseline profile, levels 1 - 4
+_LIT8(KCMRMimeTypeH264AVCBPL10, "video/H264; profile-level-id=42800A");	// Level 1
+_LIT8(KCMRMimeTypeH264AVCBPL10b, "video/H264; profile-level-id=42900B");// Level 1b
+_LIT8(KCMRMimeTypeH264AVCBPL11, "video/H264; profile-level-id=42800B");	// Level 1.1
+_LIT8(KCMRMimeTypeH264AVCBPL12, "video/H264; profile-level-id=42800C");	// Level 1.2
+_LIT8(KCMRMimeTypeH264AVCBPL13, "video/H264; profile-level-id=42800D");	// Level 1.3
+_LIT8(KCMRMimeTypeH264AVCBPL20, "video/H264; profile-level-id=428014");	// Level 2
+_LIT8(KCMRMimeTypeH264AVCBPL21, "video/H264; profile-level-id=428015"); // Level 2.1
+_LIT8(KCMRMimeTypeH264AVCBPL22, "video/H264; profile-level-id=428016"); // Level 2.2
+_LIT8(KCMRMimeTypeH264AVCBPL30, "video/H264; profile-level-id=42801E"); // Level 3
+_LIT8(KCMRMimeTypeH264AVCBPL31, "video/H264; profile-level-id=42801F"); // Level 3.1
+_LIT8(KCMRMimeTypeH264AVCBPL32, "video/H264; profile-level-id=428020"); // Level 3.2
+_LIT8(KCMRMimeTypeH264AVCBPL40, "video/H264; profile-level-id=428028"); // Level 4
+
+// H.264 AVC Main profile, levels 1 - 4
+_LIT8(KCMRMimeTypeH264AVCMPL10, "video/H264; profile-level-id=4D400A");	// Level 1
+_LIT8(KCMRMimeTypeH264AVCMPL10b, "video/H264; profile-level-id=4D500B");// Level 1b
+_LIT8(KCMRMimeTypeH264AVCMPL11, "video/H264; profile-level-id=4D400B");	// Level 1.1
+_LIT8(KCMRMimeTypeH264AVCMPL12, "video/H264; profile-level-id=4D400C");	// Level 1.2
+_LIT8(KCMRMimeTypeH264AVCMPL13, "video/H264; profile-level-id=4D400D");	// Level 1.3
+_LIT8(KCMRMimeTypeH264AVCMPL20, "video/H264; profile-level-id=4D4014");	// Level 2
+_LIT8(KCMRMimeTypeH264AVCMPL21, "video/H264; profile-level-id=4D4015"); // Level 2.1
+_LIT8(KCMRMimeTypeH264AVCMPL22, "video/H264; profile-level-id=4D4016"); // Level 2.2
+_LIT8(KCMRMimeTypeH264AVCMPL30, "video/H264; profile-level-id=4D401E"); // Level 3
+_LIT8(KCMRMimeTypeH264AVCMPL31, "video/H264; profile-level-id=4D401F"); // Level 3.1
+_LIT8(KCMRMimeTypeH264AVCMPL32, "video/H264; profile-level-id=4D4020"); // Level 3.2
+_LIT8(KCMRMimeTypeH264AVCMPL40, "video/H264; profile-level-id=4D4028"); // Level 4
+
+// H.264 AVC High profile, levels 1 - 4
+_LIT8(KCMRMimeTypeH264AVCHPL10, "video/H264; profile-level-id=64400A");	// Level 1
+_LIT8(KCMRMimeTypeH264AVCHPL10b, "video/H264; profile-level-id=644009");// Level 1b
+_LIT8(KCMRMimeTypeH264AVCHPL11, "video/H264; profile-level-id=64400B");	// Level 1.1
+_LIT8(KCMRMimeTypeH264AVCHPL12, "video/H264; profile-level-id=64400C");	// Level 1.2
+_LIT8(KCMRMimeTypeH264AVCHPL13, "video/H264; profile-level-id=64400D");	// Level 1.3
+_LIT8(KCMRMimeTypeH264AVCHPL20, "video/H264; profile-level-id=644014");	// Level 2
+_LIT8(KCMRMimeTypeH264AVCHPL21, "video/H264; profile-level-id=644015"); // Level 2.1
+_LIT8(KCMRMimeTypeH264AVCHPL22, "video/H264; profile-level-id=644016"); // Level 2.2
+_LIT8(KCMRMimeTypeH264AVCHPL30, "video/H264; profile-level-id=64401E"); // Level 3
+_LIT8(KCMRMimeTypeH264AVCHPL31, "video/H264; profile-level-id=64401F"); // Level 3.1
+_LIT8(KCMRMimeTypeH264AVCHPL32, "video/H264; profile-level-id=644020"); // Level 3.2
+_LIT8(KCMRMimeTypeH264AVCHPL40, "video/H264; profile-level-id=644028"); // Level 4
+
+#endif // CCMRSUPPORTEDCODECS_H
+
+// End of file