/*
- Copyright (C) 2019 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2019-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
+
#include "video_view.h"
#include "wx_util.h"
#include "film_viewer.h"
using std::shared_ptr;
using boost::optional;
+
VideoView::VideoView (FilmViewer* viewer)
: _viewer (viewer)
, _state_timer ("viewer")
- , _video_frame_rate (0)
- , _eyes (Eyes::LEFT)
- , _three_d (false)
- , _dropped (0)
- , _errored (0)
- , _gets (0)
{
}
+
void
VideoView::clear ()
{
_player_video.second = dcpomatic::DCPTime ();
}
+
/** Could be called from any thread.
* @param non_blocking true to return false quickly if no video is available quickly.
* @return FAIL if there's no frame, AGAIN if the method should be called again, or SUCCESS
return SUCCESS;
}
+
dcpomatic::DCPTime
VideoView::one_video_frame () const
{
return dcpomatic::DCPTime::from_frames (1, video_frame_rate());
}
+
/** @return Time in ms until the next frame is due, or empty if nothing is due */
optional<int>
VideoView::time_until_next_frame () const
return (next.seconds() - time.seconds()) * 1000;
}
+
void
VideoView::start ()
{
_errored = 0;
}
+
bool
VideoView::reset_metadata (shared_ptr<const Film> film, dcp::Size player_video_container_size)
{