summaryrefslogtreecommitdiff
path: root/src/lib/content_factory.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-12-06 17:46:24 +0100
committerCarl Hetherington <cth@carlh.net>2024-12-26 17:20:25 +0100
commit54e2644ed4dcc4faf5135e60926cfdda14886fea (patch)
treeca1599fe32e3ace691dffcdb6ded45ad29baea59 /src/lib/content_factory.cc
parent1f077d2b791a059ccef4069dca07ead990bd568e (diff)
Support FCP XML files containing subtitles (#2909).
Diffstat (limited to 'src/lib/content_factory.cc')
-rw-r--r--src/lib/content_factory.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/content_factory.cc b/src/lib/content_factory.cc
index 9f464896a..fa3f0876c 100644
--- a/src/lib/content_factory.cc
+++ b/src/lib/content_factory.cc
@@ -29,6 +29,7 @@
#include "dcp_content.h"
#include "dcp_subtitle_content.h"
#include "dcpomatic_log.h"
+#include "fcpxml_content.h"
#include "ffmpeg_audio_stream.h"
#include "ffmpeg_content.h"
#include "film.h"
@@ -97,6 +98,8 @@ content_factory(cxml::ConstNodePtr node, boost::optional<boost::filesystem::path
content = std::make_shared<VideoMXFContent>(node, film_directory, version);
} else if (type == "AtmosMXF") {
content = std::make_shared<AtmosMXFContent>(node, film_directory, version);
+ } else if (type == "FCPXML") {
+ content = std::make_shared<FCPXMLContent>(node, film_directory, version, notes);
}
return content;
@@ -178,6 +181,8 @@ content_factory (boost::filesystem::path path)
throw KDMAsContentError ();
}
single = std::make_shared<DCPSubtitleContent>(path);
+ } else if (ext == ".fcpxml") {
+ single = std::make_shared<FCPXMLContent>(path);
} else if (ext == ".mxf" && dcp::SMPTETextAsset::valid_mxf(path)) {
single = std::make_shared<DCPSubtitleContent>(path);
} else if (ext == ".mxf" && VideoMXFContent::valid_mxf(path)) {