: DCP (c)
, _decode_referenced (false)
{
- video.reset (new VideoDecoder (this, c, log));
+ if (c->video) {
+ video.reset (new VideoDecoder (this, c, log));
+ }
if (c->audio) {
audio.reset (new AudioDecoder (this, c->audio, log, fast));
}
void
DCPDecoder::seek (ContentTime t, bool accurate)
{
+ if (!_dcp_content->can_be_played ()) {
+ return;
+ }
+
Decoder::seek (t, accurate);
_reel = _reels.begin ();
{
_decode_referenced = r;
- video->set_ignore (_dcp_content->reference_video() && !_decode_referenced);
- audio->set_ignore (_dcp_content->reference_audio() && !_decode_referenced);
+ if (video) {
+ video->set_ignore (_dcp_content->reference_video() && !_decode_referenced);
+ }
+ if (audio) {
+ audio->set_ignore (_dcp_content->reference_audio() && !_decode_referenced);
+ }
}
void