videoeditorengine/h263decoder/inc/rendri.h
changeset 0 951a5db380a0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoeditorengine/h263decoder/inc/rendri.h	Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,163 @@
+/*
+* 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 draw item abstract data type.
+*
+*/
+
+
+#ifndef _RENDRI_H_
+#define _RENDRI_H_
+
+
+/*
+ * Includes
+ */
+
+#include "renapi.h"
+
+
+/*
+ * Macros
+ */
+
+/* {{-output"renDriMacros.txt"}} */
+/*
+ * The following macros return a specific feature of the draw item
+ * passed as a parameter.
+ *
+ *
+ * renDriNewSourceFlag
+ *    returns 1, if the draw item is a new source for macroblock copying,
+ *    otherwise, it returns 0,
+ *    see REN_EXTDRAW_NEW_SOURCE in renExtDrawParam_t
+ *
+ * renDriCopyNotCodedFlag
+ *    returns 1, if the draw item contains not-coded macroblock info,
+ *    otherwise, it returns 0,
+ *    see REN_EXTDRAW_COPY_NOT_CODED in renExtDrawParam_t
+ *
+ * renDriSnapshotFlag
+ *    returns 1, if the draw item is marked as a snapshot,
+ *    otherwise, it returns 0,
+ *    see REN_EXTDRAW_SNAPSHOT in renExtDrawParam_t
+ *
+ * renDriFreezeReleaseFlag
+ *    returns 1, if the draw item ends picture freezing,
+ *    otherwise, it returns 0,
+ *    see REN_EXTDRAW_SNAPSHOT in renExtDrawParam_t
+ *
+ * renDriNoStatusCallbackFlag
+ *    returns 1, if no status callback is called after this draw item is,
+ *    processed, 
+ *    otherwise, it returns 0,
+ *    see REN_EXTDRAW_NO_STATUS_CALLBACK in renExtDrawParam_t
+ *
+ * renDriRate
+ *    returns the rate parameter of renExtDrawParam_t
+ *
+ * renDriScale
+ *    returns the scale parameter of renExtDrawParam_t
+ *
+ * renDriCodedMBs
+ *    returns a pointer to an unsigned char array of flags of coded MBs,
+ *    the array is indexed by scan-ordered macroblock index,
+ *    1 means that the corresponding macroblock is coded,
+ *    0 means that the corresponding macroblock is not coded
+ *
+ * renDriNumOfMBs
+ *    returns the number of macroblocks in the draw item
+ *
+ * renDriNumOfCodedMBs
+ *    returns the number of coded macroblocks in the draw item
+ *
+ * renDriBitmapWidth
+ *    returns the width of the bitmap to be displayed (in pixels)
+ *
+ * renDriBitmapHeight
+ *    returns the height of the bitmap to be displayed (in pixels)
+ *
+ * renDriBitmapImageSize
+ *    returns the size of the bitmap to be displayed (in bytes)
+ *
+ * renDriBitmapCompression
+ *    returns the compression ID number of the draw item
+ *
+ * renDriFrameNumber
+ *    returns the frame number of the draw item 
+ *    (the lTime Parameter of renDrawParam_t)
+ *
+ * renDriRetFrame
+ *    returns the pointer to the function where to return the processed draw
+ *    item (the retFrame param of renDrawItem_t)
+ *
+ * renDriRetFrameParam
+ *    returns the parameter to pass to the function where to return
+ *    the processed draw item (the retFrameParam of renDrawItem_t)
+ *
+ */
+
+#define renDriNewSourceFlag(drawItem) \
+   (((drawItem)->extParam.flags & REN_EXTDRAW_NEW_SOURCE) > 0)
+
+#define renDriCopyNotCodedFlag(drawItem) \
+   (((drawItem)->extParam.flags & REN_EXTDRAW_COPY_NOT_CODED) > 0)
+
+#define renDriRate(drawItem) \
+   ((drawItem)->extParam.rate)
+
+#define renDriCodedMBs(drawItem) \
+   ((drawItem)->extParam.fCodedMBs)
+
+#define renDriNumOfMBs(drawItem) \
+   ((drawItem)->extParam.numOfMBs)
+
+#define renDriNumOfCodedMBs(drawItem) \
+   ((drawItem)->extParam.numOfCodedMBs)
+
+#define renDriBitmapWidth(drawItem) \
+   (((renBitmapInfoHeader_t *) ((drawItem)->param.lpFormat))->biWidth)
+
+#define renDriBitmapHeight(drawItem) \
+   (labs(((renBitmapInfoHeader_t *) ((drawItem)->param.lpFormat))->biHeight))
+
+#define renDriBitmapImageSize(drawItem) \
+    (((renBitmapInfoHeader_t *) ((drawItem)->param.lpFormat))->biSizeImage)
+
+#define renDriFrameNumber(drawItem) \
+   ((drawItem)->param.lTime)
+
+
+/*
+ * Function prototypes
+ */
+
+renDrawItem_t * renDriAlloc(int width, int height, int fYuvNeeded);
+
+void renDriCopyParameters(
+   renDrawItem_t *dstDrawItem, 
+   const renDrawItem_t *srcDrawItem);
+
+void renDriCopyFrameData(
+   renDrawItem_t *dstDrawItem, 
+   const renDrawItem_t *srcDrawItem);
+
+void renDriFree(renDrawItem_t *drawItem);
+
+int renDriYUV(renDrawItem_t *drawItem,
+   u_char **y, u_char **u, u_char **v, int *width, int *height);
+
+#endif
+// End of File