diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-04-23 23:48:20 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-05-07 09:29:58 +0200 |
| commit | 8aa7473b9e2ed012e5812f2511a624a6fea79d14 (patch) | |
| tree | cf80c428da9257e9b6dfe880e2bb524d2909cc9e | |
| parent | 9208efcd05052b12d4f0587809638c6a5654100f (diff) | |
Add Piece::decoder_for().
| -rw-r--r-- | src/lib/piece.cc | 13 | ||||
| -rw-r--r-- | src/lib/piece.h | 2 | ||||
| -rw-r--r-- | src/lib/player.cc | 5 |
3 files changed, 18 insertions, 2 deletions
diff --git a/src/lib/piece.cc b/src/lib/piece.cc index 5c4563c0e..86fdb5ad4 100644 --- a/src/lib/piece.cc +++ b/src/lib/piece.cc @@ -163,3 +163,16 @@ Piece::audio_gain () const DCPOMATIC_ASSERT (content->audio); return content->audio->gain(); } + + +shared_ptr<Decoder> +Piece::decoder_for (shared_ptr<Content> content_) const +{ + if (content_ == content) { + return decoder; + } + + return {}; +} + + diff --git a/src/lib/piece.h b/src/lib/piece.h index eea5021ca..3df451182 100644 --- a/src/lib/piece.h +++ b/src/lib/piece.h @@ -63,6 +63,8 @@ public: int resampled_audio_frame_rate (std::shared_ptr<const Film> film) const; double audio_gain () const; + std::shared_ptr<Decoder> decoder_for (std::shared_ptr<Content> content) const; + std::shared_ptr<Content> content; std::shared_ptr<Decoder> decoder; boost::optional<dcpomatic::DCPTimePeriod> ignore_video; diff --git a/src/lib/player.cc b/src/lib/player.cc index d95cf661e..dfd005c9c 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -187,8 +187,9 @@ Player::setup_pieces_unlocked () shared_ptr<Decoder> old_decoder; for (auto j: old_pieces) { - if (j->content == i) { - old_decoder = j->decoder; + auto decoder = j->decoder_for(i); + if (decoder) { + old_decoder = decoder; break; } } |
