summaryrefslogtreecommitdiff
path: root/src/lib/player.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-07-27 16:14:41 +0100
committerCarl Hetherington <cth@carlh.net>2018-07-27 16:14:41 +0100
commitae4f0d9f55489ddc50b3e5f0d713621ee8f50645 (patch)
tree05adaa258ecce8029f754a58c847ac3904239400 /src/lib/player.cc
parent3009a585f5222a83213c786e3c564c740f450d18 (diff)
parent3006dde72c92356165ef841910368d0dae27ddbe (diff)
Merge branch 'master' of ssh://git.carlh.net/home/carl/git/dcpomatic
Diffstat (limited to 'src/lib/player.cc')
-rw-r--r--src/lib/player.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/lib/player.cc b/src/lib/player.cc
index f8471c752..bb0aef458 100644
--- a/src/lib/player.cc
+++ b/src/lib/player.cc
@@ -89,6 +89,7 @@ Player::Player (shared_ptr<const Film> film, shared_ptr<const Playlist> playlist
, _playlist (playlist)
, _have_valid_pieces (false)
, _ignore_video (false)
+ , _ignore_audio (false)
, _ignore_text (false)
, _always_burn_open_subtitles (false)
, _fast (false)
@@ -126,6 +127,11 @@ Player::setup_pieces ()
continue;
}
+ if (_ignore_video && _ignore_audio && i->text.empty()) {
+ /* We're only interested in text and this content has none */
+ continue;
+ }
+
shared_ptr<Decoder> decoder = decoder_factory (i, _film->log(), _fast);
FrameRateChange frc (i->active_video_frame_rate(), _film->video_frame_rate());
@@ -138,6 +144,10 @@ Player::setup_pieces ()
decoder->video->set_ignore (true);
}
+ if (decoder->audio && _ignore_audio) {
+ decoder->audio->set_ignore (true);
+ }
+
if (_ignore_text) {
BOOST_FOREACH (shared_ptr<TextDecoder> i, decoder->text) {
i->set_ignore (true);
@@ -444,6 +454,14 @@ Player::set_ignore_video ()
{
boost::mutex::scoped_lock lm (_mutex);
_ignore_video = true;
+ _have_valid_pieces = false;
+}
+
+void
+Player::set_ignore_audio ()
+{
+ _ignore_audio = true;
+ _have_valid_pieces = false;
}
void