Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FFStream.h
Go to the documentation of this file.
1 //
2 // C++ Interface: Audio::Codec
3 //
4 #ifndef __AUDIO_FF_STREAM_H__INCLUDED__
5 #define __AUDIO_FF_STREAM_H__INCLUDED__
6 
7 #ifdef HAVE_FFMPEG
8 
9 #include "../Stream.h"
10 
11 #include "vsfilesystem.h"
12 
13 namespace Audio {
14 
15  namespace __impl {
16  struct FFData;
17  };
18 
29  class FFStream : public Stream
30  {
31  private:
32  __impl::FFData *ffData;
33 
34  public:
41  FFStream(const std::string& path, int streamIndex = 0, VSFileSystem::VSFileType type = VSFileSystem::UnknownFile) throw(Exception);
42 
43  virtual ~FFStream();
44 
45  protected:
46 
48  virtual double getLengthImpl() const throw(Exception);
49 
51  virtual double getPositionImpl() const throw();
52 
54  virtual void seekImpl(double position) throw(Exception);
55 
57  virtual void getBufferImpl(void *&buffer, unsigned int &bufferSize) throw(Exception);
58 
60  virtual void nextBufferImpl() throw(Exception);
61  };
62 
63 };
64 
65 #endif//HAVE_FFMPEG
66 
67 #endif//__AUDIO_FF_STREAM_H__INCLUDED__