videoeditorengine/h263decoder/inc/vde.h
changeset 0 951a5db380a0
--- /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