13306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/* ------------------------------------------------------------------
23306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * Copyright (C) 1998-2009 PacketVideo
33306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong *
43306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * Licensed under the Apache License, Version 2.0 (the "License");
53306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * you may not use this file except in compliance with the License.
63306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * You may obtain a copy of the License at
73306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong *
83306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong *      http://www.apache.org/licenses/LICENSE-2.0
93306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong *
103306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * Unless required by applicable law or agreed to in writing, software
113306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * distributed under the License is distributed on an "AS IS" BASIS,
123306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
133306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * express or implied.
143306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * See the License for the specific language governing permissions
153306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * and limitations under the License.
163306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * -------------------------------------------------------------------
173306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong */
183306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*
193306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*     -------------------------------------------------------------------   *
203306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*                    MPEG-4 Simple Profile Video Decoder                    *
213306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*     -------------------------------------------------------------------   *
223306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*
233306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* This software module was originally developed by
243306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*
253306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*   Michael Wollborn (TUH / ACTS-MoMuSyS)
263306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*
273306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* in the course of development of the MPEG-4 Video (ISO/IEC 14496-2) standard.
283306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* This software module is an implementation of a part of one or more MPEG-4
293306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* Video (ISO/IEC 14496-2) tools as specified by the MPEG-4 Video (ISO/IEC
303306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* 14496-2) standard.
313306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*
323306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* ISO/IEC gives users of the MPEG-4 Video (ISO/IEC 14496-2) standard free
333306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* license to this software module or modifications thereof for use in hardware
343306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* or software products claiming conformance to the MPEG-4 Video (ISO/IEC
353306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* 14496-2) standard.
363306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*
373306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* Those intending to use this software module in hardware or software products
383306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* are advised that its use may infringe existing patents. The original
393306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* developer of this software module and his/her company, the subsequent
403306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* editors and their companies, and ISO/IEC have no liability for use of this
413306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* software module or modifications thereof in an implementation. Copyright is
423306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* not released for non MPEG-4 Video (ISO/IEC 14496-2) Standard conforming
433306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* products.
443306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*
453306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* ACTS-MoMuSys partners retain full right to use the code for his/her own
463306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* purpose, assign or donate the code to a third party and to inhibit third
473306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* parties from using the code for non MPEG-4 Video (ISO/IEC 14496-2) Standard
483306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* conforming products. This copyright notice must be included in all copies or
493306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* derivative works.
503306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*
513306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong* Copyright (c) 1997
523306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*
533306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*****************************************************************************
543306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
553306cfee3bf38ab207a0504e49c2d492bb73ffbfJames DongThis is a header file for "vlc_decode.c".  The table data actually resides
563306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dongin "vlc_tab.c".
573306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
583306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
593306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong------------------------------------------------------------------------------
603306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong*/
613306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
623306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*----------------------------------------------------------------------------
633306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; CONTINUE ONLY IF NOT ALREADY DEFINED
643306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/
653306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
663306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong#ifndef max_level_H
673306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong#define max_level_H
683306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
693306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*----------------------------------------------------------------------------
703306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; INCLUDES
713306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/
723306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong#include "mp4def.h"
733306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
743306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*----------------------------------------------------------------------------
753306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; MACROS
763306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; Define module specific macros here
773306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/
783306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
793306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*----------------------------------------------------------------------------
803306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; DEFINES
813306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; Include all pre-processor statements here.
823306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/
833306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
843306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*----------------------------------------------------------------------------
853306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; EXTERNAL VARIABLES REFERENCES
863306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; Declare variables used in this module but defined elsewhere
873306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/
883306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
893306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong#ifdef __cplusplus
903306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dongextern "C"
913306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong{
923306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong#endif
933306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
943306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    extern const int intra_max_level[2][NCOEFF_BLOCK];
953306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
963306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    extern const int inter_max_level[2][NCOEFF_BLOCK];
973306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
983306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    extern const int intra_max_run0[28];
993306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1003306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1013306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    extern const int intra_max_run1[9];
1023306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1033306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    extern const int inter_max_run0[13];
1043306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1053306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1063306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    extern const int inter_max_run1[4];
1073306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1083306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1093306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    /*----------------------------------------------------------------------------
1103306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    ; SIMPLE TYPEDEF'S
1113306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    ----------------------------------------------------------------------------*/
1123306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1133306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    /*----------------------------------------------------------------------------
1143306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    ; ENUMERATED TYPEDEF'S
1153306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    ----------------------------------------------------------------------------*/
1163306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1173306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    /*----------------------------------------------------------------------------
1183306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    ; STRUCTURES TYPEDEF'S
1193306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    ----------------------------------------------------------------------------*/
1203306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1213306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1223306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    /*----------------------------------------------------------------------------
1233306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    ; GLOBAL FUNCTION DEFINITIONS
1243306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    ; Function Prototype declaration
1253306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    ----------------------------------------------------------------------------*/
1263306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1273306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1283306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    /*----------------------------------------------------------------------------
1293306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    ; END
1303306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    ----------------------------------------------------------------------------*/
1313306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1323306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong#ifdef __cplusplus
1333306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong}
1343306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong#endif
1353306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1363306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong#endif
1373306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1383306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1393306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1403306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1413306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1423306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1433306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1443306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1453306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1463306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1473306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1483306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1493306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
150