#include "wx_util.h"
#include "film_viewer.h"
#include "lib/butler.h"
+#include <boost/optional.hpp>
+using std::pair;
using boost::shared_ptr;
+using boost::optional;
VideoView::VideoView (FilmViewer* viewer)
: _viewer (viewer)
return dcpomatic::DCPTime::from_frames (1, video_frame_rate());
}
-/** @return Time in ms until the next frame is due */
-int
+/** @return Time in ms until the next frame is due, or empty if nothing is due */
+optional<int>
VideoView::time_until_next_frame () const
{
if (length() == dcpomatic::DCPTime()) {
/* There's no content, so this doesn't matter */
- return 0;
+ return optional<int>();
}
dcpomatic::DCPTime const next = position() + one_video_frame();
bool
VideoView::refresh_metadata (shared_ptr<const Film> film, dcp::Size video_container_size, dcp::Size film_frame_size)
{
- boost::mutex::scoped_lock lm (_mutex);
- if (!_player_video.first) {
+ pair<shared_ptr<PlayerVideo>, dcpomatic::DCPTime> pv = player_video ();
+ if (!pv.first) {
return false;
}
- if (!_player_video.first->reset_metadata (film, video_container_size, film_frame_size)) {
+ if (!pv.first->reset_metadata (film, video_container_size, film_frame_size)) {
return false;
}