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; INCLUDES 213306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/ 223306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 233306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong#include "mp4dec_api.h" 243306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong#include "mp4def.h" 253306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong#include "scaling.h" 263306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*---------------------------------------------------------------------------- 273306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; MACROS 283306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; Define module specific macros here 293306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/ 303306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 313306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 323306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*---------------------------------------------------------------------------- 333306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; DEFINES 343306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; Include all pre-processor statements here. Include conditional 353306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; compile variables also. 363306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/ 373306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 383306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*---------------------------------------------------------------------------- 393306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; LOCAL FUNCTION DEFINITIONS 403306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; Function Prototype declaration 413306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/ 423306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 433306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 443306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*---------------------------------------------------------------------------- 453306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; LOCAL STORE/BUFFER/POINTER DEFINITIONS 463306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; Variable declaration - defined here and used outside this module 473306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/ 483306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 493306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/* this scaling can be used for dividing values up to 3292 07/10/01 */ 503306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dongconst int32 scale[63] = {0, 262145, 131073, 87382, 65537, 52430, 43692, 37450, 32769, 29128, 513306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 26215, 23832, 21846, 20166, 18726, 17477, 16385, 15421, 14565, 13798, 523306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 13108, 12484, 11917, 11399, 10924, 10487, 10083, 9710, 9363, 9040, 533306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 8739, 8457, 8193, 7945, 7711, 7491, 7283, 7086, 6900, 6723, 6555, 6395, 543306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 6243, 6097, 5959, 5826, 5700, 5579, 5462, 5351, 5244, 5141, 5042, 4947, 4856, 553306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 4767, 4682, 4600, 4521, 4444, 4370, 4298, 4229 563306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong }; 573306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*---------------------------------------------------------------------------- 583306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; EXTERNAL FUNCTION REFERENCES 593306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; Declare functions defined elsewhere and referenced in this module 603306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/ 613306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 623306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 633306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*---------------------------------------------------------------------------- 643306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES 653306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; Declare variables used in this module but defined elsewhere 663306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/ 673306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 683306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 693306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*---------------------------------------------------------------------------- 703306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; FUNCTION CODE 713306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/ 723306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 733306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 743306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*---------------------------------------------------------------------------- 753306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; Define all local variables 763306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/ 773306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 783306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 793306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*---------------------------------------------------------------------------- 803306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; Function body here 813306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/ 823306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 833306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 843306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/*---------------------------------------------------------------------------- 853306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong; Return nothing or data or data pointer 863306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong----------------------------------------------------------------------------*/ 873306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 883306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 89