faac.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:3k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  * FAAC - Freeware Advanced Audio Coder
  3.  * Copyright (C) 2001 Menno Bakker
  4.  *
  5.  * This program is free software; you can redistribute it and/or modify
  6.  * it under the terms of the GNU General Public License as published by
  7.  * the Free Software Foundation; either version 2 of the License, or
  8.  * (at your option) any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  *
  19.  * $Id: faac.h,v 1.2 2002/02/25 22:26:43 dmackie Exp $
  20.  */
  21. #ifndef FAACLIB_H
  22. #define FAACLIB_H
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif /* __cplusplus */
  26. #ifdef WIN32
  27.   #pragma pack(push, 8)
  28.   #ifndef FAACAPI
  29.     #define FAACAPI __stdcall
  30.   #endif
  31. #else
  32.   #ifndef FAACAPI
  33.     #define FAACAPI
  34.   #endif
  35. #endif
  36. #define FAACENC_VERSION 1.0
  37. #define FAACENC_VERSIONB 0 /* If 1 this version is still in beta */
  38. /* MPEG ID's */
  39. #define MPEG2 1
  40. #define MPEG4 0
  41. /* AAC object types */
  42. #define MAIN 0
  43. #define LOW  1
  44. #define SSR  2
  45. #define LTP  3
  46. typedef struct faacEncConfiguration
  47. {
  48. /* MPEG version, 2 or 4 */
  49. unsigned int mpegVersion;
  50. /* AAC object type */
  51. unsigned int aacObjectType;
  52. /* Allow mid/side coding */
  53. unsigned int allowMidside;
  54. /* Use one of the channels as LFE channel */
  55. unsigned int useLfe;
  56. /* Use Temporal Noise Shaping */
  57. unsigned int useTns;
  58. /* bitrate / channel of AAC file */
  59. unsigned long bitRate;
  60. /* AAC file frequency bandwidth */
  61. unsigned int bandWidth;
  62. unsigned int useAdts;
  63. } faacEncConfiguration, *faacEncConfigurationPtr;
  64. typedef void *faacEncHandle;
  65. faacEncConfigurationPtr FAACAPI faacEncGetCurrentConfiguration(faacEncHandle hEncoder);
  66. int FAACAPI faacEncSetConfiguration (faacEncHandle hEncoder, faacEncConfigurationPtr config);
  67. faacEncHandle FAACAPI faacEncOpen(unsigned long sampleRate,
  68.   unsigned int numChannels,
  69.   unsigned long *inputSamples,
  70.   unsigned long *maxOutputBytes);
  71. int FAACAPI faacEncEncode(faacEncHandle hEncoder,
  72.   short *inputBuffer,
  73.   unsigned int samplesInput,
  74.   void *outputBuffer,
  75.   unsigned int bufferSize
  76.   );
  77. int FAACAPI faacEncClose(faacEncHandle hEncoder);
  78. #ifdef WIN32
  79.   #pragma pack(pop)
  80. #endif
  81. #ifdef __cplusplus
  82. }
  83. #endif /* __cplusplus */
  84. #endif /* FAACLIB_H */