home *** CD-ROM | disk | FTP | other *** search
/ M.u.C.S. Disc 2000 / MUCS2000.iso / sound / mp2 / src / gem / mp2info.h < prev    next >
Encoding:
Text File  |  1996-11-21  |  2.1 KB  |  90 lines

  1. typedef struct
  2. {
  3.     unsigned int sync        : 12;
  4.     unsigned int id            : 1;
  5.     unsigned int layer        : 2;
  6.     unsigned int protection    : 1;
  7.     unsigned int bitrate    : 4;
  8.     unsigned int frequency    : 2;
  9.     unsigned int padding    : 1;
  10.     unsigned int private    : 1;
  11.     unsigned int mode        : 2;
  12.     unsigned int mode_ext    : 2;
  13.     unsigned int copyright    : 1;
  14.     unsigned int original    : 1;
  15.     unsigned int emphasis    : 2;
  16. } FRAME_HEADER;
  17.  
  18. #define ID_LOWER 0
  19. #define ID_NORMAL 1
  20.  
  21. #define LAYER_RESERVED 0
  22. #define LAYER_I 1
  23. #define LAYER_II 2
  24. #define LAYER_III 3
  25.  
  26. #define PROT_CRC 0
  27. #define PROT_NOCRC 1
  28.  
  29. #define PADDING_NO 0
  30. #define PADDING_ADD 1
  31.  
  32. #define MODE_STEREO 0
  33. #define MODE_JOINT 1
  34. #define MODE_DUAL 2
  35. #define MODE_MONO 3
  36.  
  37. #define MODE_EXT_SUB4 0
  38. #define MODE_EXT_SUB8 1
  39. #define MODE_EXT_SUB12 2
  40. #define MODE_EXT_SUB16 3
  41.  
  42. #define NO_COPYRIGHT 0
  43. #define COPYRIGHTED 1
  44.  
  45. #define COPY 0
  46. #define ORIGINAL 1
  47.  
  48. #define NO_EMPHASIS 0
  49. #define EMPHASIS_50_15 1
  50. #define EMPHASIS_RESERVED 2
  51. #define EMPHASIS_CCITT_J17 3
  52.  
  53. #ifdef IS_MP2INFO_C
  54. static long bitrates[2][3][16] =  /* [id][layer][bitrate] */
  55. {
  56.     { /* ID_LOWER */
  57.         { 0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L }, /* dummy layer */
  58.         { 0L,32000L,48000L,56000L,64000L,80000L,96000L,112000L,128000L,
  59.             144000L,160000L,176000L,192000L,224000L,256000L,-1L }, /* Layer I */
  60.         { 0L,8000L,16000L,24000L,32000L,40000L,48000L,56000L,64000L,
  61.             80000L,96000L,112000L,128000L,144000L,160000L,-1L }  /* Layer II */
  62.     },
  63.     { /* ID_NORMAL */
  64.         { 0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L }, /* dummy layer */
  65.         { 0L,32000L,64000L,96000L,128000L,160000L,192000L,224000L,
  66.             256000L,288000L,320000L,352000L,384000L,416000L,448000L,-1L }, /* Layer I */
  67.         { 0L,32000L,48000L,56000L,64000L,80000L,96000L,112000L,128000L,
  68.             160000L,192000L,224000L,256000L,320000L,384000L,-1L }  /* Layer II */
  69.     }
  70. };
  71.  
  72. static long frequencies[2][4] =  /* [id][frequency] */
  73. {
  74.     { 22050L , 24000L , 16000L , 0L }, /* ID_LOWER */
  75.     { 44100L , 48000L , 32000L , 0L }  /* ID_NORMAL */
  76. };
  77. #endif /* IS_MP2INFO_C */
  78.  
  79. typedef struct
  80. {
  81.     long bitrate,sample_frequency,filelength,timelength;
  82. } MP2INFO;
  83.  
  84. #define MP2_NOERR    0
  85. #define MP2ERR_SYNC  1
  86. #define MP2ERR_MONO  2
  87. #define MP2ERR_CRC   3
  88. #define MP2ERR_OTHER 42
  89.  
  90.