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

DVD

开发平台:

Unix_Linux

  1. #ifndef SUBBAND_LAYER_1_H
  2. #define SUBBAND_LAYER_1_H
  3. // class for layer I subbands in single channel mode:
  4. class SubbandLayer1 : public Subband {
  5.  protected:
  6.   uint32 subbandnumber;
  7.   uint32 samplenumber;
  8.   uint32 allocation;
  9.   uint32 scalefactor;
  10.   uint32 samplelength;
  11.   real  sample;
  12.   real  factor, offset;
  13.  public:
  14.   SubbandLayer1(uint32 subbandnbr) : subbandnumber(subbandnbr), samplenumber(0) {}
  15.   void read_allocation (AudioStream *, Header *, Crc16 *);
  16.   void read_scalefactor (AudioStream *, Header *);
  17.   bool read_sampledata (AudioStream *);
  18.   bool put_next_sample (e_channels, SynthesisFilter *, SynthesisFilter *);
  19. };
  20. // class for layer I subbands in joint stereo mode:
  21. class SubbandLayer1IntensityStereo : public SubbandLayer1 {
  22.  protected:
  23.   uint32 channel2_scalefactor;
  24.  public:
  25.   SubbandLayer1IntensityStereo(uint32 subbandnbr) : SubbandLayer1(subbandnbr){}
  26.   void read_allocation(AudioStream *stream, Header *header, Crc16 *crc){
  27.     SubbandLayer1::read_allocation (stream, header, crc);
  28.   }
  29.   void read_scalefactor (AudioStream *, Header *);
  30.   bool read_sampledata (AudioStream *stream){
  31.     return SubbandLayer1::read_sampledata(stream);
  32.   }
  33.   bool put_next_sample (e_channels, SynthesisFilter *, SynthesisFilter *);
  34. };
  35. // class for layer I subbands in stereo mode:
  36. class SubbandLayer1Stereo : public SubbandLayer1{
  37.  protected:
  38.   uint32 channel2_allocation;
  39.   uint32 channel2_scalefactor;
  40.   uint32 channel2_samplelength;
  41.   real  channel2_sample;
  42.   real  channel2_factor, channel2_offset;
  43.  public:
  44.   SubbandLayer1Stereo(uint32 subbandnbr) : SubbandLayer1(subbandnbr){}
  45.   void read_allocation(AudioStream *, Header *, Crc16 *);
  46.   void read_scalefactor(AudioStream *, Header *);
  47.   bool read_sampledata(AudioStream *);
  48.   bool put_next_sample(e_channels, SynthesisFilter *, SynthesisFilter *);
  49. };
  50. #endif