X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fwriter.h;h=41d4d4474bae3dde1e97e35f9d6392aeb165315b;hp=9e95c05314d16580fcfb8432fc8b0be56dbd537b;hb=a5e87b6f0f496f4ed71d9129d40a5baebb68495f;hpb=d5f0a9d288948bf23cb0f1050596482f7d0403e3 diff --git a/src/lib/writer.h b/src/lib/writer.h index 9e95c0531..41d4d4474 100644 --- a/src/lib/writer.h +++ b/src/lib/writer.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012 Carl Hetherington + Copyright (C) 2012-2014 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,17 +21,20 @@ * @brief Writer class. */ -#include +#include "exceptions.h" +#include "types.h" +#include "player_subtitles.h" #include +#include #include #include -#include "exceptions.h" -#include "types.h" +#include class Film; class EncodedData; class AudioBuffers; class Job; +class Font; namespace dcp { class MonoPictureMXF; @@ -42,6 +45,7 @@ namespace dcp { class PictureMXFWriter; class SoundMXF; class SoundMXFWriter; + class InteropSubtitleContent; } struct QueueItem @@ -55,8 +59,6 @@ public: state but we use the data that is already on disk. */ FAKE, - /** this is a repeat of the last frame to be written */ - REPEAT } type; /** encoded data for FULL */ @@ -93,6 +95,8 @@ public: void write (boost::shared_ptr, int, Eyes); void fake_write (int, Eyes); void write (boost::shared_ptr); + void write (PlayerSubtitles subs); + void write (std::list > fonts); void repeat (int f, Eyes); void finish (); @@ -103,6 +107,10 @@ private: void check_existing_picture_mxf (); bool check_existing_picture_mxf_frame (FILE *, int, Eyes); bool have_sequenced_image_at_queue_head (); + /** maximum number of frames to hold in memory, for when we are managing + * ordering + */ + int maximum_frames_in_memory () const; /** our Film */ boost::shared_ptr _film; @@ -129,17 +137,11 @@ private: /** the index of the last written frame */ int _last_written_frame; Eyes _last_written_eyes; - /** maximum number of frames to hold in memory, for when we are managing - ordering - */ - static const int _maximum_frames_in_memory; /** number of FULL written frames */ int _full_written; /** number of FAKE written frames */ int _fake_written; - /** number of REPEAT written frames */ - int _repeat_written; /** number of frames pushed to disk and then recovered due to the limit of frames to be held in memory. */ @@ -149,4 +151,7 @@ private: boost::shared_ptr _picture_mxf_writer; boost::shared_ptr _sound_mxf; boost::shared_ptr _sound_mxf_writer; + boost::shared_ptr _subtitle_content; + + std::list > _fonts; };