- _video_size.width = node->number_child<int> ("VideoWidth");
- _video_size.height = node->number_child<int> ("VideoHeight");
- _video_frame_rate = node->number_child<float> ("VideoFrameRate");
-
- if (version < 32) {
- /* DCP-o-matic 1.0 branch */
- _video_length = ContentTime::from_frames (node->number_child<int64_t> ("VideoLength"), _video_frame_rate);
+ _size.width = node->number_child<int> ("VideoWidth");
+ _size.height = node->number_child<int> ("VideoHeight");
+
+ /* Backwards compatibility */
+ optional<double> r = node->optional_number_child<double>("VideoFrameRate");
+ if (r) {
+ _parent->set_video_frame_rate (r.get ());
+ }
+
+ _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 = VIDEO_FRAME_TYPE_2D;
+ break;
+ case 1:
+ _frame_type = VIDEO_FRAME_TYPE_3D_LEFT_RIGHT;
+ break;
+ case 2:
+ _frame_type = VIDEO_FRAME_TYPE_3D_TOP_BOTTOM;
+ break;
+ case 3:
+ _frame_type = VIDEO_FRAME_TYPE_3D_ALTERNATE;
+ break;
+ case 4:
+ _frame_type = VIDEO_FRAME_TYPE_3D_LEFT;
+ break;
+ case 5:
+ _frame_type = VIDEO_FRAME_TYPE_3D_RIGHT;
+ break;
+ }