142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* ------------------------------------------------------------------
242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong * Copyright (C) 1998-2009 PacketVideo
342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong *
442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong * Licensed under the Apache License, Version 2.0 (the "License");
542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong * you may not use this file except in compliance with the License.
642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong * You may obtain a copy of the License at
742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong *
842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong *      http://www.apache.org/licenses/LICENSE-2.0
942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong *
1042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong * Unless required by applicable law or agreed to in writing, software
1142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong * distributed under the License is distributed on an "AS IS" BASIS,
1242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
1342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong * express or implied.
1442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong * See the License for the specific language governing permissions
1542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong * and limitations under the License.
1642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong * -------------------------------------------------------------------
1742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong */
1842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#ifndef _PVDECDEF_H_
1942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define _PVDECDEF_H_
2042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
21faf775e772e329e821d81ba735474df097b1e1e9James Dong#include <stdint.h> // for uint8_t, etc
2242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#include <stdlib.h>
2342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#include <string.h>
2442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
2542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong// Redefine the int types
2642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef uint8_t uint8;
2742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef uint16_t uint16;
2842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef int16_t int16;
2942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef uint32_t uint32;
3042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef int32_t int32;
3142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef unsigned int uint;
3242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
3342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/********** platform dependent in-line assembly *****************************/
3442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
3542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/*************** Intel *****************/
3642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
3742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/*************** ARM *****************/
3842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* for general ARM instruction. #define __ARM has to be defined in compiler set up.*/
3942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* for DSP MUL */
4042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#ifdef __TARGET_FEATURE_DSPMUL
4142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define _ARM_DSP_MUL
4242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#endif
4342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
4442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* for Count Leading Zero instruction */
4542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#ifdef __TARGET_ARCH_5T
4642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define _ARM_CLZ
4742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#endif
4842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#ifdef __TARGET_ARCH_5TE
4942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define _ARM_CLZ
5042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#endif
5142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/****************************************************************************/
5242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
5342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#ifndef _PV_TYPES_
5442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define _PV_TYPES_
5542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef unsigned char UChar;
5642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef char Char;
5742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef unsigned int UInt;
5842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef int Int;
5942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef unsigned short UShort;
6042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef short Short;
6142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef short int SInt;
6242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef unsigned int Bool;
6342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef unsigned long   ULong;
6442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef void Void;
6542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
6642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define PV_CODEC_INIT       0
6742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define PV_CODEC_STOP       1
6842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define PV_CODEC_RUNNING    2
6942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define PV_CODEC_RESET      3
7042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#endif
7142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
7242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef enum
7342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong{
7442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong    PV_SUCCESS,
7542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong    PV_FAIL,
7642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong    PV_EOS,             /* hit End_Of_Sequence     */
7742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong    PV_MB_STUFFING,     /* hit Macroblock_Stuffing */
7842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong    PV_END_OF_VOP,      /* hit End_of_Video_Object_Plane */
7942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong    PV_END_OF_MB,       /* hit End_of_Macroblock */
8042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong    PV_END_OF_BUF       /* hit End_of_Bitstream_Buffer */
8142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong} PV_STATUS;
8242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
8342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dongtypedef UChar PIXEL;
8442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong//typedef Int MOT;   /* : "int" type runs faster on RISC machine */
8542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
8642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define HTFM            /*  3/2/01, Hypothesis Test Fast Matching for early drop-out*/
8742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong//#define _MOVE_INTERFACE
8842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
8942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong//#define RANDOM_REFSELCODE
9042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
9142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* handle the case of devision by zero in RC */
9242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MAD_MIN 1
9342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
9442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* 4/11/01, if SSE or MMX, no HTFM, no SAD_HP_FLY */
9542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
9642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* Code size reduction related Macros */
9742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#ifdef H263_ONLY
9842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#ifndef NO_RVLC
9942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define NO_RVLC
10042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#endif
10142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#ifndef NO_MPEG_QUANT
10242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define NO_MPEG_QUANT
10342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#endif
10442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#ifndef NO_INTER4V
10542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define NO_INTER4V
10642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#endif
10742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#endif
10842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/**************************************/
10942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
11042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define TRUE    1
11142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define FALSE   0
11242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
11342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define PV_ABS(x)       (((x)<0)? -(x) : (x))
11442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define PV_SIGN(x)      (((x)<0)? -1 : 1)
11542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define PV_SIGN0(a)     (((a)<0)? -1 : (((a)>0) ? 1 : 0))
11642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define PV_MAX(a,b)     ((a)>(b)? (a):(b))
11742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define PV_MIN(a,b)     ((a)<(b)? (a):(b))
11842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
11942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MODE_INTRA      0
12042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MODE_INTER      1
12142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MODE_INTRA_Q    2
12242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MODE_INTER_Q    3
12342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MODE_INTER4V    4
12442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MODE_SKIPPED    6
12542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
12642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define I_VOP       0
12742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define P_VOP       1
12842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define B_VOP       2
12942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
13042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/*09/04/00 Add MB height and width */
13142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MB_WIDTH 16
13242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MB_HEIGHT 16
13342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
13442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define VOP_BRIGHT_WHITEENC 255
13542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
13642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
13742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define LUMINANCE_DC_TYPE   1
13842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define CHROMINANCE_DC_TYPE 2
13942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
14042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define EOB_CODE                        1
14142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define EOB_CODE_LENGTH                32
14242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
14342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* 11/30/98 */
14442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define FoundRM     1   /* Resync Marker */
14542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define FoundVSC    2   /* VOP_START_CODE. */
14642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define FoundGSC    3   /* GROUP_START_CODE */
14742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define FoundEOB    4   /* EOB_CODE */
14842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
14942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
15042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* 05/08/2000, the error code returned from BitstreamShowBits() */
15142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define BITSTREAM_ERROR_CODE 0xFFFFFFFF
15242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
15342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* PacketVideo "absolution timestamp" object.  06/13/2000 */
15442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define PVTS_START_CODE         0x01C4
15542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define PVTS_START_CODE_LENGTH  32
15642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
15742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* session layer and vop layer start codes */
15842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
15942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define SESSION_START_CODE  0x01B0
16042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define SESSION_END_CODE    0x01B1
16142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define VISUAL_OBJECT_START_CODE 0x01B5
16242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
16342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define VO_START_CODE           0x8
16442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define VO_HEADER_LENGTH        32      /* lengtho of VO header: VO_START_CODE +  VO_ID */
16542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
16642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define SOL_START_CODE          0x01BE
16742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define SOL_START_CODE_LENGTH   32
16842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
16942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define VOL_START_CODE 0x12
17042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define VOL_START_CODE_LENGTH 28
17142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
17242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define VOP_START_CODE 0x1B6
17342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define VOP_START_CODE_LENGTH   32
17442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
17542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define GROUP_START_CODE    0x01B3
17642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define GROUP_START_CODE_LENGTH  32
17742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
17842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define VOP_ID_CODE_LENGTH      5
17942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define VOP_TEMP_REF_CODE_LENGTH    16
18042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
18142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define USER_DATA_START_CODE        0x01B2
18242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define USER_DATA_START_CODE_LENGTH 32
18342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
18442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define START_CODE_PREFIX       0x01
18542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define START_CODE_PREFIX_LENGTH    24
18642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
18742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define SHORT_VIDEO_START_MARKER         0x20
18842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define SHORT_VIDEO_START_MARKER_LENGTH  22
18942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define SHORT_VIDEO_END_MARKER            0x3F
19042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define GOB_RESYNC_MARKER         0x01
19142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define GOB_RESYNC_MARKER_LENGTH  17
19242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
19342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* motion and resync markers used in error resilient mode  */
19442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
19542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define DC_MARKER                      438273
19642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define DC_MARKER_LENGTH                19
19742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
19842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MOTION_MARKER_COMB             126977
19942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MOTION_MARKER_COMB_LENGTH       17
20042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
20142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MOTION_MARKER_SEP              81921
20242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MOTION_MARKER_SEP_LENGTH        17
20342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
20442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define RESYNC_MARKER           1
20542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define RESYNC_MARKER_LENGTH    17
20642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
20742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define SPRITE_NOT_USED     0
20842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define STATIC_SPRITE       1
20942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define ONLINE_SPRITE       2
21042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define GMC_SPRITE      3
21142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
21242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* macroblock and block size */
21342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define MB_SIZE 16
21442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define NCOEFF_MB (MB_SIZE*MB_SIZE)
21542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define B_SIZE 8
21642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define NCOEFF_BLOCK (B_SIZE*B_SIZE)
21742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define NCOEFF_Y NCOEFF_MB
21842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define NCOEFF_U NCOEFF_BLOCK
21942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define NCOEFF_V NCOEFF_BLOCK
22042ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
22142ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* overrun buffer size  */
22242ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define DEFAULT_OVERRUN_BUFFER_SIZE 1000
22342ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
22442ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
22542ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong/* VLC decoding related definitions */
22642ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define VLC_ERROR   (-1)
22742ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#define VLC_ESCAPE  7167
22842ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong
22942ef0c715da879a9878b7bf4eb9c90b21e4ab8aeJames Dong#endif /* _PVDECDEF_H_ */
230