- if (version < 32) {
- /* DCP-o-matic 1.0 branch */
- _video_length = ContentTime::from_frames (node->number_child<int64_t> ("VideoLength"), _video_frame_rate);
+/** @param video_range_hint Video range to use if none is given in the XML */
+VideoContent::VideoContent (Content* parent, cxml::ConstNodePtr node, int version, VideoRange video_range_hint)
+ : ContentPart (parent)
+{
+ _size.width = node->number_child<int> ("VideoWidth");
+ _size.height = node->number_child<int> ("VideoHeight");
+
+ _use = node->optional_bool_child("Use").get_value_or(true);
+ _length = node->number_child<Frame> ("VideoLength");
+
+ if (version <= 34) {
+ /* Snapshot of the VideoFrameType enum at version 34 */
+ switch (node->number_child<int> ("VideoFrameType")) {
+ case 0:
+ _frame_type = VideoFrameType::TWO_D;
+ break;
+ case 1:
+ _frame_type = VideoFrameType::THREE_D_LEFT_RIGHT;
+ break;
+ case 2:
+ _frame_type = VideoFrameType::THREE_D_TOP_BOTTOM;
+ break;
+ case 3:
+ _frame_type = VideoFrameType::THREE_D_ALTERNATE;
+ break;
+ case 4:
+ _frame_type = VideoFrameType::THREE_D_LEFT;
+ break;
+ case 5:
+ _frame_type = VideoFrameType::THREE_D_RIGHT;
+ break;
+ }