summaryrefslogtreecommitdiff
path: root/src/reader_factory.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-12-16 00:23:24 +0000
committerCarl Hetherington <cth@carlh.net>2014-12-16 00:23:24 +0000
commit19b5ac5e09e204a9c22daff460f3cbb2137d265b (patch)
treedade81e56e3ad9934686c650eef23f92d3111211 /src/reader_factory.cc
parenta49e1c2df1568391651344ae368c53f76d504571 (diff)
Use libdcp for DCP subtitle parsing so that we get support for MXF-wrapped SMPTE subtitles.
Diffstat (limited to 'src/reader_factory.cc')
-rw-r--r--src/reader_factory.cc15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/reader_factory.cc b/src/reader_factory.cc
index fd19c0f..31a205b 100644
--- a/src/reader_factory.cc
+++ b/src/reader_factory.cc
@@ -31,19 +31,18 @@ using boost::shared_ptr;
using namespace sub;
shared_ptr<Reader>
-sub::reader_factory (string file_name)
+sub::reader_factory (boost::filesystem::path file_name)
{
- ifstream f (file_name.c_str ());
- if (!f.good ()) {
- return shared_ptr<Reader> ();
- }
+ string ext = file_name.extension().string();
+ transform (ext.begin(), ext.end(), ext.begin(), ::tolower);
- if (ends_with (file_name, ".xml") || ends_with (file_name, ".XML")) {
- return shared_ptr<Reader> (new DCPReader (f));
+ if (ext == ".xml" || ext == ".mxf") {
+ return shared_ptr<Reader> (new DCPReader (file_name));
}
- if (ends_with (file_name, ".stl") || ends_with (file_name, ".STL")) {
+ if (ext == ".stl") {
/* Check the start of the DFC */
+ ifstream f (file_name.string().c_str ());
char buffer[11];
f.read (buffer, 11);
f.seekg (0);