ref: 422613bd5a7d69ab04343dc8338f5de22a4363ab
parent: d9eda9b499eac3de454918497990760fb46a89f0
author: knik <knik>
date: Wed Sep 24 12:29:31 EDT 2003
config struct definition moved to faaccfg.h
--- a/include/faac.h
+++ b/include/faac.h
@@ -16,18 +16,16 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * $Id: faac.h,v 1.29 2003/08/02 11:32:10 stux Exp $
+ * $Id: faac.h,v 1.30 2003/09/24 16:29:31 knik Exp $
*/
-#ifndef FAACLIB_H
-#define FAACLIB_H
-
+#ifndef _FAAC_H_
+#define _FAAC_H_
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifdef WIN32
- #pragma pack(push, 1)
#ifndef FAACAPI
#define FAACAPI __stdcall
#endif
@@ -37,87 +35,15 @@
#endif
#endif
-#define FAAC_CFG_VERSION 102
+#pragma pack(push, 1)
-/* MPEG ID's */
-#define MPEG2 1
-#define MPEG4 0
-
-/* AAC object types */
-#define MAIN 0
-#define LOW 1
-#define SSR 2
-#define LTP 3
-
-/* Input Formats */
-#define FAAC_INPUT_NULL 0
-#define FAAC_INPUT_16BIT 1
-#define FAAC_INPUT_24BIT 2
-#define FAAC_INPUT_32BIT 3
-#define FAAC_INPUT_FLOAT 4
-
-typedef struct faacEncConfiguration
-{
- /* config version */
- /*const*/ int version;
-
- /* library version */
- /*const*/ char *name;
-
- /* copyright string */
- char *copyright;
-
- /* MPEG version, 2 or 4 */
- unsigned int mpegVersion;
-
- /* AAC object type */
- unsigned int aacObjectType;
-
- /* Allow mid/side coding */
- unsigned int allowMidside;
-
- /* Use one of the channels as LFE channel */
- unsigned int useLfe;
-
- /* Use Temporal Noise Shaping */
- unsigned int useTns;
-
- /* bitrate / channel of AAC file */
- unsigned long bitRate;
-
- /* AAC file frequency bandwidth */
- unsigned int bandWidth;
-
- /* Quantizer quality */
- unsigned long quantqual;
-
- /*
- Bitstream output format, meaning:
- 0 - Raw
- 1 - ADTS
- /AV
- */
- unsigned int outputFormat;
-
- // psychoacoustic model list
- /*const*/ struct {
+typedef struct {
void *ptr;
char *name;
- } *psymodellist;
- // selected index in psymodellist
- unsigned int psymodelidx;
+} psymodellist_t;
- /*
- PCM Sample Input Format
- 0 FAAC_INPUT_NULL invalid, signifies a misconfigured config
- 1 FAAC_INPUT_16BIT native endian 16bit
- 2 FAAC_INPUT_24BIT native endian 24bit in 24 bits (not implemented)
- 3 FAAC_INPUT_32BIT native endian 24bit in 32 bits (DEFAULT)
- 4 FAAC_INPUT_FLOAT 32bit floating point
- */
- unsigned int inputFormat;
+#include "faaccfg.h"
-} faacEncConfiguration, *faacEncConfigurationPtr;
typedef void *faacEncHandle;
@@ -143,12 +69,10 @@
int FAACAPI faacEncClose(faacEncHandle hEncoder);
-#ifdef WIN32
- #pragma pack(pop)
-#endif
+#pragma pack(pop)
#ifdef __cplusplus
}
#endif /* __cplusplus */
-#endif /* FAACLIB_H */
\ No newline at end of file
+#endif /* _FAAC_H_ */
--- /dev/null
+++ b/include/faaccfg.h
@@ -1,0 +1,110 @@
+/*
+ * FAAC - Freeware Advanced Audio Coder
+ * Copyright (C) 2001 Menno Bakker
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * $Id: faaccfg.h,v 1.1 2003/09/24 16:29:31 knik Exp $
+ */
+
+#ifndef _FAACCFG_H_
+#define _FAACCFG_H_
+
+#define FAAC_CFG_VERSION 103
+
+/* MPEG ID's */
+#define MPEG2 1
+#define MPEG4 0
+
+/* AAC object types */
+#define MAIN 0
+#define LOW 1
+#define SSR 2
+#define LTP 3
+
+/* Input Formats */
+#define FAAC_INPUT_NULL 0
+#define FAAC_INPUT_16BIT 1
+#define FAAC_INPUT_24BIT 2
+#define FAAC_INPUT_32BIT 3
+#define FAAC_INPUT_FLOAT 4
+
+#define SHORTCTL_NORMAL 0
+#define SHORTCTL_NOSHORT 1
+#define SHORTCTL_NOLONG 2
+
+#pragma pack(push, 1)
+typedef struct faacEncConfiguration
+{
+ /* config version */
+ int version;
+
+ /* library version */
+ char *name;
+
+ /* copyright string */
+ char *copyright;
+
+ /* MPEG version, 2 or 4 */
+ unsigned int mpegVersion;
+
+ /* AAC object type */
+ unsigned int aacObjectType;
+
+ /* Allow mid/side coding */
+ unsigned int allowMidside;
+
+ /* Use one of the channels as LFE channel */
+ unsigned int useLfe;
+
+ /* Use Temporal Noise Shaping */
+ unsigned int useTns;
+
+ /* bitrate / channel of AAC file */
+ unsigned long bitRate;
+
+ /* AAC file frequency bandwidth */
+ unsigned int bandWidth;
+
+ /* Quantizer quality */
+ unsigned long quantqual;
+
+ /* Bitstream output format (0 = Raw; 1 = ADTS) */
+ unsigned int outputFormat;
+
+ /* psychoacoustic model list */
+ psymodellist_t *psymodellist;
+
+ /* selected index in psymodellist */
+ unsigned int psymodelidx;
+
+ /*
+ PCM Sample Input Format
+ 0 FAAC_INPUT_NULL invalid, signifies a misconfigured config
+ 1 FAAC_INPUT_16BIT native endian 16bit
+ 2 FAAC_INPUT_24BIT native endian 24bit in 24 bits (not implemented)
+ 3 FAAC_INPUT_32BIT native endian 24bit in 32 bits (DEFAULT)
+ 4 FAAC_INPUT_FLOAT 32bit floating point
+ */
+ unsigned int inputFormat;
+
+ /* block type enforcing (SHORTCTL_NORMAL/SHORTCTL_NOSHORT/SHORTCTL_NOLONG) */
+ int shortctl;
+
+} faacEncConfiguration, *faacEncConfigurationPtr;
+
+#pragma pack(pop)
+
+#endif /* _FAACCFG_H_ */