X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fplayer.h;h=48dcd8892c6891761b96979551477bb272107102;hb=4c0577afdbb38d4cf15208fb2d74d180f44b4609;hp=eb6589b564cce151cee832f0b2db929cc61411d3;hpb=ba8a5a15cc27988e2bbc6acd470d8532f1d8e99f;p=dcpomatic.git diff --git a/src/lib/player.h b/src/lib/player.h index eb6589b56..48dcd8892 100644 --- a/src/lib/player.h +++ b/src/lib/player.h @@ -62,7 +62,6 @@ public: void set_video_container_size (dcp::Size); void set_ignore_video (); - void set_ignore_audio (); void set_enable_subtitles (bool enable); void set_always_burn_subtitles (bool burn); void set_fast (); @@ -86,7 +85,6 @@ public: private: friend class PlayerWrapper; friend class Piece; - friend struct player_overlaps_test; friend struct player_time_calculation_test1; friend struct player_time_calculation_test2; friend struct player_time_calculation_test3; @@ -104,7 +102,6 @@ private: ContentTime dcp_to_content_time (boost::shared_ptr piece, DCPTime t) const; DCPTime content_time_to_dcp (boost::shared_ptr piece, ContentTime t) const; boost::shared_ptr black_player_video_frame () const; - 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_start (boost::weak_ptr, ContentImageSubtitle); @@ -119,6 +116,7 @@ private: std::pair, DCPTime> discard_audio ( boost::shared_ptr audio, DCPTime time, DCPTime discard_to ) const; + boost::optional subtitles_for_frame (DCPTime time) const; boost::shared_ptr _film; boost::shared_ptr _playlist; @@ -150,10 +148,12 @@ private: boost::optional _last_video_time; /** Time just after the last audio frame we emitted, or the last seek time */ boost::optional _last_audio_time; + boost::optional _last_seek_time; AudioMerger _audio_merger; - class StreamState { + class StreamState + { public: StreamState () {} @@ -170,8 +170,22 @@ private: std::list _no_video; std::list _no_audio; - typedef std::map, std::pair > ActiveSubtitles; - ActiveSubtitles _active_subtitles; + class ActiveSubtitles + { + public: + ActiveSubtitles () {} + + ActiveSubtitles (PlayerSubtitles s, DCPTime f) + : subs (s) + , from (f) + {} + + PlayerSubtitles subs; + DCPTime from; + boost::optional to; + }; + typedef std::map, std::list > ActiveSubtitlesMap; + ActiveSubtitlesMap _active_subtitles; boost::shared_ptr _audio_processor; typedef std::map, AudioStreamPtr>, boost::shared_ptr > ResamplerMap;