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