diff options
Diffstat (limited to 'src/subtitle_asset.cc')
| -rw-r--r-- | src/subtitle_asset.cc | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/src/subtitle_asset.cc b/src/subtitle_asset.cc index 083a8040..aeec99d7 100644 --- a/src/subtitle_asset.cc +++ b/src/subtitle_asset.cc @@ -385,13 +385,33 @@ SubtitleAsset::maybe_add_subtitle (string text, list<ParseState> const & parse_s ) ); break; - case ParseState::IMAGE: + case ParseState::Type::IMAGE: + { + switch (standard) { + case INTEROP: + if (text.size() >= 4) { + /* Remove file extension */ + text = text.substr(0, text.size() - 4); + } + break; + case SMPTE: + /* It looks like this urn:uuid: is required, but DoM wasn't expecting it (and not writing it) + * until around 2.15.140 so I guess either: + * a) it is not (always) used in the field, or + * b) nobody noticed / complained. + */ + if (text.substr(0, 9) == "urn:uuid:") { + text = text.substr(9); + } + break; + } + /* Add a subtitle with no image data and we'll fill that in later */ _subtitles.push_back ( shared_ptr<Subtitle> ( new SubtitleImage ( - Data (), - standard == INTEROP ? text.substr(0, text.size() - 4) : text, + Data(), + text, ps.in.get(), ps.out.get(), ps.h_position.get_value_or(0), @@ -405,6 +425,7 @@ SubtitleAsset::maybe_add_subtitle (string text, list<ParseState> const & parse_s ); break; } + } } list<shared_ptr<Subtitle> > |
