From 2860640c7cf39410bfb21f69ce05e345e9078fa3 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 7 Jun 2016 16:03:38 +0100 Subject: Replace a shared_ptr with a weak_ptr. --- src/lib/transcoder.cc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/lib/transcoder.cc') diff --git a/src/lib/transcoder.cc b/src/lib/transcoder.cc index 8afd64709..fd44e4df7 100644 --- a/src/lib/transcoder.cc +++ b/src/lib/transcoder.cc @@ -53,7 +53,7 @@ using boost::dynamic_pointer_cast; * @param f Film that we are transcoding. * @param j Job that this transcoder is being used in. */ -Transcoder::Transcoder (shared_ptr film, shared_ptr j) +Transcoder::Transcoder (shared_ptr film, weak_ptr j) : _film (film) , _job (j) , _player (new Player (film, film->playlist ())) @@ -70,7 +70,11 @@ Transcoder::go () _writer->start (); _encoder->begin (); - _job->sub (_("Encoding picture and sound")); + { + shared_ptr job = _job.lock (); + DCPOMATIC_ASSERT (job); + job->sub (_("Encoding picture and sound")); + } DCPTime const frame = DCPTime::from_frames (1, _film->video_frame_rate ()); DCPTime const length = _film->length (); @@ -99,7 +103,11 @@ Transcoder::go () _writer->write (_player->get_subtitles (t, frame, true, false, true)); } - _job->set_progress (float(t.get()) / length.get()); + { + shared_ptr job = _job.lock (); + DCPOMATIC_ASSERT (job); + job->set_progress (float(t.get()) / length.get()); + } } BOOST_FOREACH (ReferencedReelAsset i, _player->get_reel_assets ()) { -- cgit v1.2.3