summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2017-08-26 20:45:45 +0100
committerCarl Hetherington <cth@carlh.net>2017-08-26 20:45:45 +0100
commita5f9f8163ecb38a140cf623e141bea1d96866fe5 (patch)
tree6bcc05e9bd7d92d2bf0f6ca655d255ed9059b1f9 /src/lib
parenta6533bd9d37d217035421977d3f0dec86f7a91a1 (diff)
Stop player analysing audio even if it is configured automatically to happen.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/film.cc17
-rw-r--r--src/lib/film.h4
2 files changed, 12 insertions, 9 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 3838dda00..0c6a55386 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -1027,24 +1027,27 @@ Film::content () const
return _playlist->content ();
}
+/** @param content Content to add.
+ * @param disable_audio_analysis true to never do automatic audio analysis, even if it is enabled in configuration.
+ */
void
-Film::examine_and_add_content (shared_ptr<Content> c)
+Film::examine_and_add_content (shared_ptr<Content> content, bool disable_audio_analysis)
{
- if (dynamic_pointer_cast<FFmpegContent> (c) && _directory) {
- run_ffprobe (c->path(0), file ("ffprobe.log"), _log);
+ if (dynamic_pointer_cast<FFmpegContent> (content) && _directory) {
+ run_ffprobe (content->path(0), file ("ffprobe.log"), _log);
}
- shared_ptr<Job> j (new ExamineContentJob (shared_from_this(), c));
+ shared_ptr<Job> j (new ExamineContentJob (shared_from_this(), content));
_job_connections.push_back (
- j->Finished.connect (bind (&Film::maybe_add_content, this, weak_ptr<Job> (j), weak_ptr<Content> (c)))
+ j->Finished.connect (bind (&Film::maybe_add_content, this, weak_ptr<Job>(j), weak_ptr<Content>(content), disable_audio_analysis))
);
JobManager::instance()->add (j);
}
void
-Film::maybe_add_content (weak_ptr<Job> j, weak_ptr<Content> c)
+Film::maybe_add_content (weak_ptr<Job> j, weak_ptr<Content> c, bool disable_audio_analysis)
{
shared_ptr<Job> job = j.lock ();
if (!job || !job->finished_ok ()) {
@@ -1058,7 +1061,7 @@ Film::maybe_add_content (weak_ptr<Job> j, weak_ptr<Content> c)
add_content (content);
- if (Config::instance()->automatic_audio_analysis() && content->audio) {
+ if (Config::instance()->automatic_audio_analysis() && content->audio && !disable_audio_analysis) {
shared_ptr<Playlist> playlist (new Playlist);
playlist->add (content);
boost::signals2::connection c;
diff --git a/src/lib/film.h b/src/lib/film.h
index ec64c3913..0aa3dab3f 100644
--- a/src/lib/film.h
+++ b/src/lib/film.h
@@ -293,7 +293,7 @@ public:
void set_directory (boost::filesystem::path);
void set_name (std::string);
void set_use_isdcf_name (bool);
- void examine_and_add_content (boost::shared_ptr<Content>);
+ void examine_and_add_content (boost::shared_ptr<Content> content, bool disable_audio_analysis = false);
void add_content (boost::shared_ptr<Content>);
void remove_content (boost::shared_ptr<Content>);
void remove_content (ContentList);
@@ -336,7 +336,7 @@ private:
void playlist_changed ();
void playlist_order_changed ();
void playlist_content_changed (boost::weak_ptr<Content>, int, bool frequent);
- void maybe_add_content (boost::weak_ptr<Job>, boost::weak_ptr<Content>);
+ void maybe_add_content (boost::weak_ptr<Job>, boost::weak_ptr<Content>, bool disable_audio_analysis);
void audio_analysis_finished ();
static std::string const metadata_file;