using boost::weak_ptr;
using boost::dynamic_pointer_cast;
-/** Construct a transcoder using a Decoder that we create and a supplied Encoder.
+/** Construct a transcoder.
* @param f Film that we are transcoding.
- * @param e Encoder to use.
+ * @param j Job that this transcoder is being used in.
*/
-Transcoder::Transcoder (shared_ptr<const Film> f, shared_ptr<Job> j)
- : _film (f)
- , _player (f->make_player ())
- , _writer (new Writer (f, j))
- , _encoder (new Encoder (f, j, _writer))
+Transcoder::Transcoder (shared_ptr<const Film> film, shared_ptr<Job> j)
+ : _film (film)
+ , _player (new Player (film))
+ , _writer (new Writer (film, j))
+ , _encoder (new Encoder (film, j, _writer))
, _finishing (false)
{
DCPTime const frame = DCPTime::from_frames (1, _film->video_frame_rate ());
DCPTime const length = _film->length ();
+
+ if (!_film->burn_subtitles ()) {
+ _writer->write (_player->get_subtitle_fonts ());
+ }
+
for (DCPTime t; t < length; t += frame) {
list<shared_ptr<PlayerVideo> > v = _player->get_video (t, true);
for (list<shared_ptr<PlayerVideo> >::const_iterator i = v.begin(); i != v.end(); ++i) {