summaryrefslogtreecommitdiff
path: root/src/lib/player.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-07-26 15:07:09 +0100
committerCarl Hetherington <cth@carlh.net>2018-07-26 15:07:09 +0100
commit53e1b97984f7e8c7bf1b16a9f3a333578545ec10 (patch)
tree4ec161be97788d98d1e67d1d339b79923e1f4ee4 /src/lib/player.cc
parent8484d278ec6905502bd1178cc58d8cb7b3c12df0 (diff)
Add support for ignoring everything except text in the player.
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 8b2ade1dc..790d9a718 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);
@@ -437,6 +447,14 @@ void
Player::set_ignore_video ()
{
_ignore_video = true;
+ _have_valid_pieces = false;
+}
+
+void
+Player::set_ignore_audio ()
+{
+ _ignore_audio = true;
+ _have_valid_pieces = false;
}
void