projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
No need to rebuild pieces when only crop or ratio changes.
[dcpomatic.git]
/
src
/
lib
/
video_content.h
diff --git
a/src/lib/video_content.h
b/src/lib/video_content.h
index 44f1c28472c08cc1885a4c021a723b9a6a31bc2b..36920977661169b0ccb1c1fb0d758cc4794a248e 100644
(file)
--- a/
src/lib/video_content.h
+++ b/
src/lib/video_content.h
@@
-21,9
+21,9
@@
#define DCPOMATIC_VIDEO_CONTENT_H
#include "content.h"
#define DCPOMATIC_VIDEO_CONTENT_H
#include "content.h"
-#include "
util
.h"
+#include "
colour_conversion
.h"
-class Video
Decod
er;
+class Video
Examin
er;
class Ratio;
class VideoContentProperty
class Ratio;
class VideoContentProperty
@@
-31,22
+31,27
@@
class VideoContentProperty
public:
static int const VIDEO_SIZE;
static int const VIDEO_FRAME_RATE;
public:
static int const VIDEO_SIZE;
static int const VIDEO_FRAME_RATE;
+ static int const VIDEO_FRAME_TYPE;
static int const VIDEO_CROP;
static int const VIDEO_RATIO;
static int const VIDEO_CROP;
static int const VIDEO_RATIO;
+ static int const COLOUR_CONVERSION;
};
class VideoContent : public virtual Content
{
public:
};
class VideoContent : public virtual Content
{
public:
- VideoContent (boost::shared_ptr<const Film>, Time, ContentVideoFrame);
+ typedef int Frame;
+
+ VideoContent (boost::shared_ptr<const Film>, Time, VideoContent::Frame);
VideoContent (boost::shared_ptr<const Film>, boost::filesystem::path);
VideoContent (boost::shared_ptr<const Film>, boost::shared_ptr<const cxml::Node>);
VideoContent (boost::shared_ptr<const Film>, boost::filesystem::path);
VideoContent (boost::shared_ptr<const Film>, boost::shared_ptr<const cxml::Node>);
- VideoContent (VideoContent const &);
void as_xml (xmlpp::Node *) const;
void as_xml (xmlpp::Node *) const;
+ std::string technical_summary () const;
virtual std::string information () const;
virtual std::string information () const;
+ virtual std::string identifier () const;
-
ContentVideo
Frame video_length () const {
+
VideoContent::
Frame video_length () const {
boost::mutex::scoped_lock lm (_mutex);
return _video_length;
}
boost::mutex::scoped_lock lm (_mutex);
return _video_length;
}
@@
-61,12
+66,20
@@
public:
return _video_frame_rate;
}
return _video_frame_rate;
}
- void set_crop (Crop);
+ void set_video_frame_type (VideoFrameType);
+
void set_left_crop (int);
void set_right_crop (int);
void set_top_crop (int);
void set_bottom_crop (int);
void set_left_crop (int);
void set_right_crop (int);
void set_top_crop (int);
void set_bottom_crop (int);
+ void set_colour_conversion (ColourConversion);
+
+ VideoFrameType video_frame_type () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _video_frame_type;
+ }
+
Crop crop () const {
boost::mutex::scoped_lock lm (_mutex);
return _crop;
Crop crop () const {
boost::mutex::scoped_lock lm (_mutex);
return _crop;
@@
-74,21
+87,39
@@
public:
void set_ratio (Ratio const *);
void set_ratio (Ratio const *);
+ /** @return ratio to scale to, or 0 if the content's own ratio should be preserved. */
Ratio const * ratio () const {
boost::mutex::scoped_lock lm (_mutex);
return _ratio;
}
Ratio const * ratio () const {
boost::mutex::scoped_lock lm (_mutex);
return _ratio;
}
+ ColourConversion colour_conversion () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _colour_conversion;
+ }
+
+ libdcp::Size video_size_after_3d_split () const;
+ libdcp::Size video_size_after_crop () const;
+
protected:
protected:
- void take_from_video_
decoder (boost::shared_ptr<VideoDecod
er>);
+ void take_from_video_
examiner (boost::shared_ptr<VideoExamin
er>);
-
ContentVideo
Frame _video_length;
+
VideoContent::
Frame _video_length;
private:
private:
+ friend class ffmpeg_pts_offset_test;
+ friend class best_dcp_frame_rate_test_single;
+ friend class best_dcp_frame_rate_test_double;
+ friend class audio_sampling_rate_test;
+
+ void setup_default_colour_conversion ();
+
libdcp::Size _video_size;
float _video_frame_rate;
libdcp::Size _video_size;
float _video_frame_rate;
+ VideoFrameType _video_frame_type;
Crop _crop;
Ratio const * _ratio;
Crop _crop;
Ratio const * _ratio;
+ ColourConversion _colour_conversion;
};
#endif
};
#endif