FAST  3.2.0
Framework for Heterogeneous Medical Image Computing and Visualization
MovieStreamer.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 #include <QObject>
5 
6 class QMediaPlayer;
7 class QThread;
8 
9 namespace fast {
10 
11 class Image;
12 
13 class MovieStreamerWorker;
14 
15 class FAST_EXPORT MovieStreamer : public Streamer {
17  public:
18  void setFilename(std::string filename);
19  std::string getFilename() const;
20  bool hasReachedEnd();
21  void addNewImageFrame(const uchar* data, int width, int height);
22  void setGrayscale(bool grayscale);
23  bool getGrayscale() const;
24  void setFinished(bool finished);
25  int getFramesAdded() const;
26  ~MovieStreamer();
27  void loadAttributes() override;
28  void addLastFrame();
29  private:
30  MovieStreamer();
31  void execute();
32  void generateStream() override {};
33 
34  std::string mFilename;
35  bool mGrayscale = true;
36  bool m_finished = false;
37  int64_t m_framesAdded = 0;
38  std::chrono::high_resolution_clock::time_point m_startTime;
39  QThread* thread;
40  MovieStreamerWorker* worker;
41  std::shared_ptr<Image> m_currentImage;
42 
43 };
44 
45 class VideoSurface;
46 
47 class MovieStreamerWorker : public QObject {
48  Q_OBJECT
49  public:
52  public Q_SLOTS:
53  void run();
54  Q_SIGNALS:
55  void finished();
56  void error(QString err);
57  private:
58  MovieStreamer* mStreamer;
59  std::unique_ptr<QMediaPlayer> m_player;
60  std::unique_ptr<VideoSurface> m_myVideoSurface;
61 };
62 
63 }
64 
fast::Streamer
Definition: Streamer.hpp:19
Streamer.hpp
fast
Definition: AffineTransformation.hpp:7
fast::MovieStreamerWorker::error
void error(QString err)
FAST_OBJECT
#define FAST_OBJECT(className)
Definition: Object.hpp:9
fast::MovieStreamerWorker::finished
void finished()
fast::MovieStreamerWorker::~MovieStreamerWorker
~MovieStreamerWorker()
fast::MovieStreamerWorker::MovieStreamerWorker
MovieStreamerWorker(MovieStreamer *streamer)
fast::MovieStreamer
Definition: MovieStreamer.hpp:15
fast::MovieStreamerWorker
Definition: MovieStreamer.hpp:47
uchar
unsigned char uchar
Definition: DataTypes.hpp:14
fast::MovieStreamerWorker::run
void run()