1d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber/* ------------------------------------------------------------------ 2d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * Copyright (C) 1998-2009 PacketVideo 3d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * 4d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 5d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * you may not use this file except in compliance with the License. 6d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * You may obtain a copy of the License at 7d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * 8d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * http://www.apache.org/licenses/LICENSE-2.0 9d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * 10d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * Unless required by applicable law or agreed to in writing, software 11d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 12d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * express or implied. 14d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * See the License for the specific language governing permissions 15d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * and limitations under the License. 16d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber * ------------------------------------------------------------------- 17d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber */ 18d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber/* 19d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber------------------------------------------------------------------------------ 20d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber PacketVideo Corp. 21d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber MP3 Decoder Library 22d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 23d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber Filename: pvmp3_decode_header.h 24d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 25d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber Date: 09/21/2007 26d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 27d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber------------------------------------------------------------------------------ 28d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber REVISION HISTORY 29d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 30d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber Description: 31d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 32d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber------------------------------------------------------------------------------ 33d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber INCLUDE DESCRIPTION 34d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 35d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber------------------------------------------------------------------------------ 36d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber*/ 37d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 38d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber/*---------------------------------------------------------------------------- 39d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; CONTINUE ONLY IF NOT ALREADY DEFINED 40d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber----------------------------------------------------------------------------*/ 41d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#ifndef PVMP3_POLYPHASE_FILTER_WINDOW_H 42d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#define PVMP3_POLYPHASE_FILTER_WINDOW_H 43d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 44d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber/*---------------------------------------------------------------------------- 45d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; INCLUDES 46d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber----------------------------------------------------------------------------*/ 47d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 48d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#include "pvmp3_audio_type_defs.h" 49d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#include "s_tmp3dec_chan.h" 50d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 51d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber/*---------------------------------------------------------------------------- 52d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; MACROS 53d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; Define module specific macros here 54d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber----------------------------------------------------------------------------*/ 55d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 56d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber/*---------------------------------------------------------------------------- 57d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; DEFINES 58d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; Include all pre-processor statements here. 59d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber----------------------------------------------------------------------------*/ 60d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#define MAX_16BITS_INT 0x7FFF 61d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 62d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber/*---------------------------------------------------------------------------- 63d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; EXTERNAL VARIABLES REFERENCES 64d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; Declare variables used in this module but defined elsewhere 65d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber----------------------------------------------------------------------------*/ 66d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 67d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber/*---------------------------------------------------------------------------- 68d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; SIMPLE TYPEDEF'S 69d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber----------------------------------------------------------------------------*/ 70d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 71d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber/*---------------------------------------------------------------------------- 72d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; ENUMERATED TYPEDEF'S 73d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber----------------------------------------------------------------------------*/ 74d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 75d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber/*---------------------------------------------------------------------------- 76d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; STRUCTURES TYPEDEF'S 77d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber----------------------------------------------------------------------------*/ 78d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 79d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber/*---------------------------------------------------------------------------- 80d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; GLOBAL FUNCTION DEFINITIONS 81d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; Function Prototype declaration 82d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber----------------------------------------------------------------------------*/ 83d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 84d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#ifdef __cplusplus 85d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huberextern "C" 86d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber{ 87d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#endif 88d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 89d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 90d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#if (defined(PV_ARM_V5)||defined(PV_ARM_V4)) 91d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 92d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 93d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber __inline int16 saturate16(int32 sample) 94d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber { 95d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber int32 a; 96d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber int32 b = 31; 97d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber __asm 98d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber { 99d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber mov a, sample, asr#15 100d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber teq a, sample, asr b 101d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber eorne sample, MAX_16BITS_INT, sample, asr#31 102d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber } 103d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber return sample ; 104d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber } 105d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 106d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#else 107d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 108d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber inline int16 saturate16(int32 sample) 109d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber { 110d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 111d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber if ((sample >> 15) ^(sample >> 31)) 112d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber { 113d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber sample = MAX_16BITS_INT ^(sample >> 31); 114d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber } 115d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber return sample; 116d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 117d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber } 118d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#endif 119d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 120d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 121d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber void pvmp3_polyphase_filter_window(int32 *synth_buffer, 122d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber int16 *outPcm, 123d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber int32 numChannels); 124d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 125d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 126d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#ifdef __cplusplus 127d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber} 128d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#endif 129d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 130d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber/*---------------------------------------------------------------------------- 131d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber; END 132d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber----------------------------------------------------------------------------*/ 133d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber#endif 134d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 135d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 136d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 137d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 138d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber 139