winamp/Src/h264dec/ldecod/inc/erc_globals.h
2024-09-24 14:54:57 +02:00

52 lines
1.6 KiB
C

/*!
************************************************************************
* \file erc_globals.h
*
* \brief
* global header file for error concealment module
*
* \author
* - Viktor Varsa <viktor.varsa@nokia.com>
* - Ye-Kui Wang <wyk@ieee.org>
************************************************************************
*/
#ifndef _ERC_GLOBALS_H_
#define _ERC_GLOBALS_H_
#include "defines.h"
/* "block" means an 8x8 pixel area */
/* Region modes */
#define REGMODE_INTER_COPY 0 //!< Copy region
#define REGMODE_INTER_PRED 1 //!< Inter region with motion vectors
#define REGMODE_INTRA 2 //!< Intra region
#define REGMODE_SPLITTED 3 //!< Any region mode higher than this indicates that the region
//!< is splitted which means 8x8 block
#define REGMODE_INTER_COPY_8x8 4
#define REGMODE_INTER_PRED_8x8 5
#define REGMODE_INTRA_8x8 6
//! YUV pixel domain image arrays for a video frame
typedef struct frame_s
{
VideoParameters *p_Vid;
imgpel *yptr;
imgpel *uptr;
imgpel *vptr;
} frame;
//! region structure stores information about a region that is needed for concealment
typedef struct object_buffer
{
byte regionMode; //!< region mode as above
int xMin; //!< X coordinate of the pixel position of the top-left corner of the region
int yMin; //!< Y coordinate of the pixel position of the top-left corner of the region
short mv[3]; //!< motion vectors in 1/4 pixel units: mvx = mv[0], mvy = mv[1],
//!< and ref_frame = mv[2]
} objectBuffer_t;
#endif