diff -r 000000000000 -r 951a5db380a0 videoeditorengine/avcedit/inc/globals.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoeditorengine/avcedit/inc/globals.h Fri Jan 29 14:08:33 2010 +0200 @@ -0,0 +1,174 @@ +/* +* 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 _GLOBALS_H_ +#define _GLOBALS_H_ + +#include +#include "nrctyp32.h" +//#include "rdtsc.h" + + +/* + * General defines + */ + +#ifdef __TMS320C55X__ +/* If this is defined, int is 16 bits */ +#define INT_IS_16_BITS +#endif + +// Define the debug printing +#ifdef _DEBUG +#include +#define PRINT(x) RDebug::Print x; +#else +#define PRINT(x) +#endif + +/* If this is defined as 1, input bitstream is encapsulated in NAL packets */ +/* and contians start code emulation prevention bytes */ +#define ENCAPSULATED_NAL_PAYLOAD 1 + +/* Minimum and maximum QP value */ +#define MIN_QP 0 +#define MAX_QP 51 + +/* If this is defined, pixel clipping will use loop-up table */ +#ifndef __TMS320C55X__ +#define USE_CLIPBUF +#endif + +#ifndef min +#define min(a, b) ((a) < (b) ? (a) : (b)) +#endif +#ifndef max +#define max(a, b) ((a) > (b) ? (a) : (b)) +#endif + +/* This macro clips value val to the range of [min, max] */ +#define clip(min, max, val) (((val)<(min))? (min):(((val)>(max))? (max):(val))) + + +/* + * Defines for assembly functions + */ + +#ifdef AVC_ARM_ASSEMBLY +#define AVC_RECO_BLOCK_ASM +#define AVC_LOOP_FILTER_ASM +#define AVC_MOTION_COMP_ASM +#endif + +#ifdef __TMS320C55X__ +#define AVC_RECO_BLOCK_ASM +#endif + + +/* + * Defines for error concealment + */ + +/*#ifndef ERROR_CONCEALMENT +#define ERROR_CONCEALMENT +#endif*/ + +#ifndef BACKCHANNEL_INFO +#define BACKCHANNEL_INFO +#endif + +/* + * Defines for slice + */ + +/* All possible slice types */ +#define SLICE_MIN 0 +#define SLICE_P 0 // P (P slice) +#define SLICE_B 1 // B (B slice) +#define SLICE_I 2 // I (I slice) +#define SLICE_SP 3 // SP (SP slice) +#define SLICE_SI 4 // SI (SI slice) +#define SLICE_P1 5 // P (P slice) +#define SLICE_B1 6 // B (B slice) +#define SLICE_I1 7 // I (I slice) +#define SLICE_SP1 8 // SP (SP slice) +#define SLICE_SI1 9 // SI (SI slice) +#define SLICE_MAX 9 + +/* Macros for testing whether slice is I slice, P slice or B slice */ +#define IS_SLICE_I(x) ((x) == SLICE_I || (x) == SLICE_I1 || (x) == SLICE_SI || (x) == SLICE_SI1) +#define IS_SLICE_P(x) ((x) == SLICE_P || (x) == SLICE_P1 || (x) == SLICE_SP || (x) == SLICE_SP1) +#define IS_SLICE_B(x) ((x) == SLICE_B || (x) == SLICE_B1) + + +/* + * Defines for macroblock + */ + +#define MBK_SIZE 16 +#define BLK_SIZE 4 +#define BLK_PER_MB (MBK_SIZE/BLK_SIZE) +#define MBK_SIZE_LOG2 4 +#define BLK_SIZE_LOG2 2 + +/* Macroblock type */ +#define MBK_INTRA 0 +#define MBK_INTER 1 + +/* Intra macroblock sub-type */ +#define MBK_INTRA_TYPE1 0 +#define MBK_INTRA_TYPE2 1 +#define MBK_INTRA_TYPE_PCM 2 + + +/* + * Defines for entropy coder + */ + +/* These 2 macros are needed even if ENABLE_CABAC is not defined */ +#define ENTROPY_CAVLC 0 +#define ENTROPY_CABAC 1 + + + +/* + * Global structures + */ + +typedef struct _motVec_s { + int16 x; + int16 y; +} motVec_s; + + +/* Chrominance QP mapping table. Has to be static on Symbian. */ +/* Chroma QP = qpChroma[Luma QP] */ +#ifndef __SYMBIAN32__ +extern const u_int8 qpChroma[52]; +#else +static const u_int8 qpChroma[52] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11, + 12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27, + 28,29,29,30,31,32,32,33,34,34,35,35,36,36,37,37, + 37,38,38,38,39,39,39,39 +}; +#endif + + +#endif