Gnash  0.8.11dev
MediaHandlerFfmpeg.h
Go to the documentation of this file.
1 // MediaHandlerFfmpeg.h: FFMPEG media handler, for Gnash
2 //
3 // Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012
4 // Free Software Foundation, Inc.
5 //
6 // This program is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 3 of the License, or
9 // (at your option) any later version.
10 //
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software
18 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 
20 #ifndef GNASH_MEDIAHANDLERFFMPEG_H
21 #define GNASH_MEDIAHANDLERFFMPEG_H
22 
23 #include "MediaHandler.h" // for inheritance
24 
25 #include <vector>
26 #include <memory>
27 
28 namespace gnash {
29 namespace media {
30 
32 //
41 namespace ffmpeg {
42 
45 {
46 public:
47 
48  std::string description() const;
49 
50  virtual std::auto_ptr<MediaParser>
51  createMediaParser(std::auto_ptr<IOChannel> stream);
52 
53  virtual std::auto_ptr<VideoDecoder>
54  createVideoDecoder(const VideoInfo& info);
55 
56  virtual std::auto_ptr<VideoConverter>
58  ImgBuf::Type4CC dstFormat);
59 
60  virtual std::auto_ptr<AudioDecoder>
61  createAudioDecoder(const AudioInfo& info);
62 
63  virtual size_t getInputPaddingSize() const;
64 
65  virtual VideoInput* getVideoInput(size_t index);
66 
67  virtual AudioInput* getAudioInput(size_t index);
68 
69  virtual void cameraNames(std::vector<std::string>& names) const;
70 
71 };
72 
73 
74 } // gnash.media.ffmpeg namespace
75 } // gnash.media namespace
76 } // namespace gnash
77 
78 #endif