SLProject  4.3.020
A platform independent 3D computer graphics framework for desktop OS, Android, iOS and online in web browsers
SENSVideoStream.h
Go to the documentation of this file.
1 #ifndef SENS_VIDEOSTREAM_H
2 #define SENS_VIDEOSTREAM_H
3 
4 #include <opencv2/opencv.hpp>
5 #include "SENSFrame.h"
6 #include "SENSCalibration.h"
7 
9 {
10 public:
11  SENSVideoStream(const std::string& videoFileName, bool videoLoops, bool mirrorH, bool mirrorV, float targetFps = 0);
16 
17  cv::Size getFrameSize() const { return _videoFrameSize; }
18 
19  const std::string& videoFilename() const { return _videoFileName; }
20  int nextFrameIndex() const { return (int)_cap.get(cv::CAP_PROP_POS_FRAMES); }
21  int frameCount() const { return _frameCount; }
22  float fps() const { return _fps; }
23 
24  bool isOpened() const { return _cap.isOpened(); }
25 
26  const SENSCalibration* const calibration() const
27  {
28  return _calibration.get();
29  }
30 
31  void setCalibration(SENSCalibration calibration, bool buildUndistortionMaps);
32  void guessAndSetCalibration(float fovGuess);
33 
34 private:
35  void moveCapturePosition(int n);
36 
37  cv::VideoCapture _cap;
38  cv::Size2i _videoFrameSize;
39  int _frameCount = 0;
40  std::string _videoFileName;
41 
42  bool _videoLoops = false;
43  float _fps = 0.f;
44  float _targetFps;
45 
46  bool _mirrorH = false;
47  bool _mirrorV = false;
48 
49  std::unique_ptr<SENSCalibration> _calibration;
50 };
51 
52 #endif //SENS_VIDEOSTREAM_H
std::shared_ptr< SENSFrame > SENSFramePtr
Definition: SENSFrame.h:73
int frameCount() const
cv::Size2i _videoFrameSize
SENSFramePtr grabPreviousFrame()
const SENSCalibration *const calibration() const
void setCalibration(SENSCalibration calibration, bool buildUndistortionMaps)
SENSFramePtr grabNextFrame()
void guessAndSetCalibration(float fovGuess)
int nextFrameIndex() const
cv::VideoCapture _cap
void moveCapturePosition(int n)
bool isOpened() const
std::string _videoFileName
float fps() const
cv::Size getFrameSize() const
SENSFramePtr grabNextResampledFrame()
SENSVideoStream(const std::string &videoFileName, bool videoLoops, bool mirrorH, bool mirrorV, float targetFps=0)
const std::string & videoFilename() const
SENSFramePtr grabPreviousResampledFrame()
std::unique_ptr< SENSCalibration > _calibration