syntax.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: syntax.h,v 1.2 2005/11/01 21:41:43 gabest Exp $
  31. **/
  32. #ifndef __SYNTAX_H__
  33. #define __SYNTAX_H__
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37. #include "decoder.h"
  38. #include "bits.h"
  39. #define MAIN       1
  40. #define LC         2
  41. #define SSR        3
  42. #define LTP        4
  43. #define HE_AAC     5
  44. #define LD        23
  45. #define ER_LC     17
  46. #define ER_LTP    19
  47. #define DRM_ER_LC 27 /* special object type for DRM */
  48. /* header types */
  49. #define RAW        0
  50. #define ADIF       1
  51. #define ADTS       2
  52. /* SBR signalling */
  53. #define NO_SBR           0
  54. #define SBR_UPSAMPLED    1
  55. #define SBR_DOWNSAMPLED  2
  56. #define NO_SBR_UPSAMPLED 3
  57. /* DRM channel definitions */
  58. #define DRMCH_MONO          1
  59. #define DRMCH_STEREO        2
  60. #define DRMCH_SBR_MONO      3
  61. #define DRMCH_SBR_STEREO    4
  62. #define DRMCH_SBR_PS_STEREO 5
  63. /* First object type that has ER */
  64. #define ER_OBJECT_START 17
  65. /* Bitstream */
  66. #define LEN_SE_ID 3
  67. #define LEN_TAG   4
  68. #define LEN_BYTE  8
  69. #define EXT_FIL            0
  70. #define EXT_FILL_DATA      1
  71. #define EXT_DATA_ELEMENT   2
  72. #define EXT_DYNAMIC_RANGE 11
  73. #define ANC_DATA           0
  74. /* Syntax elements */
  75. #define ID_SCE 0x0
  76. #define ID_CPE 0x1
  77. #define ID_CCE 0x2
  78. #define ID_LFE 0x3
  79. #define ID_DSE 0x4
  80. #define ID_PCE 0x5
  81. #define ID_FIL 0x6
  82. #define ID_END 0x7
  83. #define ONLY_LONG_SEQUENCE   0x0
  84. #define LONG_START_SEQUENCE  0x1
  85. #define EIGHT_SHORT_SEQUENCE 0x2
  86. #define LONG_STOP_SEQUENCE   0x3
  87. #define ZERO_HCB       0
  88. #define FIRST_PAIR_HCB 5
  89. #define ESC_HCB        11
  90. #define QUAD_LEN       4
  91. #define PAIR_LEN       2
  92. #define NOISE_HCB      13
  93. #define INTENSITY_HCB2 14
  94. #define INTENSITY_HCB  15
  95. #define INVALID_SBR_ELEMENT 255
  96. int8_t GASpecificConfig(bitfile *ld, mp4AudioSpecificConfig *mp4ASC,
  97.                         program_config *pce);
  98. uint8_t adts_frame(adts_header *adts, bitfile *ld);
  99. void get_adif_header(adif_header *adif, bitfile *ld);
  100. void raw_data_block(NeAACDecHandle hDecoder, NeAACDecFrameInfo *hInfo,
  101.                     bitfile *ld, program_config *pce, drc_info *drc);
  102. uint8_t reordered_spectral_data(NeAACDecHandle hDecoder, ic_stream *ics, bitfile *ld,
  103.                                 int16_t *spectral_data);
  104. #ifdef DRM
  105. void DRM_aac_scalable_main_element(NeAACDecHandle hDecoder, NeAACDecFrameInfo *hInfo,
  106.                                    bitfile *ld, program_config *pce, drc_info *drc);
  107. #endif
  108. #ifdef __cplusplus
  109. }
  110. #endif
  111. #endif