X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Freel_writer.cc;h=72e10e86ba78a7170e5902c506cd70ab0d4fe788;hb=1a693725f9a8cc6ba58f65b2f1ef03255d295f23;hp=6bc879db4b7731ec06ee94faed2d4799cdff3432;hpb=513947df0f421c086ac56dff48dfe540b0a380c2;p=dcpomatic.git diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc index 6bc879db4..72e10e86b 100644 --- a/src/lib/reel_writer.cc +++ b/src/lib/reel_writer.cc @@ -112,11 +112,13 @@ ReelWriter::ReelWriter ( _sound_asset->set_key (_film->key ()); } + DCPOMATIC_ASSERT (_film->directory()); + /* Write the sound asset into the film directory so that we leave the creation of the DCP directory until the last minute. */ _sound_asset_writer = _sound_asset->start_write ( - _film->directory() / audio_asset_filename (_sound_asset, _reel_index, _reel_count, _content_summary), + _film->directory().get() / audio_asset_filename (_sound_asset, _reel_index, _reel_count, _content_summary), _film->interop() ? dcp::INTEROP : dcp::SMPTE ); } @@ -128,13 +130,14 @@ ReelWriter::write_frame_info (Frame frame, Eyes eyes, dcp::FrameInfo info) const { FILE* file = 0; boost::filesystem::path info_file = _film->info_file (_period); - if (boost::filesystem::exists (info_file)) { + bool const read = boost::filesystem::exists (info_file); + if (read) { file = fopen_boost (info_file, "r+b"); } else { file = fopen_boost (info_file, "wb"); } if (!file) { - throw OpenFileError (info_file, errno); + throw OpenFileError (info_file, errno, read); } dcpomatic_fseek (file, frame_info_position (frame, eyes), SEEK_SET); fwrite (&info.offset, sizeof (info.offset), 1, file);