videoeditorengine/avcedit/inc/framebuffer.h
author Mikael Laine <mikael.laine@ixonos.com>
Fri, 29 Jan 2010 14:08:33 +0200
changeset 0 951a5db380a0
permissions -rw-r--r--
Committing the Video Editor package under the Eclipse Public License

/*
* 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:
*
*/


#ifndef _FRAMEBUFFER_H_
#define _FRAMEBUFFER_H_


#include "nrctyp32.h"
#include "globals.h"
#include "avcdapi.h"


#define FRM_NON_REF_PIC     0
#define FRM_SHORT_TERM_PIC  1
#define FRM_LONG_TERM_PIC   2


typedef struct _frmBuf_s {
  int constraintSet0flag;
  int constraintSet1flag;
  int constraintSet2flag;
  int profile;
  int level;
  int width;
  int height;
  unsigned cropLeftOff;
  unsigned cropRightOff;
  unsigned cropTopOff;
  unsigned cropBottomOff;

  int aspectRatioNum;
  int aspectRatioDenom;
  int overscanInfo;
  int videoFormat;
  int videoFullRangeFlag;
  int matrixCoefficients;
  int chromaSampleLocType;
  int numReorderFrames;
  float frameRate;

  int imgPadding;

  int qp;
  int chromaQpIndexOffset;

  int32 frameNum;
  int32 maxFrameNum;
  int32 picNum;
  int longTermFrmIdx;
  int longTermPicNum;
  int refType;        /* non-ref, short term or long term */
  int forOutput;      /* If this frame is waiting for output */
  int nonExisting;    
  int32 poc;
  int isIDR;
  int idrPicID;
  int hasMMCO5;
  int picType;

  int pictureStructure;

  int lossy;
/*#if defined(ERROR_CONCEALMENT) && defined(BACKCHANNEL_INFO)
  unsigned char *mbLossMap;
#endif*/

  int sceneCut;

} frmBuf_s;


typedef struct _mbAttributes_s {
  int *sliceMap;
  int8 *mbTypeTable;
  int8 *qpTable;
  int8 *refIdxTable;
  int *cbpTable;
  int8 *ipModesUpPred;
  motVec_s *motVecTable;
  int8 *numCoefUpPred[3];
  int8 *filterModeTab;
  int8 *alphaOffset;
  int8 *betaOffset;
} mbAttributes_s;


frmBuf_s *frmOpen(mbAttributes_s **mbData, int width, int height);

frmBuf_s *frmOpenRef(int width, int height);

void frmClose(frmBuf_s *recoBuf, mbAttributes_s *mbData);

void frmCloseRef(frmBuf_s *ref);

frmBuf_s *frmMakeRefFrame(frmBuf_s *recoBuf, frmBuf_s *refBuf);


#endif