- _picture_mxf_writer->finalize ();
- if (_sound_mxf_writer) {
- _sound_mxf_writer->finalize ();
- }
-
- /* Hard-link the video MXF into the DCP */
- boost::filesystem::path video_from;
- video_from /= _film->internal_video_mxf_dir();
- video_from /= _film->internal_video_mxf_filename();
-
- boost::filesystem::path video_to;
- video_to /= _film->dir (_film->dcp_name());
- video_to /= _film->video_mxf_filename ();
-
- boost::system::error_code ec;
- boost::filesystem::create_hard_link (video_from, video_to, ec);
- if (ec) {
- /* hard link failed; copy instead */
- boost::filesystem::copy_file (video_from, video_to);
- LOG_WARNING_NC ("Hard-link failed; fell back to copying");
- }
-
- _picture_mxf->set_file (video_to);
-
- /* Move the audio MXF into the DCP */
-
- if (_sound_mxf) {
- boost::filesystem::path audio_to;
- audio_to /= _film->dir (_film->dcp_name ());
- audio_to /= _film->audio_mxf_filename ();
-
- boost::filesystem::rename (_film->file (_film->audio_mxf_filename ()), audio_to, ec);
- if (ec) {
- throw FileError (
- String::compose (_("could not move audio MXF into the DCP (%1)"), ec.value ()), _film->file (_film->audio_mxf_filename ())
- );
- }