1
0

epspecificconfig_c.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /***************************************************************************\
  2. *
  3. * (C) copyright Fraunhofer - IIS (2002)
  4. * All Rights Reserved
  5. *
  6. * $Header: /cvs/root/winamp/aacdec/incs/mp4dec_asc/epspecificconfig_c.h,v 1.3 2012/05/08 20:16:50 audiodsp Exp $
  7. * project : MPEG-4 Audio Decoder
  8. * contents/description: EP specific config interface
  9. *
  10. * This software and/or program is protected by copyright law and
  11. * international treaties. Any reproduction or distribution of this
  12. * software and/or program, or any portion of it, may result in severe
  13. * civil and criminal penalties, and will be prosecuted to the maximum
  14. * extent possible under law.
  15. *
  16. \***************************************************************************/
  17. #ifndef __EPSPECIFICCONFIG_C_H__
  18. #define __EPSPECIFICCONFIG_C_H__
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif /* __cplusplus */
  22. struct CSBitStream;
  23. typedef struct CEpClassConfig {
  24. unsigned int m_LengthEsc;
  25. unsigned int m_RateEsc;
  26. unsigned int m_CrcLengthEsc;
  27. unsigned int m_ConcatenateFlag;
  28. unsigned int m_FecType;
  29. unsigned int m_TerminationSwitch;
  30. unsigned int m_InterleaveSwitch;
  31. unsigned int m_ClassOptional;
  32. unsigned int m_NoBitsForLength;
  33. unsigned int m_ClassLength;
  34. unsigned int m_ClassRate;
  35. unsigned int m_ClassCrcLength;
  36. } CEpClassConfig, *CEpClassConfigPtr;
  37. typedef struct CPredSetConfig {
  38. unsigned int m_NoOfClasses;
  39. unsigned int m_ClassReorderedOutput;
  40. unsigned int *m_ClassOutputOrder;
  41. CEpClassConfig *m_EpClassConfig;
  42. } CPredSetConfig, *CPredSetConfigPtr;
  43. typedef struct CEPBuffer {
  44. unsigned char* m_pData;
  45. unsigned int m_noBytes;
  46. unsigned int m_noBits;
  47. } CEPBuffer, *CEPBufferPtr;
  48. typedef struct CEPSpecificConfig {
  49. unsigned int m_NoOfPredSets;
  50. unsigned int m_InterleaveType;
  51. unsigned int m_BitStuffing;
  52. unsigned int m_NoOfConcatenatedFrames;
  53. unsigned int m_HeaderProtection;
  54. unsigned int m_HeaderRate;
  55. unsigned int m_HeaderCrcLength;
  56. unsigned int m_RSFecCapability;
  57. CPredSetConfig *m_psc;
  58. CEPBuffer m_epTmpBuffer;
  59. } CEpSpecificConfig, *CEpSpecificConfigPtr;
  60. int EpSpecificConfig_Parse(CEpSpecificConfigPtr self, struct CSBitStream *bs);
  61. int EpSpecificConfig_Copy(CEpSpecificConfigPtr self, CEpSpecificConfigPtr epsc);
  62. int EpSpecificConfig_Compare(CEpSpecificConfigPtr self, CEpSpecificConfigPtr epsc);
  63. void EpSpecificConfig_Free(CEpSpecificConfigPtr self);
  64. #ifdef __cplusplus
  65. }
  66. #endif
  67. #endif