+
+ auto rc = dynamic_pointer_cast<const StringTextFileContent> (content);
+ if (rc) {
+ return make_shared<StringTextFileDecoder>(film, rc);
+ }
+
+ auto dsc = dynamic_pointer_cast<const DCPSubtitleContent> (content);
+ if (dsc) {
+ return make_shared<DCPSubtitleDecoder>(film, dsc);
+ }
+
+ auto vmc = dynamic_pointer_cast<const VideoMXFContent> (content);
+ if (vmc) {
+ return make_shared<VideoMXFDecoder>(film, vmc);
+ }
+
+ auto amc = dynamic_pointer_cast<const AtmosMXFContent> (content);
+ if (amc) {
+ return make_shared<AtmosMXFDecoder>(film, amc);
+ }
+
+ return {};