diff -r 000000000000 -r 951a5db380a0 videoeditorengine/avcedit/inc/macroblock.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoeditorengine/avcedit/inc/macroblock.h Fri Jan 29 14:08:33 2010 +0200 @@ -0,0 +1,81 @@ +/* +* 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 _MACROBLOCK_H_ +#define _MACROBLOCK_H_ + + +#include "globals.h" +#include "framebuffer.h" +#include "bitbuffer.h" + + +#define MBK_ERROR -1 +#define MBK_OK 0 +#define MBK_PCM_FOUND 2 + + +typedef struct _macroblock_s +{ + int type; + int numSkipped; + + int intraType; + int intraMode; + int intraModeChroma; + + int interMode; + int inter8x8modes[4]; + int refNum[4]; + int numMotVecs; + + int qp, qpC; + int idxX, idxY; + int blkX, blkY; + int pixX, pixY; + + int cbpY, cbpC, cbpChromaDC; + + u_int8 predY[MBK_SIZE][MBK_SIZE]; + u_int8 predC[MBK_SIZE/2][MBK_SIZE]; + + int dcCoefY[BLK_PER_MB][BLK_PER_MB]; + int dcCoefC[2][BLK_PER_MB/2][BLK_PER_MB/2]; + + int coefY[BLK_PER_MB][BLK_PER_MB][BLK_SIZE][BLK_SIZE]; + int coefC[2][BLK_PER_MB/2][BLK_PER_MB/2][BLK_SIZE][BLK_SIZE]; + + int mbAvailBits; + + int8 numCoefLeftPred[BLK_PER_MB]; + int8 numCoefLeftPredC[2][BLK_PER_MB/2]; + + int8 ipModesLeftPred[BLK_PER_MB]; + +} macroblock_s; + + +void mbkSetInitialQP(macroblock_s *mb, int qp, int chromaQpIdx); + +TInt mbkParse(macroblock_s *mb, + TInt numRefFrames, mbAttributes_s *mbData, TInt picWidth, + TInt picType, TInt constIpred, TInt chromaQpIdx, + TInt mbIdxX, TInt mbIdxY, void *streamBuf, TInt aBitOffset); + +#endif