diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-10-11 18:37:14 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-10-11 18:37:14 +0100 |
| commit | 27bd2c44278ccf181b11ba961649a3e9b3ae03af (patch) | |
| tree | 08e1ab70d02363c8f5f9265057bf6daf1224ccfa | |
| parent | 1c6dde9268c99b526c2e4c3c61e3a5de193f32f2 (diff) | |
Better progress indication when finding subs (#711).
| -rw-r--r-- | ChangeLog | 3 | ||||
| -rw-r--r-- | src/lib/ffmpeg_examiner.cc | 16 |
2 files changed, 14 insertions, 5 deletions
@@ -1,5 +1,8 @@ 2015-10-11 Carl Hetherington <cth@carlh.net> + * Provide progress indication when finding + subtitles (#711). + * Updated ru_RU translation from Igor Voytovich. * Updated pl_PL translation from Marek Skrzelowski. diff --git a/src/lib/ffmpeg_examiner.cc b/src/lib/ffmpeg_examiner.cc index 40fe0d28e..4fd1b6fe8 100644 --- a/src/lib/ffmpeg_examiner.cc +++ b/src/lib/ffmpeg_examiner.cc @@ -76,13 +76,14 @@ FFmpegExaminer::FFmpegExaminer (shared_ptr<const FFmpegContent> c, shared_ptr<Jo _need_video_length = _format_context->duration == AV_NOPTS_VALUE; if (!_need_video_length) { _video_length = (double (_format_context->duration) / AV_TIME_BASE) * video_frame_rate().get (); - } else if (job) { - job->sub (_("Finding length")); - job->set_progress_unknown (); } if (job) { - job->sub (_("Finding subtitles")); + if (_need_video_length) { + job->sub (_("Finding length and subtitles")); + } else { + job->sub (_("Finding subtitles")); + } } /* Run through until we find: @@ -95,6 +96,7 @@ FFmpegExaminer::FFmpegExaminer (shared_ptr<const FFmpegContent> c, shared_ptr<Jo * so they are ok). */ + int64_t const len = _file_group.length (); while (true) { int r = av_read_frame (_format_context, &_packet); if (r < 0) { @@ -102,7 +104,11 @@ FFmpegExaminer::FFmpegExaminer (shared_ptr<const FFmpegContent> c, shared_ptr<Jo } if (job) { - job->set_progress_unknown (); + if (len > 0) { + job->set_progress (float (_format_context->pb->pos) / len); + } else { + job->set_progress_unknown (); + } } AVCodecContext* context = _format_context->streams[_packet.stream_index]->codec; |
