#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 <boost/signals2.hpp>
#include <boost/thread.hpp>
class PlayerVideo;
-class VideoView : public ExceptionStore
+class VideoView : public ExceptionStore, public Signaller
{
public:
VideoView (FilmViewer* viewer);
/** Emitted from the GUI thread when our display changes in size */
boost::signals2::signal<void()> Sized;
+ /** Emitted from the GUI thread when a lot of frames are being dropped */
+ boost::signals2::signal<void()> TooManyDropped;
/* Accessors for FilmViewer */
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);
bool _three_d = false;
int _dropped = 0;
+ struct timeval _dropped_check_period_start;
int _errored = 0;
int _gets = 0;
};