- _video_size.width = node->number_child<int> ("VideoWidth");
- _video_size.height = node->number_child<int> ("VideoHeight");
- _video_frame_rate = node->optional_number_child<double> ("VideoFrameRate");
- _video_length = node->number_child<Frame> ("VideoLength");
- _video_frame_type = static_cast<VideoFrameType> (node->number_child<int> ("VideoFrameType"));
+ _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;
+ }
+ } else {
+ _frame_type = string_to_video_frame_type (node->string_child ("VideoFrameType"));
+ }
+