#ifndef INPUT_VIDEO_FILE_MODULE_H
#define INPUT_VIDEO_FILE_MODULE_H

#include "InputFrameProviderIface.h"
#include <string>
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"

class InputVideoFileModule : public InputFrameProviderIface
{
public:
  InputVideoFileModule(const std::string& videoPath);
  ~InputVideoFileModule();

  bool getNextFrame(cv::Mat&);

  unsigned int getNbFrames(){		return mNumberOfFrame;}

  bool isOpen() const { return mInit;}

  void setFrameNumber(const unsigned int& frameNumber);

  const cv::Size& getSize() const { return mSize;}
	
private:
  cv::Size mSize;
  cv::VideoCapture mVideoCapture;
  bool mInit;
  int mNumberOfFrame;
};

#endif
