videoeditorengine/h263decoder/inc/vdcmvc.h
branchRCL_3
changeset 3 e0b5df5c0969
parent 0 951a5db380a0
child 5 4c409de21d23
--- a/videoeditorengine/h263decoder/inc/vdcmvc.h	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-/*
-* 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:  
-* Function prototypes for motion vector counting for H.263 decoder.
-*
-*/
-
-
-#ifndef _VDCMVC_H_
-#define _VDCMVC_H_
-
-
-#include "epoclib.h"
-
-/*
- * Defines
- */
-
-#define MVC_XM1_UP 0
-#define MVC_XM1_DOWN 1
-#define MVC_YM1_LEFT 2
-#define MVC_YM1_RIGHT 3
-#define MVC_XP1_UP 4
-#define MVC_XP1_DOWN 5
-
-#define MVC_MB_INTER 1
-#define MVC_MB_INTRA 2
-#define MVC_MB_NOT_CODED 3
-
-
-/*
- * Structs and typedefs
- */
-
-/* {{-output"mvRowItem_t_info.txt" -ignore"*" -noCR}}
-   mvRowItem_t is capable of storing one P frame motion vector.
-   It is used internally within the MVC module.
-   {{-output"mvRowItem_t_info.txt"}} */
-
-/* {{-output"mvRowItem_t.txt"}} */
-typedef struct {
-   int mvx;          /* motion vector value or MVD_INTRA or MVD_NOT_CODED */
-   int mvy;
-   int y;            /* the y coordinate for motion vector in block units */
-   int time;         /* a relative time when motion vector was counted */
-   u_char fourMVs;   /* flag indicating four MBs per macroblock */
-   int type;         /* MVC_MB_INTER, MVC_MB_INTRA or MVC_MB_NOT_CODED */
-} mvRowItem_t;
-/* {{-output"mvRowItem_t.txt"}} */
-
-
-/* {{-output"mvBFBufItem_t_info.txt" -ignore"*" -noCR}}
-   mvBFBufItem_t is capable of storing one B frame motion vector.
-   It is used internally within the MVC module.
-   {{-output"mvBFBufItem_t_info.txt"}} */
-
-/* {{-output"mvBFBufItem_t.txt"}} */
-typedef struct {
-   int mvx;          /* motion vector value */
-   int mvy;
-   int x;            /* the x coordinate for mv in block units */
-   int y;            /* the y coordinate for mv in block units */
-   int time;         /* a relative time when mv was counted */
-   u_char fourMVs;   /* flag indicating four MBs per macroblock */
-} mvBFBufItem_t;
-/* {{-output"mvBFBufItem_t.txt"}} */
-
-
-/* {{-output"mvcData_t_info.txt" -ignore"*" -noCR}}
-   mvcData_t is used to store the instance data for one MVC module and
-   it is capable of keeping state of the motion vector decoding process
-   for one encoded H.263 bitstream.
-   {{-output"mvcData_t_info.txt"}} */
-
-/* {{-output"mvcData_t.txt"}} */
-typedef struct {
-   /* motion vector buffers
-    *
-    * mvRow contains three motion vector lines: mvRow0, mvRow1 and mvRow2
-    * mvRow0 is the lower block line in the previous macroblock line
-    * mvRow1 is the higher block line in the current macroblock line
-    * mvRow2 is the lower block line in the current macroblock line
-    */
-   mvRowItem_t *mvRow;
-   mvRowItem_t *mvRow0;
-   mvRowItem_t *mvRow1;
-   mvRowItem_t *mvRow2;
-
-   int currMaxX;     /* maxX, when mvcStart was last called */
-   int currX;        /* x for current macroblock being handled */
-   int currY;        /* y for current macroblock */
-   int currTime;     /* time for current macroblock */
-   int mvRowIndex;   /* the index of mvRow0 in mvRow array (0..2) */
-
-   mvBFBufItem_t mvFBufArray[2][4]; /* forward motion vectors for B frame 
-                                       for current and previous MB */
-   mvBFBufItem_t mvBBufArray[2][4]; /* backward motion vectors for B frame
-                                       for current and previous MB */
-   int mvBFBufIndex; /* the index of the current MB in mvFBufArray and 
-                        mvBBufArray. The index of the previous MB is generated
-                        by XORing 1 to this variable. */
-   int currLumWidth;
-   int currLumHeight;
-   int mvRangeLowX;  /* Lower boundary for horz. MV range */
-   int mvRangeHighX; /* Higher boundary for horz. MV range */
-   int mvRangeLowY;  /* Lower boundary for vert. MV range */
-   int mvRangeHighY; /* Higher boundary for vert. MV range */
-   int prevPredMode; /* Flag for prediction of forward prediction vector in IPB
-                        1  => MB to the left has a FWD MV
-                        0  => Otherwise   */
-   int rightOfBorder;      /* There is a border on the left of the current MB */
-   int downOfBorder;       /* There is a border on top of the current MB */
-   int leftOfBorder;   /* There is a border on the right of the previous MB */
-   int rightOfBorderPrev;  /* There is a border on the left of the previous MB */
-   int downOfBorderPrev;   /* There is a border on top of the previous MB */
-   int upRightMBIsStart;   /* The MB, on the previous line and next column is
-                              the starting MB of the slice. If Annex K is not 
-                              in use returns zero.*/
-   int fSS;                /* Annex K use flag */
-
-
-   int range;  /* allowed range of the MVs: low= -range; high= range-1 */
-   int f_code; /* f_code_forward for P-frames */
-
-} mvcData_t;
-/* {{-output"mvcData_t.txt"}} */
-
-
-/*
- * Function prototypes
- */
-
-void mvcCalcMV(mvcData_t *mvcData, int mvdx, int mvdy,
-   int *mvx, int *mvy, u_char predictorMode, u_char fourMVs,
-   u_char unrestrictedMV,  u_char nonEmptyGOBHeader, int x, 
-   int y, int time, int mbType, int16 *error, int fPLUSPTYPE, 
-   int fUMVLimited);
-
-void mvcSetBorders(
-      mvcData_t *mvcData, int x, int y, int mba, int numMBsInMBLine, 
-      int *rightOfBorder, int *downOfBorder);
-
-void mvcCalcMPEGMV(mvcData_t *mvcData,
-   int mvdx, int mvdy, int *mvx, int *mvy,
-   u_char predictorMode, u_char fourMVs,
-   u_char topOfVP, u_char leftOfVP, u_char fmv3_out,
-   int x, int y, int time, int mbType, int16 *error);
-
-void mvcCalcMVsForBFrame(mvcData_t *mvcData, int *mvfx, int *mvfy, 
-   int *mvbx, int *mvby, int *mvx, int *mvy, int mvdx, int mvdy, 
-   int trb, int trd, int numMVs, u_char unrestrictedMV, 
-   int x, int y, int time);
-
-void mvcCalcFwdMVsForImpBFrame(mvcData_t *mvcData, int *mvfx, int *mvfy,
-   int *mvbx, int *mvby, int mvdx, int mvdy, int x, int y, int fUMV);
-
-void mvcFree(mvcData_t *mvcData);
-
-void mvcGetCurrNeighbourMVs(mvcData_t *mvcData, int *nmvx, int *nmvy,
-   int16 *error);
-
-void mvcGetPrevNeighbourMVs(mvcData_t *mvcData, int *nmvx, int *nmvy,
-   int *pmvx, int *pmvy, u_char *fourMVs, int16 *error);
-
-void mvcGetPrevMVFsAndMVBs(mvcData_t *mvcData, int *mvfx, int *mvfy, 
-   int *mvbx, int *mvby, u_char *fourMVs, int16 *error);
-
-void mvcMarkMBIntra(mvcData_t *mvcData, int x, int y, int time);
-
-void mvcMarkMBNotCoded(mvcData_t *mvcData, int x, int y, int time);
-
-void mvcStart(mvcData_t *mvcData, int maxX, int lumWidth, 
-   int lumHeight, int16 *error);
-
-void mvcGetCurrentMVs(mvcData_t *mvcData, int *mvx, int *mvy,
-   int16 *error);
-
-#endif
-// End of File