X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fplayer.h;h=eb6589b564cce151cee832f0b2db929cc61411d3;hp=684de53f5b46d56290a64615e0eb488e9966fe77;hb=ba8a5a15cc27988e2bbc6acd470d8532f1d8e99f;hpb=f5a2789fcab274f2beda4a1e4ff59567158c9686 diff --git a/src/lib/player.h b/src/lib/player.h index 684de53f5..eb6589b56 100644 --- a/src/lib/player.h +++ b/src/lib/player.h @@ -78,6 +78,9 @@ public: boost::signals2::signal, DCPTime)> Video; boost::signals2::signal, DCPTime)> Audio; + /** Emitted when a subtitle is ready. This signal may be emitted considerably + * after the corresponding Video. + */ boost::signals2::signal Subtitle; private: @@ -104,15 +107,18 @@ private: std::list > overlaps (DCPTime from, DCPTime to, boost::function valid); void video (boost::weak_ptr, ContentVideo); void audio (boost::weak_ptr, AudioStreamPtr, ContentAudio); - void image_subtitle (boost::weak_ptr, ContentImageSubtitle); - void text_subtitle (boost::weak_ptr, ContentTextSubtitle); + void image_subtitle_start (boost::weak_ptr, ContentImageSubtitle); + void text_subtitle_start (boost::weak_ptr, ContentTextSubtitle); + void subtitle_stop (boost::weak_ptr, ContentTime); boost::shared_ptr resampler (boost::shared_ptr content, AudioStreamPtr stream, bool create); DCPTime one_video_frame () const; void fill_video (DCPTimePeriod period); void fill_audio (DCPTimePeriod period); void audio_flush (boost::shared_ptr, AudioStreamPtr stream); void audio_transform (boost::shared_ptr content, AudioStreamPtr stream, ContentAudio content_audio, DCPTime time); - std::pair, DCPTime> discard_audio (boost::shared_ptr audio, DCPTime time, DCPTime discard_to) const; + std::pair, DCPTime> discard_audio ( + boost::shared_ptr audio, DCPTime time, DCPTime discard_to + ) const; boost::shared_ptr _film; boost::shared_ptr _playlist; @@ -164,7 +170,8 @@ private: std::list _no_video; std::list _no_audio; - std::list > _subtitles; + typedef std::map, std::pair > ActiveSubtitles; + ActiveSubtitles _active_subtitles; boost::shared_ptr _audio_processor; typedef std::map, AudioStreamPtr>, boost::shared_ptr > ResamplerMap;