Gnash 0.8.10dev
|
00001 // VideoInputFfmpeg.h: Video input processing using Gstreamer 00002 // 00003 // Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. 00004 // 00005 // This program is free software; you can redistribute it and/or modify 00006 // it under the terms of the GNU General Public License as published by 00007 // the Free Software Foundation; either version 3 of the License, or 00008 // (at your option) any later version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with this program; if not, write to the Free Software 00017 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00018 00019 #ifndef GNASH_VIDEOINPUTFFMPEG_H 00020 #define GNASH_VIDEOINPUTFFMPEG_H 00021 00022 #include <vector> 00023 #include <boost/cstdint.hpp> // for C99 int types 00024 #include <vector> 00025 #include "VideoInput.h" 00026 00027 namespace gnash { 00028 namespace media { 00029 namespace ffmpeg { 00030 00031 class VideoInputFfmpeg : public VideoInput 00032 { 00033 public: 00034 00036 // 00039 VideoInputFfmpeg(); 00040 00042 virtual ~VideoInputFfmpeg(); 00043 00044 static void getNames(std::vector<std::string>& /*names*/) {} 00045 00047 // 00050 double activityLevel () const { return _activityLevel; } 00051 00053 // 00055 size_t bandwidth() const { return _bandwidth; } 00056 00057 void setBandwidth(size_t bandwidth) { 00058 _bandwidth = bandwidth; 00059 } 00060 00062 // 00064 double currentFPS() const { return _currentFPS; } 00065 00067 // 00069 double fps() const { return _fps; } 00070 00072 size_t height() const { return _height; } 00073 00075 size_t width() const { return _width; } 00076 00078 size_t index() const { return _index; } 00079 00081 // 00086 void requestMode(size_t width, size_t height, double fps, bool favorArea); 00087 00089 void setMotionLevel(int m) { _motionLevel = m; } 00090 00092 int motionLevel() const { return _motionLevel; } 00093 00095 void setMotionTimeout(int m) { _motionTimeout = m; } 00096 00098 int motionTimeout() const { return _motionTimeout; } 00099 00100 void mute(bool m) { _muted = m; } 00101 bool muted() const { return _muted; } 00102 00104 // 00106 const std::string& name() const { return _name; } 00107 00109 void setQuality(int q) { _quality = q; } 00110 00112 int quality() const { return _quality; } 00113 00118 bool play(); 00119 00123 bool stop(); 00124 00125 private: 00126 00130 00133 double _activityLevel; 00134 00137 size_t _bandwidth; 00138 00141 double _currentFPS; 00142 00144 double _fps; 00145 00148 size_t _height; 00149 00152 size_t _width; 00153 00155 size_t _index; 00156 00158 int _motionLevel; 00159 00161 int _motionTimeout; 00162 00165 bool _muted; 00166 00168 std::string _name; 00169 00171 int _quality; 00172 00173 }; 00174 00175 00176 } // ffmpeg namespace 00177 } // media namespace 00178 } // gnash namespace 00179 00180 #endif