diff -r 000000000000 -r 951a5db380a0 videoeditorengine/h263decoder/inc/vde.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoeditorengine/h263decoder/inc/vde.h Fri Jan 29 14:08:33 2010 +0200 @@ -0,0 +1,160 @@ +/* +* 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: +* A header file for internal usage of the services provided by +* the Video Decoder Engine. +* +*/ + + +#ifndef _VDE_H_ +#define _VDE_H_ + + +/* + * Includes + */ + +#include "vdefrt.h" +#include "vdeims.h" + +#include "biblin.h" +#include "vdc263.h" +#include "h263dapi.h" + + +/* + * Defines + */ + +/* Aliased return values from h263dext.h. + (These values may also be exported outside the decoder.) */ + +#define VDE_OK_BUT_NOT_CODED \ + H263D_OK_BUT_NOT_CODED +#define VDE_OK_BUT_FRAME_USELESS \ + H263D_OK_BUT_FRAME_USELESS +#define VDE_OK_EOS H263D_OK_EOS +#define VDE_OK H263D_OK +#define VDE_ERROR H263D_ERROR +#define VDE_ERROR_HALTED H263D_ERROR_HALTED +#define VDE_ERROR_NO_INTRA H263D_ERROR_NO_INTRA + +/* Internal return values. + See h263dext.h that they do not conflict with the exported ones. */ +#define VDE_OK_NOT_AVAILABLE 10 /* a requested item is not available, + see vdeFrtGetItem */ +#define VDE_OK_SEGMENTATION_CHANGED 11 + /* image segmentation in the Reference + Picture Selection mode has changed, + see rsbGetLatest */ + +/* VDE states */ +#define VDE_STATE_BEGIN 0 /* no frame data decoded */ +#define VDE_STATE_MIDDLE 1 /* decoding */ +#define VDE_STATE_EOS 2 /* End-of-Stream reached */ +#define VDE_STATE_HALTED 3 /* fatal error, halted */ +#define VDE_STATE_RESYNC 4 /* Resyncing to INTRA frame */ + +/* Temporal scalability levels, aliased from h263dext.h */ +#define VDE_LEVEL_ALL_FRAMES H263D_LEVEL_ALL_FRAMES +#define VDE_LEVEL_INTRA_FRAMES H263D_LEVEL_INTRA_FRAMES +#define VDE_LEVEL_ANNEX_N_LEVEL_0 (VDE_LEVEL_INTRA_FRAMES + 1) + + +/* + * Macros + */ + +/* Memory allocation wrappers */ + +#define vdeMalloc malloc +#define vdeCalloc calloc +#define vdeRealloc realloc +#define vdeDealloc free + +/* Assertion wrapper */ +#ifndef vdeAssert + #define vdeAssert(exp) assert(exp); +#endif + + +/* + * Structures and typedefs + */ + +/* {{-output"vdeInstance_t_info.txt" -ignore"*" -noCR}} + vdeInstance_t holds the instance data for a Video Decoder Engine instance. + This structure is used to keep track of the internal state of the VDE + instance. + {{-output"vdeInstance_t_info.txt"}} */ + + /* {{-output"vdeInstance_t.txt"}} */ + typedef struct { + vdcHInstance_t vdcHInstance; /* Video Decoder Core instance handle */ + + bibBuffer_t *inBuffer; /* Bit Buffer instance data */ + + + bibBuffer_t *outBuffer; /* output stream Bit Buffer instance data */ + bibBufferEdit_t *bufEdit; + int iColorEffect; + int iColorToneU; /* U color tone value to be used */ + int iColorToneV; /* V color tone value to be used */ + int iRefQp; /* first frame QP for color toning */ + TBool iGetDecodedFrame; + + + vdeIms_t imageStore; /* Image Store instance data */ + + vdeFrtStore_t renStore; /* Frame type specific store for renderer + handles */ + + vdeFrtStore_t startCallbackStore; /* Frame type specific store for + "start frame decoding" callbacks */ + + vdeFrtStore_t endCallbackStore; /* Frame type specific store for + "ended frame decoding" callbacks */ + + int state; /* current state of VDE, see + VDE_STATE_XXX definitions for + possible values */ + + u_int32 creationTime; /* the time returned by gtGetTime + when the instance was created */ + + u_char fMPEG4; /* this flag is used to signal the stream type + "0" H.263, "1" MPEG-4. + Set by calling vdeDetermineStreamType before + the first frame of the stream */ + + int lumWidth; /* Expected size of the incoming */ + int lumHeight; /* luminance pictures */ + + int requestedScalabilityLevel; /* Requested temporal scalability + level to decode. + See vdeSetTemporalScalability + for further details. */ + + int fPrevFrameDecoded; /* 0 if the previous frame was not + decoded because it did not belong + to requested temporal scalability + level, + 1 otherwise */ + } vdeInstance_t; + /* {{-output"vdeInstance_t.txt"}} */ + +#endif +// End of File