+++ /dev/null
-/*
- Copyright (C) 2014 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/>.
-
-*/
-
-#ifndef DCPOMATIC_CONTENT_SUBTITLE_H
-#define DCPOMATIC_CONTENT_SUBTITLE_H
-
-#include "dcpomatic_time.h"
-#include "rect.h"
-#include "bitmap_text.h"
-#include <dcp/subtitle_string.h>
-#include <list>
-
-class Image;
-
-class ContentSubtitle
-{
-public:
- explicit ContentSubtitle (ContentTime f)
- : _from (f)
- {}
-
- ContentTime from () const {
- return _from;
- }
-
-private:
- ContentTime _from;
-};
-
-class ContentBitmapText : public ContentSubtitle
-{
-public:
- ContentBitmapText (ContentTime f, boost::shared_ptr<Image> im, dcpomatic::Rect<double> r)
- : ContentSubtitle (f)
- , sub (im, r)
- {}
-
- /* Our subtitle, with its rectangle unmodified by any offsets or scales that the content specifies */
- BitmapText sub;
-};
-
-/** A text subtitle. We store the time period separately (as well as in the dcp::SubtitleStrings)
- * as the dcp::SubtitleString timings are sometimes quite heavily quantised and this causes problems
- * when we want to compare the quantised periods to the unquantised ones.
- */
-class ContentTextSubtitle : public ContentSubtitle
-{
-public:
- ContentTextSubtitle (ContentTime f, std::list<dcp::SubtitleString> s)
- : ContentSubtitle (f)
- , subs (s)
- {}
-
- std::list<dcp::SubtitleString> subs;
-};
-
-#endif
#include "text_decoder.h"
#include "ffmpeg_content.h"
#include "audio_content.h"
-#include "content_subtitle.h"
#include "dcp_decoder.h"
#include "image_decoder.h"
#include "compose.hpp"
}
void
-Player::plain_text_start (weak_ptr<Piece> wp, ContentTextSubtitle subtitle)
+Player::plain_text_start (weak_ptr<Piece> wp, ContentPlainText subtitle)
{
shared_ptr<Piece> piece = wp.lock ();
if (!piece) {
#include "player_subtitles.h"
#include "active_subtitles.h"
+#include "content_text.h"
#include "film.h"
#include "content.h"
#include "position_image.h"
#include "piece.h"
#include "content_video.h"
#include "content_audio.h"
-#include "content_subtitle.h"
#include "audio_stream.h"
#include "audio_merger.h"
#include "empty.h"
void video (boost::weak_ptr<Piece>, ContentVideo);
void audio (boost::weak_ptr<Piece>, AudioStreamPtr, ContentAudio);
void bitmap_text_start (boost::weak_ptr<Piece>, ContentBitmapText);
- void plain_text_start (boost::weak_ptr<Piece>, ContentTextSubtitle);
+ void plain_text_start (boost::weak_ptr<Piece>, ContentPlainText);
void subtitle_stop (boost::weak_ptr<Piece>, ContentTime);
DCPTime one_video_frame () const;
void fill_audio (DCPTimePeriod period);
}
}
- PlainStart (ContentTextSubtitle (from, s));
+ PlainStart (ContentPlainText (from, s));
_position = from;
}
#include "decoder.h"
#include "rect.h"
#include "types.h"
-#include "content_subtitle.h"
+#include "content_text.h"
#include "decoder_part.h"
#include <dcp/subtitle_string.h>
#include <boost/signals2.hpp>
}
boost::signals2::signal<void (ContentBitmapText)> BitmapStart;
- boost::signals2::signal<void (ContentTextSubtitle)> PlainStart;
+ boost::signals2::signal<void (ContentPlainText)> PlainStart;
boost::signals2::signal<void (ContentTime)> Stop;
private:
*/
#include "lib/plain_text_decoder.h"
-#include "lib/content_subtitle.h"
+#include "lib/content_text.h"
#include "lib/video_decoder.h"
#include "lib/audio_decoder.h"
#include "lib/film.h"
}
void
-SubtitleView::data_start (ContentTextSubtitle cts)
+SubtitleView::data_start (ContentPlainText cts)
{
BOOST_FOREACH (dcp::SubtitleString const & i, cts.subs) {
wxListItem list_item;
*/
-#include "lib/content_subtitle.h"
+#include "lib/content_text.h"
#include <boost/shared_ptr.hpp>
#include <wx/wx.h>
#include <wx/listctrl.h>
SubtitleView (wxWindow *, boost::shared_ptr<Film>, boost::shared_ptr<Content> content, boost::shared_ptr<Decoder>, FilmViewer* viewer);
private:
- void data_start (ContentTextSubtitle cts);
+ void data_start (ContentPlainText cts);
void data_stop (ContentTime time);
void subtitle_selected (wxListEvent &);
#include "lib/dcp_content_type.h"
#include "lib/dcp_text_decoder.h"
#include "lib/text_content.h"
-#include "lib/content_subtitle.h"
+#include "lib/content_text.h"
#include "lib/font.h"
#include "lib/text_decoder.h"
#include "test.h"
using boost::shared_ptr;
using boost::optional;
-optional<ContentTextSubtitle> stored;
+optional<ContentPlainText> stored;
static void
-store (ContentTextSubtitle sub)
+store (ContentPlainText sub)
{
if (!stored) {
stored = sub;
shared_ptr<DCPDecoder> decoder (new DCPDecoder (content, film->log(), false));
decoder->subtitle->PlainStart.connect (bind (store, _1));
- stored = optional<ContentTextSubtitle> ();
+ stored = optional<ContentPlainText> ();
while (!decoder->pass() && !stored) {}
BOOST_REQUIRE (stored);
shared_ptr<DCPTextDecoder> decoder (new DCPTextDecoder (content, film->log()));
decoder->subtitle->PlainStart.connect (bind (store, _1));
- stored = optional<ContentTextSubtitle> ();
+ stored = optional<ContentPlainText> ();
while (!decoder->pass ()) {
if (stored && stored->from() == ContentTime(0)) {
BOOST_CHECK_EQUAL (stored->subs.front().text(), "<b>Hello world!</b>");
BOOST_REQUIRE (!wait_for_jobs ());
shared_ptr<DCPTextDecoder> decoder (new DCPTextDecoder (content, film->log()));
- stored = optional<ContentTextSubtitle> ();
+ stored = optional<ContentPlainText> ();
while (!decoder->pass ()) {
decoder->subtitle->PlainStart.connect (bind (store, _1));
if (stored && stored->from() == ContentTime::from_seconds(0.08)) {
'-Wwrite-strings',
# Remove auto_ptr warnings from libxml++-2.6
'-Wno-deprecated-declarations',
+ '-Wno-unsafe-loop-optimizations',
'-Wno-ignored-qualifiers',
'-D_FILE_OFFSET_BITS=64'])