• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • Examples
  • File List
  • File Members

VideoInputFfmpeg.h

Go to the documentation of this file.
00001 // VideoInputFfmpeg.h: Video input processing using Gstreamer
00002 // 
00003 //   Copyright (C) 2007, 2008, 2009, 2010 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 

Generated on Fri Mar 16 2012 15:46:13 for Gnash by  doxygen 1.7.1