+
+ string ext = path.extension().string ();
+ transform (ext.begin(), ext.end(), ext.begin(), ::tolower);
+
+ if (valid_image_file (path)) {
+ content.reset (new ImageContent (film, path));
+ } else if (SndfileContent::valid_file (path)) {
+ content.reset (new SndfileContent (film, path));
+ } else if (ext == ".srt") {
+ content.reset (new SubRipContent (film, path));
+ } else if (ext == ".xml") {
+ content.reset (new DCPSubtitleContent (film, path));
+ } else if (ext == ".mxf" && dcp::SMPTESubtitleAsset::valid_mxf (path)) {
+ content.reset (new DCPSubtitleContent (film, path));
+ }
+
+ if (!content) {
+ content.reset (new FFmpegContent (film, path));
+ }