diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-02-11 09:50:33 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-02-11 09:50:33 +0000 |
| commit | 24ef3197488f259f2ec62aefd4ca15bac6797454 (patch) | |
| tree | bb994f5e411f7f157206d92ec292b6f5e2c1471e /src | |
| parent | 6deab916855c1cab079817bf4ecc6824a067bb4d (diff) | |
Fix crash at the end of encodes.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/transcode_job.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lib/transcode_job.cc b/src/lib/transcode_job.cc index f0e22da64..5c195ee1b 100644 --- a/src/lib/transcode_job.cc +++ b/src/lib/transcode_job.cc @@ -100,17 +100,20 @@ TranscodeJob::status () const int TranscodeJob::remaining_time () const { - if (!_transcoder) { + /* _transcoder might be destroyed by the job-runner thread */ + shared_ptr<Transcoder> t = _transcoder; + + if (!t) { return 0; } - float fps = _transcoder->current_encoding_rate (); + float fps = t->current_encoding_rate (); if (fps == 0) { return 0; } /* Compute approximate proposed length here, as it's only here that we need it */ - OutputVideoFrame const left = _film->time_to_video_frames (_film->length ()) - _transcoder->video_frames_out(); + OutputVideoFrame const left = _film->time_to_video_frames (_film->length ()) - t->video_frames_out(); return left / fps; } |
