decoder.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:4k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /*
  2. ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
  3. ** Copyright (C) 2003-2005 M. Bakker, Ahead Software AG, http://www.nero.com
  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. ** Any non-GPL usage of this software or parts of this software is strictly
  20. ** forbidden.
  21. **
  22. ** Software using this code must display the following message visibly in the
  23. ** software:
  24. ** "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Ahead Software, www.nero.com"
  25. ** in, for example, the about-box or help/startup screen.
  26. **
  27. ** Commercial non-GPL licensing of this software is possible.
  28. ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
  29. **
  30. ** $Id: decoder.h,v 1.2 2005/11/01 21:41:43 gabest Exp $
  31. **/
  32. #ifndef __DECODER_H__
  33. #define __DECODER_H__
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37. #ifdef _WIN32
  38.   #pragma pack(push, 8)
  39.   #ifndef NEAACDECAPI
  40.     #define NEAACDECAPI __cdecl
  41.   #endif
  42. #else
  43.   #ifndef NEAACDECAPI
  44.     #define NEAACDECAPI
  45.   #endif
  46. #endif
  47. /* library output formats */
  48. #define FAAD_FMT_16BIT  1
  49. #define FAAD_FMT_24BIT  2
  50. #define FAAD_FMT_32BIT  3
  51. #define FAAD_FMT_FLOAT  4
  52. #define FAAD_FMT_FIXED  FAAD_FMT_FLOAT
  53. #define FAAD_FMT_DOUBLE 5
  54. #define LC_DEC_CAP            (1<<0)
  55. #define MAIN_DEC_CAP          (1<<1)
  56. #define LTP_DEC_CAP           (1<<2)
  57. #define LD_DEC_CAP            (1<<3)
  58. #define ERROR_RESILIENCE_CAP  (1<<4)
  59. #define FIXED_POINT_CAP       (1<<5)
  60. #define FRONT_CHANNEL_CENTER (1)
  61. #define FRONT_CHANNEL_LEFT   (2)
  62. #define FRONT_CHANNEL_RIGHT  (3)
  63. #define SIDE_CHANNEL_LEFT    (4)
  64. #define SIDE_CHANNEL_RIGHT   (5)
  65. #define BACK_CHANNEL_LEFT    (6)
  66. #define BACK_CHANNEL_RIGHT   (7)
  67. #define BACK_CHANNEL_CENTER  (8)
  68. #define LFE_CHANNEL          (9)
  69. #define UNKNOWN_CHANNEL      (0)
  70. char* NEAACDECAPI NeAACDecGetErrorMessage(uint8_t errcode);
  71. uint32_t NEAACDECAPI NeAACDecGetCapabilities(void);
  72. NeAACDecHandle NEAACDECAPI NeAACDecOpen(void);
  73. NeAACDecConfigurationPtr NEAACDECAPI NeAACDecGetCurrentConfiguration(NeAACDecHandle hDecoder);
  74. uint8_t NEAACDECAPI NeAACDecSetConfiguration(NeAACDecHandle hDecoder,
  75.                                              NeAACDecConfigurationPtr config);
  76. /* Init the library based on info from the AAC file (ADTS/ADIF) */
  77. int32_t NEAACDECAPI NeAACDecInit(NeAACDecHandle hDecoder,
  78.                                  uint8_t *buffer,
  79.                                  uint32_t buffer_size,
  80.                                  uint32_t *samplerate,
  81.                                  uint8_t *channels);
  82. /* Init the library using a DecoderSpecificInfo */
  83. int8_t NEAACDECAPI NeAACDecInit2(NeAACDecHandle hDecoder, uint8_t *pBuffer,
  84.                                  uint32_t SizeOfDecoderSpecificInfo,
  85.                                  uint32_t *samplerate, uint8_t *channels);
  86. /* Init the library for DRM */
  87. int8_t NEAACDECAPI NeAACDecInitDRM(NeAACDecHandle *hDecoder, uint32_t samplerate,
  88.                                    uint8_t channels);
  89. void NEAACDECAPI NeAACDecClose(NeAACDecHandle hDecoder);
  90. void NEAACDECAPI NeAACDecPostSeekReset(NeAACDecHandle hDecoder, int32_t frame);
  91. void* NEAACDECAPI NeAACDecDecode(NeAACDecHandle hDecoder,
  92.                                  NeAACDecFrameInfo *hInfo,
  93.                                  uint8_t *buffer,
  94.                                  uint32_t buffer_size);
  95. void* NEAACDECAPI NeAACDecDecode2(NeAACDecHandle hDecoder,
  96.                                   NeAACDecFrameInfo *hInfo,
  97.                                   uint8_t *buffer, uint32_t buffer_size,
  98.                                   void **sample_buffer, uint32_t sample_buffer_size);
  99. #ifdef _WIN32
  100.   #pragma pack(pop)
  101. #endif
  102. #ifdef __cplusplus
  103. }
  104. #endif
  105. #endif