summaryrefslogtreecommitdiff
path: root/src/lib/dcp_text_decoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-07-19 22:44:53 +0100
committerCarl Hetherington <cth@carlh.net>2018-07-19 23:45:23 +0100
commit27b83475435dda4e84a90cf59a52f150905c4ab1 (patch)
tree51d0158c7a879f6b2f3c40843c5e5e455069a1dc /src/lib/dcp_text_decoder.cc
parent9cb73fbc0fa4643612f01665bc6d9fc430656f32 (diff)
Clean up after previous commit.
Diffstat (limited to 'src/lib/dcp_text_decoder.cc')
-rw-r--r--src/lib/dcp_text_decoder.cc95
1 files changed, 0 insertions, 95 deletions
diff --git a/src/lib/dcp_text_decoder.cc b/src/lib/dcp_text_decoder.cc
deleted file mode 100644
index 168bfa5cc..000000000
--- a/src/lib/dcp_text_decoder.cc
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- Copyright (C) 2014-2018 Carl Hetherington <cth@carlh.net>
-
- This file is part of DCP-o-matic.
-
- DCP-o-matic is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- DCP-o-matic is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
-
-*/
-
-#include "dcp_text_decoder.h"
-#include "dcp_text_content.h"
-#include <dcp/interop_subtitle_asset.h>
-#include <iostream>
-
-using std::list;
-using std::cout;
-using boost::shared_ptr;
-using boost::dynamic_pointer_cast;
-using boost::bind;
-
-DCPTextDecoder::DCPTextDecoder (shared_ptr<const DCPTextContent> content, shared_ptr<Log> log)
-{
- shared_ptr<dcp::SubtitleAsset> c (load (content->path (0)));
- _subtitles = c->subtitles ();
- _next = _subtitles.begin ();
-
- ContentTime first;
- if (_next != _subtitles.end()) {
- first = content_time_period(*_next).from;
- }
- subtitle.reset (new TextDecoder (this, content->subtitle, log, first));
-}
-
-void
-DCPTextDecoder::seek (ContentTime time, bool accurate)
-{
- Decoder::seek (time, accurate);
-
- _next = _subtitles.begin ();
- list<shared_ptr<dcp::Subtitle> >::const_iterator i = _subtitles.begin ();
- while (i != _subtitles.end() && ContentTime::from_seconds ((*_next)->in().as_seconds()) < time) {
- ++i;
- }
-}
-
-bool
-DCPTextDecoder::pass ()
-{
- if (_next == _subtitles.end ()) {
- return true;
- }
-
- /* Gather all subtitles with the same time period that are next
- on the list. We must emit all subtitles for the same time
- period with the same plain_text() call otherwise the
- TextDecoder will assume there is nothing else at the
- time of emit the first.
- */
-
- list<dcp::SubtitleString> s;
- ContentTimePeriod const p = content_time_period (*_next);
-
- while (_next != _subtitles.end () && content_time_period (*_next) == p) {
- shared_ptr<dcp::SubtitleString> ns = dynamic_pointer_cast<dcp::SubtitleString>(*_next);
- if (ns) {
- s.push_back (*ns);
- ++_next;
- }
-
- /* XXX: image subtitles */
- }
-
- subtitle->emit_plain (p, s);
- return false;
-}
-
-ContentTimePeriod
-DCPTextDecoder::content_time_period (shared_ptr<dcp::Subtitle> s) const
-{
- return ContentTimePeriod (
- ContentTime::from_seconds (s->in().as_seconds ()),
- ContentTime::from_seconds (s->out().as_seconds ())
- );
-}