diff -r 000000000000 -r bb31fbe78861 mp4sp_enc/arimp4spenchwdevice/inc/arimp4sphwdeviceconstants.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mp4sp_enc/arimp4spenchwdevice/inc/arimp4sphwdeviceconstants.h Fri Jul 23 16:58:44 2010 +0100 @@ -0,0 +1,173 @@ +/* +* Copyright (c) 2009 Aricent and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Aricent - initial contribution. +* +* Contributors: +* +* Description: +* This file defines the constants used in Mpeg4SP/H263 encoder plugin. +* +*/ + + +#ifndef ARIMP4SPENCHWDEVICECONSTANTS_H +#define ARIMP4SPENCHWDEVICECONSTANTS_H + +// Compressed Mpeg4 Video Formats Supported +_LIT8(KMPEG4MimeType, "video/mp4v-es"); +_LIT8(KMPEG4VTMimeType, "video/MP4V-ES"); +_LIT8(KMPEG4MimeTypeLevel0, "video/mp4v-es; profile-level-id=8"); +_LIT8(KMPEG4MimeTypeLevel0B, "video/mp4v-es; profile-level-id=9"); +_LIT8(KMPEG4MimeTypeLevel1, "video/mp4v-es; profile-level-id=1"); +_LIT8(KMPEG4MimeTypeLevel2, "video/mp4v-es; profile-level-id=2"); +_LIT8(KMPEG4MimeTypeLevel3, "video/mp4v-es; profile-level-id=3"); +_LIT8(KMPEG4MimeTypeLevel4, "video/mp4v-es; profile-level-id=4"); +_LIT8(KMPEG4MimeTypeLevel5, "video/mp4v-es; profile-level-id=5"); +_LIT8(KMPEG4MimeTypeLevel6, "video/mp4v-es; profile-level-id=6"); +_LIT8(KMPEG4MimeTypeLevel7, "video/mp4v-es; profile-level-id=7"); + + +// Compressed H263 Video Formats Supported +_LIT8(KH263MimeType, "video/H263-2000"); +_LIT8(KH263MimeTypeProfile0, "video/H263-2000; profile=0"); +_LIT8(KH263MimeTypeLevel10, "video/H263-2000; profile=0; level=10"); +_LIT8(KH263MimeTypeLevel20, "video/H263-2000; profile=0; level=20"); +_LIT8(KH263MimeTypeLevel30, "video/H263-2000; profile=0; level=30"); +_LIT8(KH263MimeTypeLevel40, "video/H263-2000; profile=0; level=40"); +_LIT8(KH263MimeTypeLevel45, "video/H263-2000; profile=0; level=45"); + + +// Mpeg4 and H263 Levels +#define KMPEG4_LEVEL_UNKNOWN 200 +#define KMPEG4_LEVEL_0 0 +#define KMPEG4_LEVEL_0B 10 +#define KMPEG4_LEVEL_1 1 +#define KMPEG4_LEVEL_2 2 +#define KMPEG4_LEVEL_3 3 +#define KMPEG4_LEVEL_4 4 +#define KMPEG4_LEVEL_5 5 +#define KMPEG4_LEVEL_6 6 +#define KMPEG4_LEVEL_7 7 + +#define KH263_LEVEL_UNKNOWN 300 +#define KH263_LEVEL_10 10 +#define KH263_LEVEL_20 20 +#define KH263_LEVEL_30 30 +#define KH263_LEVEL_40 40 +#define KH263_LEVEL_45 45 + + +_LIT(KMPEG4H263EncManufacturer,"Aricent"); +_LIT(KMPEG4H263EncIdentifier, "ARM MPEG4 H263 Video Encoder Hw Device"); + +// 1 SPS and 1 PPS +const TInt KWordLength = 4; +const TInt KDoubleWordLength = 8; + + +const TInt KMPEG4H263ENCIMPL_MAJOR_VERSION = 1; +const TInt KMPEG4H263ENCIMPL_MINOR_VERSION = 0; +const TInt KMPEG4H263ENCIMPL_BUILD_VERSION = 0; + +// Size - width,height related + +const TInt KMPEG4H263ENCIMPL_CIF_WIDTH = 352; +const TInt KMPEG4H263ENCIMPL_CIF_HEIGHT = 288; + +const TInt KMPEG4H263ENCIMPL_QCIF_WIDTH = 176; +const TInt KMPEG4H263ENCIMPL_QCIF_HEIGHT = 144; + +const TInt KMPEG4H263ENCIMPL_SQCIF_WIDTH = 128; +const TInt KMPEG4H263ENCIMPL_SQCIF_HEIGHT = 96; + +const TInt KMPEG4H263ENCIMPL_QVGA_WIDTH = 320; +const TInt KMPEG4H263ENCIMPL_QVGA_HEIGHT = 240; + +const TInt KMPEG4H263ENCIMPL_VGA_WIDTH = 640; +const TInt KMPEG4H263ENCIMPL_VGA_HEIGHT = 480; + +const TInt KMPEG4H263ENCIMPL_720P_WIDTH = 1280; +const TInt KMPEG4H263ENCIMPL_720P_HEIGHT = 720; + +//Level for H263 +const TInt KH263ENCIMPL_LEVEL10 = 10; +const TInt KH263ENCIMPL_LEVEL20 = 20; +const TInt KH263ENCIMPL_LEVEL30 = 30; +const TInt KH263ENCIMPL_LEVEL40 = 40; +const TInt KH263ENCIMPL_LEVEL45 = 45; + +//Level for MPEG4 +const TInt KMPEG4ENCIMPL_LEVEL_0 = 0; +const TInt KMPEG4ENCIMPL_LEVEL_1 = 1; +const TInt KMPEG4ENCIMPL_LEVEL_2 = 2; +const TInt KMPEG4ENCIMPL_LEVEL_3 = 3; +const TInt KMPEG4ENCIMPL_LEVEL_4A = 4; +const TInt KMPEG4ENCIMPL_LEVEL_5 = 5; +const TInt KMPEG4ENCIMPL_LEVEL_6 = 6; +const TInt KMPEG4ENCIMPL_LEVEL_7 = 7; +const TInt KMPEG4ENCIMPL_LEVEL_0B = 10; + +// Bitrate related (bits per second) for H263 +const TInt KH263ENCIMPL_DEFAULT_BITRATE = 64000; +const TInt KH263ENCIMPL_BITRATE_LEVEL_10 = 64000; +const TInt KH263ENCIMPL_BITRATE_LEVEL_20 = 128000; +const TInt KH263ENCIMPL_BITRATE_LEVEL_30 = 384000; +const TInt KH263ENCIMPL_BITRATE_LEVEL_40 = 2048000; +const TInt KH263ENCIMPL_BITRATE_LEVEL_45 = 128000; + +// Bitrate (bits per second) for MPEG4 +const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_0 = 64000; +const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_1 = 64000; +const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_2 = 128000; +const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_3 = 384000; +const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_4A = 4000000; +const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_5 = 8000000; +const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_6 = 12000000; +const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_7 = 38400000; +const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_0B = 128000; + +// Level related mapping +const TInt KH263ENCIMPL_LEVEL_UNKNOWN = 0; + +// o/p buffer related +const TInt KMPEG4H263ENCIMPL_MAXNUM_OUTPUTBUFFERS = 2; +const TInt KMPEG4H263ENCIMPL_MAXNUM_TEMPOUTPUTBUFFERS = 2; +const TInt KMPEG4H263ENCIMPL_MAXNUM_SEGMENTBUFFERS = 30; +const TInt KMPEG4H263ENCIMPL_FACTOR_FOR_OUTPUTBUFFERSIZE_IN_PACKETMODE = 2; + +// o/p buffer size related +const TInt KMPEG4H263ENCIMPL_DEFAULT_SEGMENTSIZE = 256; +const TInt KMPEG4H263ENCIMPL_MIN_SEGMENTSIZE = 192; +const TInt KMPEG4H263ENCIMPL_MAX_SEGMENTSIZE = 300; + +// Max coded picture size in case of Level 1b +const TInt KH263ENCIMPL_LEVEL1b_MAXCPBSIZE = 39375; + +// Max coded picture size in case of Level 1.1 +const TInt KH263ENCIMPL_LEVEL11_MAXCPBSIZE = 56250; + +// picture rate related +const TReal KMPEG4H263ENCIMPL_MAX_PICTURERATE = 30.0; +const TReal KMPEG4H263ENCIMPL_DEFAULT_PICTURERATE = 15.0; + +const TInt KMPEG4H263ENCIMPL_NUM_COMPLEXITYLEVELS = 4; +const TInt KMPEG4H263ENCIMPL_MAXNUM_REFERENCEPICTURES = 1; + +// Default random access rate- 1 per 3 seconds i.e.1 after 45 frames at 15 fps +const TReal KMPEG4H263ENCIMPL_DEFAULT_RANDOMACCESSRATE = 0.3333333; + +const TInt KMPEG4SUPPMIMEARRAYMAXINDEXVALUE = 10; +const TInt KH263SUPPMIMEARRAYMAXINDEXVALUE = 17; + +const TUint KMaxSupportedBitRate = 38400000; + +const TUint KDefaultTimerResolution = 30000; + +#endif //ARIMP4SPENCHWDEVICECONSTANTS_H