diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-12-16 00:23:24 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-12-16 00:23:24 +0000 |
| commit | 19b5ac5e09e204a9c22daff460f3cbb2137d265b (patch) | |
| tree | dade81e56e3ad9934686c650eef23f92d3111211 /src/reader_factory.cc | |
| parent | a49e1c2df1568391651344ae368c53f76d504571 (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.cc | 15 |
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); |
