X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fplayer.cc;h=9e14b65b301aa1c2c20f77950a9a893c65a1f5cb;hb=38164bf6e8095f8a8f852bd21877cfb90d204868;hp=9f9f8db2e3374b369f7c206e480310b9d278dd01;hpb=2cf3da72a017eebf741dfb9a5ec158df94a4e7b7;p=dcpomatic.git diff --git a/src/lib/player.cc b/src/lib/player.cc index 9f9f8db2e..9e14b65b3 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -34,7 +34,7 @@ #include "playlist.h" #include "job.h" #include "image.h" -#include "image_proxy.h" +#include "raw_image_proxy.h" #include "ratio.h" #include "log.h" #include "scaler.h" @@ -45,6 +45,8 @@ #include "frame_rate_change.h" #include "dcp_content.h" #include "dcp_decoder.h" +#include "dcp_subtitle_content.h" +#include "dcp_subtitle_decoder.h" #define LOG_GENERAL(...) _film->log()->log (String::compose (__VA_ARGS__), Log::TYPE_GENERAL); @@ -160,6 +162,13 @@ Player::setup_pieces () frc = best_overlap_frc; } + /* DCPSubtitleContent */ + shared_ptr dsc = dynamic_pointer_cast (*i); + if (dsc) { + decoder.reset (new DCPSubtitleDecoder (dsc)); + frc = best_overlap_frc; + } + _pieces.push_back (shared_ptr (new Piece (*i, decoder, frc.get ()))); }