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