summaryrefslogtreecommitdiff
path: root/src/lib/dcp_decoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-02-07 20:14:19 +0000
committerCarl Hetherington <cth@carlh.net>2018-02-07 20:14:19 +0000
commit8bfe295dcc4e1753ee1c89310108bc6bc034cd61 (patch)
tree289ccc6ecca26e97248a79a966921edc74b5e08a /src/lib/dcp_decoder.cc
parent42a6035c187305bd4c541bb1ab87b242b58beb7e (diff)
Fix ignore/referencing logic.
Diffstat (limited to 'src/lib/dcp_decoder.cc')
-rw-r--r--src/lib/dcp_decoder.cc17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/lib/dcp_decoder.cc b/src/lib/dcp_decoder.cc
index 3379f8e90..14b791aa2 100644
--- a/src/lib/dcp_decoder.cc
+++ b/src/lib/dcp_decoder.cc
@@ -77,14 +77,7 @@ DCPDecoder::DCPDecoder (shared_ptr<const DCPContent> c, shared_ptr<Log> log, boo
cpl = cpls().front ();
}
- if (!_decode_referenced) {
- if (c->reference_video()) {
- video->set_ignore();
- }
- if (c->reference_audio()) {
- audio->set_ignore();
- }
- }
+ set_decode_referenced (false);
_reels = cpl->reels ();
@@ -93,6 +86,7 @@ DCPDecoder::DCPDecoder (shared_ptr<const DCPContent> c, shared_ptr<Log> log, boo
get_readers ();
}
+
bool
DCPDecoder::pass ()
{
@@ -299,9 +293,12 @@ DCPDecoder::seek (ContentTime t, bool accurate)
}
void
-DCPDecoder::set_decode_referenced ()
+DCPDecoder::set_decode_referenced (bool r)
{
- _decode_referenced = true;
+ _decode_referenced = r;
+
+ video->set_ignore (_dcp_content->reference_video() && !_decode_referenced);
+ audio->set_ignore (_dcp_content->reference_audio() && !_decode_referenced);
}
void