--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mp4sp_enc/arimp4spencwrapper/export_hdr/arivideoenccommon.h Fri Jul 23 16:58:44 2010 +0100
@@ -0,0 +1,230 @@
+/*
+* 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:
+* Defines the structures shared by HwDevice and wrapper
+*
+*/
+
+#ifndef ARIVIDEOENCCOMMON_H
+#define ARIVIDEOENCCOMMON_H
+
+//Includes
+#include <E32def.h>
+#include <Devvideobase.h>
+#include <Mpeg4Visual.h>
+
+#define MAX_SCALABILITY_LAYERS 1
+
+enum TSetCommands
+{
+ CONTROL_CMD_SET_BIT_RATE = 2051,
+ CONTROL_CMD_SET_FRAME_RATE,
+ CONTROL_CMD_SET_FORCED_I_FRAME,
+ CONTROL_CMD_SET_GOVLENGTH,
+ CONTROL_CMD_SET_CHANNEL_PACKET_LOSS_RATE,
+ CONTROL_CMD_SET_CHANNEL_BIT_ERROR_RATE,
+ CONTROL_CMD_SET_SEGMENT_TARGET_SIZE,
+ CONTROL_CMD_SET_RATE_CONTROL_OPTIONS,
+ CONTROL_CMD_SET_COMMIT_OPTIONS,
+ CONTROL_CMD_GET_CONFIG_HEADER,
+ CONTROL_CMD_SET_COMPLEXITY_LEVEL,
+ CONTROL_CMD_SET_SLICELOSS,
+ CONTROL_CMD_SET_PACKETSIZE
+};
+
+enum TGetCommands
+{
+
+ CONTROL_CMD_GET_MAXBUFFERLENGTH = 3051,
+ CONTROL_CMD_GET_NUMOFPICTSKIPPED,
+ CONTROL_CMD_GET_MAXNUMOFPACKETS,
+ CONTROL_CMD_GET_NUMOFPACKETS,
+ CONTROL_CMD_GET_PACKETBOUNDARYDATA,
+ CONTROL_CMD_GET_PACKETSIZE,
+ CONTROL_CMD_GET_CONFIGDATA,
+ CONTROL_CMD_GET_CONFIGDATALENGTH
+};
+
+
+
+/*
+ * Enumeration covering SetInputFormatL, SetOutputFormatL, SetInputDevice, SetNumBitrateLayersL,
+ * SetScalabilityLayerTypeL, SetGlobalReferenceOptions, SetBufferOptionsL, SetMinRandomAccessRate
+ * SetSourceMemoryL of Hw Device. All these seven methods can be called only before
+ * Initialize.
+*/
+
+enum TOutputFormat
+ {
+ EH263 = 0x00000000,
+ EMpeg4 = 0x00000001,
+ };
+
+
+enum TPanicCodes
+ {
+ EPanicArgument=1,
+ EPanicInitializationPreCondViolation,
+ EPanicNotSupported,
+ EPanicNotPaused,
+ EPanicNotFreezed,
+ EPanicInvalidState,
+ EPanicAlreadyStopped
+ };
+
+enum TEncBeforeInitialize
+ {
+ EEncBeforeInitNone = 0x00000000,
+ EEncInputFormat = 0x00000001,
+ EEncOutputFormat = 0x00000002,
+ EEncInputDevice = 0x00000004,
+ EEncNumBitrateLayers = 0x00000008,
+ EEncScalabilityLayer = 0x00000010,
+ EEncGlobalRefOptions = 0x00000020,
+ EEncBufferOptions = 0x00000040,
+ EEncRandomAccessRate = 0x00000080,
+ EEncSourceMemory = 0x00000100,
+ EEncInpBufferOptions = 0x00000200,
+ EEncErrorProtectionLevelFEC = 0x00000400,
+ EEncSegmentTargetSize = 0x00000800,
+ EEncCodingStandardSpecificOptions = 0x00001000,
+ EEncOutputRectSize = 0x00002000,
+ EEncErrorsExpected = 0x00004000,
+ EEncSourceCamera = 0x00008000,
+ EEncComplexityLevel = 0x00010000,
+ EEncLayerRefOptions = 0x00020000,
+ };
+
+class TH264EncLayerReferenceOptions
+{
+public:
+ TUint iMaxReferencePictures;
+ TUint iMaxPictureOrderDelay;
+
+ TH264EncLayerReferenceOptions () :
+ iMaxReferencePictures (1),
+ iMaxPictureOrderDelay (0)
+ {
+ }
+};
+
+class TMpeg4H263EncoderInitParams
+ {
+public:
+ // Specifies which parameters are being sent in the Initialize method
+
+ TUint32 iBeforeInitialize;
+ TUint32 iAfterInitialize;
+
+ TSize iPictureSize;
+ TInt iVopRate;
+ TInt iNumOfGOBHdrs;
+ TInt iGOVLength;
+ TInt iSceneCutDetection;
+ TInt iBandwidthAdaptation;
+ TInt iPreprocessing;
+ TInt iRCModel;
+ TInt iSearchRange;
+ TUint32 iTimerResolution;
+ TInt iPacketmode;
+ TInt iPacketSize;
+ TInt iReversibleVLC;
+ TInt iDataPartitioning;
+ TInt iMAPS;
+
+ // For SetOutputFormatL
+ TOutputFormat iOutputFormat;
+ TVideoDataUnitType iDataUnitType;
+ TVideoDataUnitEncapsulation iDataEncapsulation;
+ TBool iSegmentationAllowed;
+
+ // For SetSourceMemoryL
+ TReal iMaxPictureRate;
+ TBool iConstantPictureRate;
+ TBool iProcessRealtime;
+
+ // For SetRamdomAccessRate
+ TReal iRandomAccessRate;
+
+ // For SetErrorsExpected
+ TBool iBitErrors;
+ TBool iPacketLosses;
+
+ // For SetMinRandomAccessRate
+ TInt iLevel;
+
+ TUint iBitRate;
+ TReal iTargetPictureRate;
+ // complexity level
+ TUint iComplexityLevel;
+
+ TUncompressedVideoFormat iInputFormat;
+ TInt32 iAspectRatio;
+ TUint iNumInputBuffers;
+ TSize iInputSize;
+ // For SetNumBitrateLayersL
+ TUint iNumBitRateLayers;
+
+ // For SetScalabilityLayerTypeL
+ TUint iLayer;
+ TScalabilityType iScalabilityType;
+ TH264EncLayerReferenceOptions iLayerReferenceOptions[MAX_SCALABILITY_LAYERS];
+
+ // For SetBufferOptionsL
+ TUint iMaxPreEncoderBufferPictures;
+ THrdVbvSpecification iHrdVbvSpec;
+ T3gppHrdVbvParams iHrdVbvParams;
+ TUint iMaxOutputBufferSize;
+ TUint iMaxCodedPictureSize;
+ TUint iMaxCodedSegmentSize;
+ TUint iMinNumOutputBuffers;
+ TMPEG4VisualMode iCodingStandardSpecificOptions;
+ TRect iOutputRect;
+
+ };
+
+/*
+ * slice loss structure
+*/
+class TMPEG4H263EncSliceLoss
+{
+public:
+ TUint iFirstMacroblock;
+ TUint iNumMacroblocks;
+
+ TMPEG4H263EncSliceLoss() :
+ iFirstMacroblock (0),
+ iNumMacroblocks (0)
+ {
+ }
+};
+
+/*
+ * Parameters used by the hw device which are sent to codec
+*/
+
+
+
+
+class TPictureCountersInfo
+ {
+public:
+ TUint iPicturesSkippedBufferOverflow;
+ TUint iPicturesSkippedProcPower;
+ TUint iPicturesSkippedRateControl;
+ TUint iPicturesProcessed;
+ TUint iInputPictures;
+ };
+
+#endif //ARIVIDEOENCCOMMON_H