X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fvideo_view.h;h=5353f213f8803e3e2a9865c6a0567610edf51fc9;hb=cf65fc50de34028b463825ec4cd6ab4b5bf46279;hp=d3a15d38c3e9573a252acecf49134333120be24a;hpb=bb949ec65adf95f4a2c7dd5ee7e97b9daaaf3d3f;p=dcpomatic.git diff --git a/src/wx/video_view.h b/src/wx/video_view.h index d3a15d38c..5353f213f 100644 --- a/src/wx/video_view.h +++ b/src/wx/video_view.h @@ -24,9 +24,11 @@ #include "lib/dcpomatic_time.h" +#include "lib/exception_store.h" +#include "lib/signaller.h" #include "lib/timer.h" #include "lib/types.h" -#include "lib/exception_store.h" +#include #include #include @@ -38,7 +40,7 @@ class Player; class PlayerVideo; -class VideoView : public ExceptionStore +class VideoView : public ExceptionStore, public Signaller { public: VideoView (FilmViewer* viewer); @@ -70,6 +72,8 @@ public: /** Emitted from the GUI thread when our display changes in size */ boost::signals2::signal Sized; + /** Emitted from the GUI thread when a lot of frames are being dropped */ + boost::signals2::signal TooManyDropped; /* Accessors for FilmViewer */ @@ -123,11 +127,25 @@ public: _three_d = t; } + void set_optimise_for_j2k (bool o) { + _optimise_for_j2k = o; + } + protected: NextFrameResult get_next_frame (bool non_blocking); boost::optional time_until_next_frame () const; dcpomatic::DCPTime one_video_frame () const; + wxColour pad_colour () const; + + wxColour outline_content_colour () const { + return wxColour(255, 0, 0); + } + + wxColour outline_subtitles_colour () const { + return wxColour(0, 255, 0); + } + int video_frame_rate () const { boost::mutex::scoped_lock lm (_mutex); return _video_frame_rate; @@ -143,10 +161,7 @@ protected: return _player_video; } - void add_dropped () { - boost::mutex::scoped_lock lm (_mutex); - ++_dropped; - } + void add_dropped (); void add_get () { boost::mutex::scoped_lock lm (_mutex); @@ -157,6 +172,8 @@ protected: StateTimer _state_timer; + bool _optimise_for_j2k = false; + private: /** Mutex protecting all the state in this class */ mutable boost::mutex _mutex; @@ -169,6 +186,7 @@ private: bool _three_d = false; int _dropped = 0; + struct timeval _dropped_check_period_start; int _errored = 0; int _gets = 0; };