diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-12-04 21:55:06 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-12-04 21:55:06 +0000 |
| commit | a3241f40b061480a0907699a5857075388216643 (patch) | |
| tree | 4e1d80bbe66c093d6844024c4ea62e9ff61643d0 /src/lib/player.h | |
| parent | 98060a4e6f02b418f30b4b736e5880a357454c40 (diff) | |
Suspend scale / crop / window / subtitle overlay until we decide that a frame is going to be used.
Diffstat (limited to 'src/lib/player.h')
| -rw-r--r-- | src/lib/player.h | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/lib/player.h b/src/lib/player.h index 5f7c2e369..11cc99e77 100644 --- a/src/lib/player.h +++ b/src/lib/player.h @@ -52,6 +52,28 @@ public: VideoContent::Frame frame; Time extra; }; + +/** A wrapper for an Image which contains some pending operations; these may + * not be necessary if the receiver of the PlayerImage throws it away. + */ +class PlayerImage +{ +public: + PlayerImage (boost::shared_ptr<const Image>, Crop, libdcp::Size, libdcp::Size, Scaler const *); + + void set_subtitle (boost::shared_ptr<const Image>, Position<int>); + + boost::shared_ptr<Image> image (); + +private: + boost::shared_ptr<const Image> _in; + Crop _crop; + libdcp::Size _inter_size; + libdcp::Size _out_size; + Scaler const * _scaler; + boost::shared_ptr<const Image> _subtitle_image; + Position<int> _subtitle_position; +}; class Player : public boost::enable_shared_from_this<Player>, public boost::noncopyable { @@ -79,7 +101,7 @@ public: * Fourth parameter is true if the image is the same as the last one that was emitted. * Fifth parameter is the time. */ - boost::signals2::signal<void (boost::shared_ptr<const Image>, Eyes, ColourConversion, bool, Time)> Video; + boost::signals2::signal<void (boost::shared_ptr<PlayerImage>, Eyes, ColourConversion, bool, Time)> Video; /** Emitted when some audio data is ready */ boost::signals2::signal<void (boost::shared_ptr<const AudioBuffers>, Time)> Audio; @@ -128,7 +150,7 @@ private: AudioMerger<Time, AudioContent::Frame> _audio_merger; libdcp::Size _video_container_size; - boost::shared_ptr<Image> _black_frame; + boost::shared_ptr<PlayerImage> _black_frame; std::map<boost::shared_ptr<AudioContent>, boost::shared_ptr<Resampler> > _resamplers; struct { |
