--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoeditorengine/h263decoder/inc/vdeimb.h Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,139 @@
+/*
+* 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 the Video Decoder Engine Image Buffer abstract
+* data type.
+*
+*/
+
+
+#ifndef _VDEIMB_H_
+#define _VDEIMB_H_
+
+
+
+/*
+ * Includes
+ */
+
+#include "renapi.h"
+#include "rendri.h"
+
+
+/*
+ * Defines
+ */
+
+/* Displaying status */
+#define VDEIMB_NO_DISPLAYING 1
+#define VDEIMB_WAITING 2
+#define VDEIMB_DISPLAYED 4
+
+/* Full-picture freeze status,
+ see vdeImb_t for description of the definitions */
+#define VDEIMB_FPF_REQUEST 2
+#define VDEIMB_FPF_RELEASE 1
+#define VDEIMB_FPF_NOT_SPECIFIED 0
+
+
+/*
+ * Structures and typedefs
+ */
+
+/* {{-output"vdeImb_t_info.txt" -ignore"*" -noCR}}
+ vdeImb_t defines the structure of a single image buffer which is capable
+ of storing one YUV 4:2:0 image and a number of paramaters as
+ side-information. The YUV image as well as the YUV to RGB conversion and
+ displaying related parameters are kept in a renDrawItem_t structure.
+ Decoder related parameters are stored in the vdeImb_t itself.
+ One may directly refer to the member variables of the vdeImb_t structure.
+ However, one should use the functions and macros in the Renderer Draw Item
+ Interface for accessing the contents of the drawItem member of vdeImb_t.
+ {{-output"vdeImb_t_info.txt"}} */
+
+/* {{-output"vdeImb_t.txt"}} */
+typedef struct {
+ renDrawItem_t *drawItem; /* renderer draw item which actually contains
+ the frame memory (and some parameters) */
+
+ int fReferenced; /* non-zero if the image buffer is going to be
+ used as a reference frame. Otherwise, zero. */
+
+ int tr; /* the TR field of H.263 which is associated with
+ the image buffer */
+
+
+ int trRef; /* Referenced for a TR prediction,
+ 0 if the frame is a normal picture referenced
+ once at maximum (in the next picture),
+ 1 if the frame is referenced multiple times
+ in the future frames.
+ This information is used to update reference
+ picture data structures. It is neede at least
+ in streaming applications. */
+
+ int *yQuantParams; /* luminance quantizer parameter for each
+ macroblock in scan-order */
+
+ int *uvQuantParams; /* chrominance quantizer parameter for each
+ macroblock in scan-order */
+
+} vdeImb_t;
+/* {{-output"vdeImb_t.txt"}} */
+
+
+/*
+ * Function prototypes
+ */
+
+vdeImb_t *vdeImbAlloc(int width, int height, int fYuvNeeded);
+
+int vdeImbCopyParameters(vdeImb_t *dstImb, const vdeImb_t *srcImb);
+
+void vdeImbDealloc(vdeImb_t *imb);
+
+
+/*
+ * Macros
+ */
+
+/* {{-output"vdeImbYUV.txt"}} */
+/*
+ * vdeImbYUV
+ *
+ * Parameters:
+ * vdeImb_t *pimb a pointer to image buffer
+ * u_char **ppy, **ppu, **ppv used to return the pointers to the top-left
+ * corner of Y, U and V image buffers
+ * respectively
+ * int *pWidth, *pHeight used to return the width and height of
+ * the luminance image in pixels
+ *
+ * Function:
+ * This function returns the Y, U and V pointers to the passed image buffer
+ * as well as the dimensions of the luminance frame of the image buffer.
+ *
+ * Returns:
+ * REN_OK if the function was successful
+ * REN_ERROR indicating a general error
+ *
+ */
+
+#define vdeImbYUV(pimb, ppy, ppu, ppv, pWidth, pHeight) \
+ renDriYUV((pimb)->drawItem, (ppy), (ppu), (ppv), (pWidth), (pHeight))
+/* {{-output"vdeImbYUV.txt"}} */
+
+#endif
+// End of File