X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fvideo_view.cc;h=42a7fe58b22c3a4d39ba98c26d9c171d13c4caed;hb=dd9be86db6cde0afa5da0d1d1ac43b42e05dca26;hp=aa3a469dab5267cfb5b9aed3eba70db604c7bdc2;hpb=a332bd6be323f03dad5b180fb237afe54f1bf81e;p=dcpomatic.git diff --git a/src/wx/video_view.cc b/src/wx/video_view.cc index aa3a469da..42a7fe58b 100644 --- a/src/wx/video_view.cc +++ b/src/wx/video_view.cc @@ -26,7 +26,7 @@ #include using std::pair; -using boost::shared_ptr; +using std::shared_ptr; using boost::optional; VideoView::VideoView (FilmViewer* viewer) @@ -52,18 +52,19 @@ VideoView::clear () /** Could be called from any thread. * @param non_blocking true to return false quickly if no video is available quickly. - * @return false if we gave up because it would take too long, otherwise true. + * @return FAIL if there's no frame, AGAIN if the method should be called again, or SUCCESS + * if there is a frame. */ -bool +VideoView::NextFrameResult VideoView::get_next_frame (bool non_blocking) { if (length() == dcpomatic::DCPTime()) { - return true; + return FAIL; } shared_ptr butler = _viewer->butler (); if (!butler) { - return false; + return FAIL; } add_get (); @@ -75,8 +76,8 @@ VideoView::get_next_frame (bool non_blocking) if (e.code == Butler::Error::DIED) { LOG_ERROR ("Butler died with %1", e.summary()); } - if (!pv.first && e.code == Butler::Error::AGAIN) { - return false; + if (!pv.first) { + return e.code == Butler::Error::AGAIN ? AGAIN : FAIL; } _player_video = pv; } while ( @@ -90,7 +91,7 @@ VideoView::get_next_frame (bool non_blocking) ++_errored; } - return true; + return SUCCESS; } dcpomatic::DCPTime @@ -125,14 +126,14 @@ VideoView::start () } bool -VideoView::refresh_metadata (shared_ptr film, dcp::Size video_container_size, dcp::Size film_frame_size) +VideoView::reset_metadata (shared_ptr film, dcp::Size player_video_container_size) { pair, dcpomatic::DCPTime> pv = player_video (); if (!pv.first) { return false; } - if (!pv.first->reset_metadata (film, video_container_size, film_frame_size)) { + if (!pv.first->reset_metadata(film, player_video_container_size)) { return false; }