+
+ 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");
+ } else {
+ _fade_in = _fade_out = 0;
+ }
+
+ auto video_range = node->optional_string_child("Range");
+ if (!video_range) {
+ _range = video_range_hint;
+ } else if (*video_range == "full") {
+ _range = VideoRange::FULL;
+ } else {
+ _range = VideoRange::VIDEO;
+ }
+
+ if (auto pixel_quanta = node->optional_node_child("PixelQuanta")) {
+ _pixel_quanta = PixelQuanta(pixel_quanta);
+ }
+
+ auto burnt = node->optional_string_child("BurntSubtitleLanguage");
+ if (burnt) {
+ _burnt_subtitle_language = dcp::LanguageTag (*burnt);
+ }
+