X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Ftext_subtitle.cc;fp=src%2Flib%2Ftext_subtitle.cc;h=7faecb459b4f2b6f7f6f20a2007ea4d77da8fcd3;hb=4155e64244c9a975a11b491d0a0822fe90abc2f8;hp=d55ff68d7e46f3bc1702389ac75b2ea72888382a;hpb=80400212e939dc2f3b987cb6df57709929aa5178;p=dcpomatic.git diff --git a/src/lib/text_subtitle.cc b/src/lib/text_subtitle.cc index d55ff68d7..7faecb459 100644 --- a/src/lib/text_subtitle.cc +++ b/src/lib/text_subtitle.cc @@ -22,6 +22,7 @@ #include "exceptions.h" #include "text_subtitle_content.h" #include +#include #include #include #include @@ -65,8 +66,17 @@ TextSubtitle::TextSubtitle (shared_ptr content) ucnv_close (to_utf16); ucnv_close (to_utf8); - sub::SubripReader reader (utf8.get()); - _subtitles = sub::collect > (reader.subtitles ()); + sub::Reader* reader = 0; + + if (content->path(0).extension() == ".srt" || content->path(0).extension() == ".SRT") { + reader = new sub::SubripReader (utf8.get()); + } else if (content->path(0).extension() == ".ssa" || content->path(0).extension() == ".SSA") { + reader = new sub::SSAReader (utf8.get()); + } + + if (reader) { + _subtitles = sub::collect > (reader->subtitles ()); + } } ContentTime