mpa_frame_header.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:1k
源码类别:

Symbian

开发平台:

Visual C++

  1. /*============================================================================*
  2.  *
  3.  * (c) 1995-2002 RealNetworks, Inc. Patents pending. All rights reserved.
  4.  *
  5.  *============================================================================*/
  6.  
  7. #ifndef MPA_FRAME_HEADER_H__
  8. #define MPA_FRAME_HEADER_H__
  9. #define MPA_FRAME_HDR_SZ 4     // size of packed frame header
  10. #define MPA_SAMPLES_PER_FRAME 1152  // all frames contain 1152 samples
  11. #define MPA_VERSION1 3 // MPEG1 version is 11
  12. #define MPA_VERSION2 2 // MPEG2 version is 10
  13. #define MPA_VERSION_RESERVED 1 // Reserved version is 01
  14. #define MPA_VERSION25 0 // MPEG2.5 version is 00
  15. #define MPA_LAYER1 3  // Layer I id is 11
  16. #define MPA_LAYER2 2 // Layer II id is 10
  17. #define MPA_LAYER3 1 // Layer III id is 01
  18. #define MPA_LAYER_RESERVED 0 // Reserved Layer id is 00
  19. class MPAFrameHeader 
  20. {
  21. public:
  22.     int m_version;
  23.     int m_layer;
  24.     int m_hasCRC;
  25.     int m_bitRate;
  26.     int m_sampleRate;
  27.     int m_pad;
  28.     int m_chnlMode;
  29.     int m_chnlModeEx;
  30.     int m_frameSize;
  31.     int m_samplesPerFrame;
  32.     int m_channels;
  33.     static bool IsSync(const unsigned char* p);
  34.     bool Unpack(const unsigned char* p);
  35.     //void DumpFrameInfo() const;
  36. private:
  37.     void ComputeFrameSize();
  38. };
  39. #endif // MPA_FRAME_HEADER_H__