#ifndef WELS_PICTURE_H__
#define WELS_PICTURE_H__
#include "typedefs.h"
#include "wels_common_defs.h"
#include "wels_const_common.h"
#include "wels_decoder_thread.h"
using namespace WelsCommon;
namespace WelsDec {
struct SPicture {
uint8_t* pBuffer[4]; uint8_t* pData[4]; int32_t iLinesize[4]; int32_t iPlanes;
bool bIdrFlag;
int32_t iWidthInPixel; int32_t iHeightInPixel;
int32_t iFramePoc;
bool bUsedAsRef; bool bIsLongRef; int8_t iRefCount;
void (*pSetUnRef)(WelsDec::SPicture*);
bool bIsComplete;
uint8_t uiTemporalId;
uint8_t uiSpatialId;
uint8_t uiQualityId;
int32_t iFrameNum; int32_t iFrameWrapNum; int32_t iLongTermFrameIdx; uint32_t uiLongTermPicNum;
int32_t iSpsId; int32_t iPpsId;
unsigned long long uiTimeStamp;
uint32_t uiDecodingTimeStamp; int32_t iPicBuffIdx;
EWelsSliceType eSliceType;
bool bIsUngroupedMultiSlice; bool bNewSeqBegin;
int32_t iMbEcedNum;
int32_t iMbEcedPropNum;
int32_t iMbNum;
bool* pMbCorrectlyDecodedFlag;
int8_t (*pNzc)[24];
uint32_t* pMbType; int16_t (*pMv[LIST_A])[MB_BLOCK4x4_NUM][MV_A]; int8_t (*pRefIndex[LIST_A])[MB_BLOCK4x4_NUM]; struct SPicture* pRefPic[LIST_A][17]; SWelsDecEvent* pReadyEvent;
};
typedef struct SPicture* PPicture;
}
#endif