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