mpeg2audio.hh
上传用户:aoeyumen
上传日期:2007-01-06
资源大小:3329k
文件大小:2k
源码类别:

DVD

开发平台:

Unix_Linux

  1. /*
  2.    File: mpeg2audio.hh
  3.    
  4.    By: Alex Theo de Jong
  5.    Created: Febraury 1996
  6.    Description:
  7.    MPEG2 Audio player. The class creates a threaded audio player that plays
  8.    audio on the speaker, headphones, or line-out.
  9.    Note:
  10.    Should work on SUN Sparc 5 and SUN Sparc 10, and Sparc 20 or SGI Indigo
  11.    and SGI Indy. It has been tested on SGI Indigo Impact and SGI Indy running
  12.    Irix 5.3 and SUN Sparc 20 running Solaris 2.4 . 
  13. */
  14. #ifndef __mpeg2audio_hh
  15. #define __mpeg2audio_hh
  16. #ifdef __GNUG__
  17. #pragma interface
  18. #endif
  19. #include "astream.hh"
  20. #include "crc.hh"
  21. #include "header.hh"
  22. #include "obuffer.hh"
  23. #include "synthesis_filter.hh"
  24. #include "subband.hh"
  25. #include "subband_layer_1.hh"
  26. #include "subband_layer_2.hh"
  27. class Mpeg2Audio {
  28.   AudioStream *stream;
  29.   Synchronization* sync;
  30.   Header *header;
  31.   Crc16 *crc;
  32.   Subband *subbands[32];
  33.   SynthesisFilter *filter1, *filter2;
  34.   Obuffer *buffer;
  35.   char *filename;
  36.   bool verbose_mode;
  37.   bool filter_check;
  38.   bool stdout_mode;
  39.   enum e_channels which_channels;
  40.   bool use_speaker;
  41.   bool use_headphone;
  42.   bool use_line_out;
  43.   bool use_own_scalefactor;
  44.   real scalefactor;
  45.   // data extracted from header of first frame:
  46.   uint32 layer;
  47.   e_mode mode;
  48.   e_sample_frequency sample_frequency;
  49.   int argc;
  50.   char** argv;
  51.   athr_t thread_id;
  52.   int terminate;  // action
  53.   int terminated; // inidication
  54.  protected:
  55.   static void* player(Mpeg2Audio* base);
  56.   static void* ac3_player(Mpeg2Audio* base);
  57.   void usage(const char* name);
  58.   int options();
  59.  public:
  60.   Mpeg2Audio(Mpeg2Buffer* input, Synchronization* s, int audio, int c, char** v);
  61.   ~Mpeg2Audio();
  62.   int play();
  63.   int stop(){ terminate=1; return (terminated); }  // check when thread is done
  64. };
  65. #endif // __mpeg2audio_hh