- if (_film->encrypted ()) {
- _picture_asset->set_key (_film->key ());
- _picture_asset->set_context_id (_film->context_id ());
- }
+ if (_first_nonexistant_frame < period.duration().frames_round(_film->video_frame_rate())) {
+ /* We do not have a complete picture asset. If there is an
+ existing asset, break any hard links to it as we are about
+ to change its contents (if only by changing the IDs); see
+ #1126.
+ */
+ if (boost::filesystem::exists(asset) && boost::filesystem::hard_link_count(asset) > 1) {
+ if (job) {
+ job->sub (_("Copying old video file"));
+ copy_in_bits (asset, asset.string() + ".tmp", bind(&Job::set_progress, job.get(), _1, false));
+ } else {
+ boost::filesystem::copy_file (asset, asset.string() + ".tmp");
+ }
+ boost::filesystem::remove (asset);
+ boost::filesystem::rename (asset.string() + ".tmp", asset);
+ }