wvaudioencoder.h

00001 /* -*- Mode: C++ -*-
00002  * Worldvisions Weaver Software:
00003  *   Copyright (C) 1997-2003 Net Integration Technologies, Inc.
00004  *
00005  * Interface declaring additional methods required for a WvEncoder that
00006  * supports packetized audio formats.
00007  */
00008 #ifndef __WVAUDIOENCODER_H
00009 #define __WVAUDIOENCODER_H
00010 
00011 #include "wvtypedencoder.h"
00012 
00017 class WvAudioEncoder : public WvTypedEncoder<float, unsigned char>
00018 {
00019 public:
00020 
00025     virtual unsigned int channels() const = 0;
00026 
00031     virtual size_t samplesperframe() const = 0;
00032 };
00033 
00034 
00035 class WvAudioDecoder : public WvTypedEncoder<unsigned char, float>
00036 {
00037 public:
00038 
00043     virtual unsigned int channels() const = 0;
00044 
00049     virtual size_t samplesperframe() const = 0;
00050 
00057     virtual bool missing(OBuffer &outbuf) = 0;
00058 };
00059 
00060 
00061 class WvSimpleAudioEncoder : public WvAudioEncoder
00062 {
00063 public:
00064 
00065     WvSimpleAudioEncoder(unsigned int channels, unsigned int samplerate);
00066 
00067     virtual unsigned int channels() const { return _channels; }
00068 
00069     virtual size_t samplesperframe() const { return _samplesperframe; }
00070 
00071 protected:
00072 
00073     virtual bool _typedencode(IBuffer &inbuf, OBuffer &outbuf, bool flush);
00074 
00075     virtual bool _typedfinish(OBuffer &outbuf);
00076 
00077 private:
00078 
00079     unsigned int _channels;
00080     size_t _samplesperframe;
00081 };
00082 
00083 
00084 class WvSimpleAudioDecoder : public WvAudioDecoder
00085 {
00086 public:
00087 
00088     WvSimpleAudioDecoder(unsigned int channels, unsigned int samplerate);
00089 
00090     virtual unsigned int channels() const { return _channels; }
00091 
00092     virtual size_t samplesperframe() const { return _samplesperframe; }
00093 
00094     virtual bool missing(OBuffer &outbuf) { return false; }
00095 
00096 protected:
00097 
00098     virtual bool _typedencode(IBuffer &inbuf, OBuffer &outbuf, bool flush);
00099 
00100     virtual bool _typedfinish(OBuffer &outbuf);
00101 
00102 private:
00103 
00104     unsigned int _channels;
00105     size_t _samplesperframe;
00106 };
00107 
00108 
00109 #endif // __WVAUDIOENCODER_H

Generated on Thu May 25 21:51:02 2006 for WvStreams by  doxygen 1.4.6