1/* 2 * Copyright (c) 2011 Apple Inc. All rights reserved. 3 * 4 * @APPLE_APACHE_LICENSE_HEADER_START@ 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License") ; 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 * @APPLE_APACHE_LICENSE_HEADER_END@ 19 */ 20 21/* 22 File: alac_decoder.h 23*/ 24 25#ifndef ALAC_DECODER_H 26#define ALAC_DECODER_H 27 28#include <stdint.h> 29 30#include "ALACAudioTypes.h" 31 32typedef enum 33{ 34 false = 0, 35 ALAC_TRUE = 1 36} bool ; 37 38struct BitBuffer ; 39 40typedef struct alac_decoder 41{ 42 // decoding parameters (public for use in the analyzer) 43 ALACSpecificConfig mConfig ; 44 45 uint16_t mActiveElements ; 46 47 // decoding buffers 48 int32_t * mMixBufferU ; 49 int32_t * mMixBufferV ; 50 int32_t * mPredictor ; 51 uint16_t * mShiftBuffer ; // note: this points to mPredictor's memory but different 52 // variable for clarity and type difference 53} alac_decoder ; 54 55alac_decoder * alac_decoder_new (void) ; 56void alac_decoder_delete (alac_decoder *) ; 57 58int32_t alac_init (alac_decoder *p, void * inMagicCookie, uint32_t inMagicCookieSize) ; 59int32_t alac_decode (alac_decoder *, struct BitBuffer * bits, uint8_t * sampleBuffer, uint32_t numSamples, uint32_t numChannels, uint32_t * outNumSamples) ; 60 61#endif /* ALAC_DECODER_H */ 62