From 1555c48eda3def5f7ece413a47f0c7ff94dd70dd Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 4 Jul 2014 16:34:13 +0100 Subject: Make XML subtitle work at the very minimal level. --- src/lib/writer.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/lib/writer.cc') diff --git a/src/lib/writer.cc b/src/lib/writer.cc index 04eac854c..b1dbca0e0 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include "writer.h" @@ -452,6 +453,12 @@ Writer::finish () reel->add (shared_ptr (new dcp::ReelSoundAsset (_sound_mxf, 0))); dcp.add (_sound_mxf); } + + if (_subtitle_content) { + _subtitle_content->write_xml (_film->dir (_film->dcp_name ()) / _film->subtitle_xml_filename ()); + reel->add (shared_ptr (new dcp::ReelSubtitleAsset (_subtitle_content, 0))); + dcp.add (_subtitle_content); + } cpl->add (reel); @@ -571,6 +578,20 @@ Writer::can_fake_write (int frame) const return (frame != 0 && frame < _first_nonexistant_frame); } +void +Writer::write (PlayerSubtitles subs) +{ + if (!_subtitle_content) { + _subtitle_content.reset ( + new dcp::SubtitleContent (dcp::Fraction (_film->video_frame_rate(), 1), _film->name(), _film->isdcf_metadata().subtitle_language) + ); + } + + for (list::const_iterator i = subs.text.begin(); i != subs.text.end(); ++i) { + _subtitle_content->add (*i); + } +} + bool operator< (QueueItem const & a, QueueItem const & b) { -- cgit v1.2.3