#include "colour_conversion.h"
#include "content_part.h"
+#include "crop.h"
#include "dcpomatic_time.h"
-#include "types.h"
+#include "pixel_quanta.h"
#include "user_property.h"
+#include "video_frame_type.h"
+#include "video_range.h"
+#include "types.h"
#include <dcp/language_tag.h>
#include <boost/thread/mutex.hpp>
{
public:
explicit VideoContent (Content* parent);
- VideoContent (Content* parent, cxml::ConstNodePtr, int);
+ VideoContent (Content* parent, cxml::ConstNodePtr node, int version, VideoRange video_range_hint);
VideoContent (Content* parent, std::vector<std::shared_ptr<Content>>);
void as_xml (xmlpp::Node *) const;
void set_frame_type (VideoFrameType);
+ void set_crop (Crop crop);
void set_left_crop (int);
void set_right_crop (int);
void set_top_crop (int);
return _frame_type;
}
- Crop crop () const {
+ Crop actual_crop () const;
+
+ Crop requested_crop () const {
boost::mutex::scoped_lock lm (_mutex);
return _crop;
}
- int left_crop () const {
+ int requested_left_crop () const {
boost::mutex::scoped_lock lm (_mutex);
return _crop.left;
}
- int right_crop () const {
+ int requested_right_crop () const {
boost::mutex::scoped_lock lm (_mutex);
return _crop.right;
}
- int top_crop () const {
+ int requested_top_crop () const {
boost::mutex::scoped_lock lm (_mutex);
return _crop.top;
}
- int bottom_crop () const {
+ int requested_bottom_crop () const {
boost::mutex::scoped_lock lm (_mutex);
return _crop.bottom;
}
return _range;
}
+ PixelQuanta pixel_quanta () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _pixel_quanta;
+ }
+
bool use () const {
boost::mutex::scoped_lock lm (_mutex);
return _use;
void set_length (Frame);
- void take_from_examiner (std::shared_ptr<VideoExaminer>);
+ void take_from_examiner(std::shared_ptr<const Film> film, std::shared_ptr<VideoExaminer>);
void add_properties (std::list<UserProperty> &) const;
void modify_position (std::shared_ptr<const Film> film, dcpomatic::DCPTime& pos) const;
void modify_trim_start (dcpomatic::ContentTime& pos) const;
- static std::shared_ptr<VideoContent> from_xml (Content* parent, cxml::ConstNodePtr, int);
+ static std::shared_ptr<VideoContent> from_xml (Content* parent, cxml::ConstNodePtr node, int version, VideoRange video_range_hint);
private:
/** fade out time in content frames */
Frame _fade_out;
VideoRange _range;
+ PixelQuanta _pixel_quanta;
boost::optional<dcp::LanguageTag> _burnt_subtitle_language;
};