X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Freel_writer.h;h=46f47761622a0afae5424374af8b9e45bc97d8f5;hb=48b82de5b6e8e07330a2f72dbddd8d9830fe047e;hp=9ea576d7ab371dd01ba659cd519c2f1cf512030b;hpb=c4403784febdbdd42e9c32e67fadb147f11fe566;p=dcpomatic.git diff --git a/src/lib/reel_writer.h b/src/lib/reel_writer.h index 9ea576d7a..46f477616 100644 --- a/src/lib/reel_writer.h +++ b/src/lib/reel_writer.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2018 Carl Hetherington + Copyright (C) 2012-2019 Carl Hetherington This file is part of DCP-o-matic. @@ -25,11 +25,17 @@ #include "dcp_text_track.h" #include #include +#include + +namespace dcpomatic { + class Font; +} class Film; class Job; -class Font; class AudioBuffers; +class InfoFileHandle; +struct write_frame_info_test; namespace dcp { class MonoPictureAsset; @@ -64,7 +70,7 @@ public: void write (PlayerText text, TextType type, boost::optional track, dcpomatic::DCPTimePeriod period); void finish (); - boost::shared_ptr create_reel (std::list const & refs, std::list > const & fonts); + boost::shared_ptr create_reel (std::list const & refs, std::list > const & fonts); void calculate_digests (boost::function set_progress); Frame start () const; @@ -85,14 +91,16 @@ public: return _first_nonexistant_frame; } - dcp::FrameInfo read_frame_info (FILE* file, Frame frame, Eyes eyes) const; + dcp::FrameInfo read_frame_info (boost::shared_ptr info, Frame frame, Eyes eyes) const; private: + friend struct ::write_frame_info_test; + void write_frame_info (Frame frame, Eyes eyes, dcp::FrameInfo info) const; long frame_info_position (Frame frame, Eyes eyes) const; Frame check_existing_picture_asset (); - bool existing_picture_frame_ok (FILE* asset_file, FILE* info_file, Frame frame) const; + bool existing_picture_frame_ok (FILE* asset_file, boost::shared_ptr info_file, Frame frame) const; boost::shared_ptr _film; @@ -109,6 +117,7 @@ private: /** number of reels in the DCP */ int _reel_count; boost::optional _content_summary; + boost::weak_ptr _job; boost::shared_ptr _picture_asset; boost::shared_ptr _picture_asset_writer;