+ } else if (version <= 37) {
+ auto ratio = node->node_child("Scale")->optional_string_child("Ratio");
+ if (ratio) {
+ _legacy_ratio = Ratio::from_id(ratio.get())->ratio();
+ }
+ auto scale = node->node_child("Scale")->optional_bool_child("Scale");
+ if (scale) {
+ if (*scale) {
+ /* This is what we used to call "no stretch" */
+ _legacy_ratio = _size.ratio();
+ } else {
+ /* This is what we used to call "no scale" */
+ _custom_size = _size;
+ }
+ }
+
+ } else {
+ _custom_ratio = node->optional_number_child<float>("CustomRatio");
+ if (node->optional_number_child<int>("CustomWidth")) {
+ _custom_size = dcp::Size (node->number_child<int>("CustomWidth"), node->number_child<int>("CustomHeight"));
+ }
+ }
+
+ if (node->optional_node_child ("ColourConversion")) {
+ _colour_conversion = ColourConversion (node->node_child ("ColourConversion"), version);
+ }
+
+ _yuv = node->optional_bool_child("YUV").get_value_or (true);
+
+ if (version >= 32) {
+ /* These should be VideoFadeIn and VideoFadeOut but we'll leave them like this until 2.18.x */
+ _fade_in = node->number_child<Frame> ("FadeIn");
+ _fade_out = node->number_child<Frame> ("FadeOut");