aboutsummaryrefslogtreecommitdiff
path: root/Src/aacdec/incs/mp4AudioDecIfc.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/aacdec/incs/mp4AudioDecIfc.h')
-rw-r--r--Src/aacdec/incs/mp4AudioDecIfc.h160
1 files changed, 160 insertions, 0 deletions
diff --git a/Src/aacdec/incs/mp4AudioDecIfc.h b/Src/aacdec/incs/mp4AudioDecIfc.h
new file mode 100644
index 00000000..e65dcce4
--- /dev/null
+++ b/Src/aacdec/incs/mp4AudioDecIfc.h
@@ -0,0 +1,160 @@
+/***************************************************************************\
+ *
+ * (C) copyright Fraunhofer - IIS (2001)
+ * All Rights Reserved
+ *
+ * $Header: /cvs/root/winamp/aacdec/incs/mp4AudioDecIfc.h,v 1.3 2012/05/08 20:16:49 audiodsp Exp $
+ * project : MPEG-4 Audio Decoder
+ * contents/description: interface to mpeg-4 audio decoder
+ *
+ * This software and/or program is protected by copyright law and
+ * international treaties. Any reproduction or distribution of this
+ * software and/or program, or any portion of it, may result in severe
+ * civil and criminal penalties, and will be prosecuted to the maximum
+ * extent possible under law.
+ *
+\***************************************************************************/
+
+#ifndef __MP4AUDIODECIFC_H__
+#define __MP4AUDIODECIFC_H__
+
+
+#include "mp4dec_helpers/err_code.h"
+
+#include "mp4dec_asc/audiospecificconfig_c.h"
+#include "mp4dec_helpers/usrparam.h"
+
+#include "mp4dec_helpers/aubuffer_c.h"
+#include "mp4dec_helpers/cubuffer_c.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#if defined(WIN32) || defined(WIN64)
+ #pragma pack(push, 8)
+#endif
+
+
+/* data types */
+
+typedef struct mp4AudioDecoder_VersionInfo {
+ char dateTime[80];
+ char versionNo[40];
+ char options[1024];
+ char options_ext[4096];
+} mp4AudioDecoder_VersionInfo;
+
+
+/* Opaque declaration of decoder handle */
+struct mp4AudioDecoder;
+typedef struct mp4AudioDecoder* mp4AudioDecoderHandle;
+
+
+/* mandatory decoder functions */
+
+mp4AudioDecoderHandle MP4AUDIODECAPI mp4AudioDecoder_Create(
+ const struct CSAudioSpecificConfig * const asc[],
+ const unsigned int noOfLayers
+ );
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_SetParam(
+ const mp4AudioDecoderHandle self,
+ const unsigned int param,
+ const float value
+ );
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_DecodeFrame(
+ mp4AudioDecoderHandle self,
+ struct CAccessUnit* auBuffer[],
+ struct CCompositionUnit* cuBuffer
+ );
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_Destroy(mp4AudioDecoderHandle* self);
+
+
+/* utility functions */
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_Reset(
+ mp4AudioDecoderHandle self,
+ const unsigned int param,
+ int value
+ );
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_Flush(
+ mp4AudioDecoderHandle self,
+ struct CCompositionUnit* cuBuffer
+ );
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_GetBufferFullness(
+ const mp4AudioDecoderHandle self,
+ const unsigned int layer,
+ unsigned int* bufferfullness
+ );
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_GetSamplesPerFrame(
+ const mp4AudioDecoderHandle self,
+ unsigned int* spf
+ );
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_SetOutputLayer(
+ const mp4AudioDecoderHandle self,
+ const unsigned int outputLayer
+ );
+
+/* MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_SetSpeedPitch( */
+/* const mp4AudioDecoderHandle self, */
+/* const float speedChangeFactor, */
+/* const float pitchChangeFactor */
+/* ); */
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_GetLastError(const mp4AudioDecoderHandle self);
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_GetLibraryVersion(mp4AudioDecoder_VersionInfo* versionInfo);
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_ascParse(
+ const unsigned char* decSpecificInfoBuf,
+ const unsigned int decSpecificInfoBuf_len,
+ struct CSAudioSpecificConfig* asc
+ );
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_ascParseStream(
+ const unsigned char* decSpecificInfoBuf,
+ struct CSAudioSpecificConfig* asc,
+ int* bitsRead
+ );
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_ascParseExt(
+ const unsigned char* const decSpecificInfoBuf[],
+ const unsigned int decSpecificInfoBuf_len[],
+ const unsigned int avgBitrate[],
+ const unsigned int streams,
+ unsigned int* layers, /* out */
+ struct CSAudioSpecificConfig* asc[], /* out */
+ unsigned int streamsPerLayer[] /* out */
+ );
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_ascPrint(
+ unsigned int layers, /* in */
+ struct CSAudioSpecificConfig* asc[], /* in */
+ unsigned int stringLen, /* in */
+ unsigned char string[] /* ptr in, content out */
+ );
+
+MP4_RESULT MP4AUDIODECAPI mp4AudioDecoder_GetPcmWidth(
+ const unsigned char* const decSpecificInfoBuf[],
+ const unsigned int decSpecificInfoBuf_len[],
+ const unsigned int streams,
+ unsigned int* pcmwidth /* out */
+ );
+
+
+#if defined(WIN32) || defined(WIN64)
+ #pragma pack(pop)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MP4AUDIODECIFC_H__ */