1/*M/////////////////////////////////////////////////////////////////////////////////////// 2// 3// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. 4// 5// By downloading, copying, installing or using the software you agree to this license. 6// If you do not agree to this license, do not download, install, 7// copy or use the software. 8// 9// 10// License Agreement 11// For Open Source Computer Vision Library 12// 13// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. 14// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. 15// Third party copyrights are property of their respective owners. 16// 17// Redistribution and use in source and binary forms, with or without modification, 18// are permitted provided that the following conditions are met: 19// 20// * Redistribution's of source code must retain the above copyright notice, 21// this list of conditions and the following disclaimer. 22// 23// * Redistribution's in binary form must reproduce the above copyright notice, 24// this list of conditions and the following disclaimer in the documentation 25// and/or other materials provided with the distribution. 26// 27// * The name of the copyright holders may not be used to endorse or promote products 28// derived from this software without specific prior written permission. 29// 30// This software is provided by the copyright holders and contributors "as is" and 31// any express or implied warranties, including, but not limited to, the implied 32// warranties of merchantability and fitness for a particular purpose are disclaimed. 33// In no event shall the Intel Corporation or contributors be liable for any direct, 34// indirect, incidental, special, exemplary, or consequential damages 35// (including, but not limited to, procurement of substitute goods or services; 36// loss of use, data, or profits; or business interruption) however caused 37// and on any theory of liability, whether in contract, strict liability, 38// or tort (including negligence or otherwise) arising in any way out of 39// the use of this software, even if advised of the possibility of such damage. 40// 41//M*/ 42 43#ifndef __OPENCV_VIDEOSTAB_FRAME_SOURCE_HPP__ 44#define __OPENCV_VIDEOSTAB_FRAME_SOURCE_HPP__ 45 46#include <vector> 47#include "opencv2/core.hpp" 48 49namespace cv 50{ 51namespace videostab 52{ 53 54//! @addtogroup videostab 55//! @{ 56 57class CV_EXPORTS IFrameSource 58{ 59public: 60 virtual ~IFrameSource() {} 61 virtual void reset() = 0; 62 virtual Mat nextFrame() = 0; 63}; 64 65class CV_EXPORTS NullFrameSource : public IFrameSource 66{ 67public: 68 virtual void reset() {} 69 virtual Mat nextFrame() { return Mat(); } 70}; 71 72class CV_EXPORTS VideoFileSource : public IFrameSource 73{ 74public: 75 VideoFileSource(const String &path, bool volatileFrame = false); 76 77 virtual void reset(); 78 virtual Mat nextFrame(); 79 80 int width(); 81 int height(); 82 int count(); 83 double fps(); 84 85private: 86 Ptr<IFrameSource> impl; 87}; 88 89//! @} 90 91} // namespace videostab 92} // namespace cv 93 94#endif 95