+extern void write_image (std::shared_ptr<const Image> image, boost::filesystem::path file);
+boost::filesystem::path dcp_file (std::shared_ptr<const Film> film, std::string prefix);
+void check_one_frame (boost::filesystem::path dcp, int64_t index, boost::filesystem::path ref);
+extern boost::filesystem::path subtitle_file (std::shared_ptr<Film> film);
+extern void make_random_file (boost::filesystem::path path, size_t size);
+extern void verify_dcp(boost::filesystem::path dir, std::vector<dcp::VerificationNote::Code> ignore);
+extern void make_and_verify_dcp(std::shared_ptr<Film> film, std::vector<dcp::VerificationNote::Code> ignore = {}, bool dcp_inspect = true, bool clairmeta = true);
+extern void check_int_close (int a, int b, int d);
+extern void check_int_close (std::pair<int, int>, std::pair<int, int>, int d);
+extern boost::filesystem::path find_file (boost::filesystem::path dir, std::string filename_part);
+
+
+class LogSwitcher
+{
+public:
+ LogSwitcher (std::shared_ptr<Log> log);
+ ~LogSwitcher ();
+
+private:
+ std::shared_ptr<Log> _old;
+};
+
+
+class ConfigRestorer
+{
+public:
+ ~ConfigRestorer();
+};
+
+
+class Editor
+{
+public:
+ Editor(boost::filesystem::path path);
+ ~Editor();
+
+ void replace(std::string a, std::string b);
+
+private:
+ boost::filesystem::path _path;
+ std::string _content;
+};
+
+
+namespace dcp {
+
+std::ostream& operator<< (std::ostream& s, dcp::Size i);
+std::ostream& operator<< (std::ostream& s, dcp::Standard t);
+
+}
+
+std::ostream& operator<< (std::ostream& s, VideoFrameType f);