Fix cross-thread access to info files. May help with #1618.
[dcpomatic.git] / src / lib / reel_writer.h
index fff2e0b9ea7568d646b4ef0b18b86e5104757799..8649ea37f2be08e9fb432f7626ad346a274cd8fe 100644 (file)
@@ -33,6 +33,8 @@ namespace dcpomatic {
 class Film;
 class Job;
 class AudioBuffers;
+class InfoFileHandle;
+struct write_frame_info_test;
 
 namespace dcp {
        class MonoPictureAsset;
@@ -88,14 +90,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<InfoFileHandle> 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<InfoFileHandle> info_file, Frame frame) const;
 
        boost::shared_ptr<const Film> _film;