Runs.
[dcpomatic.git] / src / lib / video_content.h
1 #ifndef DVDOMATIC_VIDEO_CONTENT_H
2 #define DVDOMATIC_VIDEO_CONTENT_H
3
4 #include "content.h"
5 #include "util.h"
6
7 class VideoDecoder;
8
9 class VideoContentProperty
10 {
11 public:
12         static int const VIDEO_LENGTH;
13         static int const VIDEO_SIZE;
14         static int const VIDEO_FRAME_RATE;
15 };
16
17 class VideoContent : public virtual Content
18 {
19 public:
20         VideoContent (boost::filesystem::path);
21
22         ContentVideoFrame video_length () const {
23                 boost::mutex::scoped_lock lm (_mutex);
24                 return _video_length;
25         }
26
27         libdcp::Size video_size () const {
28                 boost::mutex::scoped_lock lm (_mutex);
29                 return _video_size;
30         }
31         
32         float video_frame_rate () const {
33                 boost::mutex::scoped_lock lm (_mutex);
34                 return _video_frame_rate;
35         }
36
37 protected:
38         void take_from_video_decoder (boost::shared_ptr<VideoDecoder>);
39
40         ContentVideoFrame _video_length;
41
42 private:
43         libdcp::Size _video_size;
44         float _video_frame_rate;
45 };
46
47 #endif