X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Flib%2Fcontent_factory.cc;h=bac41f940a38dd27de7e53d33aec862b87cd144f;hb=refs%2Fheads%2Fsplit;hp=135f3fe5f5bb1da82dfbdfb16b908475b18b16f6;hpb=b1e22dff981fb86ae04b12bb5a064e61030793a8;p=dcpomatic.git diff --git a/src/lib/content_factory.cc b/src/lib/content_factory.cc index 135f3fe5f..bac41f940 100644 --- a/src/lib/content_factory.cc +++ b/src/lib/content_factory.cc @@ -40,7 +40,8 @@ #include "log.h" #include "compose.hpp" #include -#include +#include +#include #include #include "i18n.h" @@ -81,7 +82,8 @@ content_factory (cxml::ConstNodePtr node, int version, list& notes) "Stream", 0, node->number_child ("AudioFrameRate"), node->number_child ("AudioLength"), - AudioMapping (node->node_child ("AudioMapping"), version) + AudioMapping(node->node_child("AudioMapping"), version), + 16 ) ); @@ -110,11 +112,11 @@ content_factory (boost::filesystem::path path) { vector> content; - if (boost::filesystem::is_directory (path)) { + if (dcp::filesystem::is_directory(path)) { LOG_GENERAL ("Look in directory %1", path); - if (boost::filesystem::is_empty (path)) { + if (dcp::filesystem::is_empty(path)) { return content; } @@ -123,17 +125,17 @@ content_factory (boost::filesystem::path path) int image_files = 0; int sound_files = 0; int read = 0; - for (boost::filesystem::directory_iterator i(path); i != boost::filesystem::directory_iterator() && read < 10; ++i) { + for (dcp::filesystem::directory_iterator i(path); i != dcp::filesystem::directory_iterator() && read < 10; ++i) { LOG_GENERAL ("Checking file %1", i->path()); - if (boost::starts_with (i->path().leaf().string(), ".")) { + if (boost::starts_with(i->path().filename().string(), ".")) { /* We ignore hidden files */ LOG_GENERAL ("Ignored %1 (starts with .)", i->path()); continue; } - if (!boost::filesystem::is_regular_file(i->path())) { + if (!dcp::filesystem::is_regular_file(i->path())) { /* Ignore things which aren't files (probably directories) */ LOG_GENERAL ("Ignored %1 (not a regular file)", i->path()); continue; @@ -153,7 +155,7 @@ content_factory (boost::filesystem::path path) if (image_files > 0 && sound_files == 0) { content.push_back (make_shared(path)); } else if (image_files == 0 && sound_files > 0) { - for (auto i: boost::filesystem::directory_iterator(path)) { + for (auto i: dcp::filesystem::directory_iterator(path)) { content.push_back (make_shared(i.path())); } } @@ -167,16 +169,16 @@ content_factory (boost::filesystem::path path) if (valid_image_file (path)) { single = make_shared(path); - } else if (ext == ".srt" || ext == ".ssa" || ext == ".ass" || ext == ".stl") { + } else if (ext == ".srt" || ext == ".ssa" || ext == ".ass" || ext == ".stl" || ext == ".vtt") { single = make_shared(path); } else if (ext == ".xml") { cxml::Document doc; - doc.read_file (path); + doc.read_file(dcp::filesystem::fix_long_path(path)); if (doc.root_name() == "DCinemaSecurityMessage") { throw KDMAsContentError (); } single = make_shared(path); - } else if (ext == ".mxf" && dcp::SMPTESubtitleAsset::valid_mxf(path)) { + } else if (ext == ".mxf" && dcp::SMPTETextAsset::valid_mxf(path)) { single = make_shared(path); } else if (ext == ".mxf" && VideoMXFContent::valid_mxf(path)) { single = make_shared(path);