+ boost::shared_ptr<Film> film () const {
+ return _film;
+ }
+
+ /** @return our `playhead' position; this may not lie exactly on a frame boundary */
+ DCPTime position () const {
+ return _video_position;
+ }
+
+ void set_position (DCPTime p);
+ void set_position (boost::shared_ptr<Content> content, ContentTime p);
+ void set_coalesce_player_changes (bool c);
+ void set_dcp_decode_reduction (boost::optional<int> reduction);
+ boost::optional<int> dcp_decode_reduction () const;
+
+ void slow_refresh ();
+ bool quick_refresh ();
+
+ int dropped () const {
+ return _dropped;
+ }
+
+ void start ();
+ bool stop ();
+ bool playing () const {
+ return _playing;
+ }
+
+ void back_frame ();
+ void forward_frame ();
+
+ int audio_callback (void* out, unsigned int frames);
+
+ void show_closed_captions ();
+
+ boost::signals2::signal<void (boost::weak_ptr<PlayerVideo>)> ImageChanged;