#include <sub/ssa_reader.h>
#include <sub/stl_binary_reader.h>
#include <sub/subrip_reader.h>
+#include <sub/web_vtt_reader.h>
#include <unicode/ucsdet.h>
#include <unicode/ucnv.h>
#include <iostream>
ucnv_close (to_utf8);
if (ext == ".srt") {
- reader.reset(new sub::SubripReader(utf8.get()));
+ try {
+ reader.reset(new sub::SubripReader(utf8.get()));
+ } catch (...) {
+ /* Sometimes files are have the .srt extension but are really WEBVTT */
+ reader.reset(new sub::WebVTTReader(utf8.get()));
+ }
} else if (ext == ".ssa" || ext == ".ass") {
reader.reset(new sub::SSAReader(utf8.get()));
+ } else if (ext == ".vtt") {
+ reader.reset(new sub::WebVTTReader(utf8.get()));
}
}
StringTextFile::first () const
{
if (_subtitles.empty()) {
- return optional<ContentTime>();
+ return {};
}
return ContentTime::from_seconds(_subtitles[0].from.all_as_seconds());
StringTextFile::length () const
{
if (_subtitles.empty ()) {
- return ContentTime ();
+ return {};
}
return ContentTime::from_seconds (_subtitles.back().to.all_as_seconds ());