projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
std::shared_ptr
[dcpomatic.git]
/
src
/
wx
/
video_view.cc
diff --git
a/src/wx/video_view.cc
b/src/wx/video_view.cc
index b0e16737c9c91ebbe88c4b4c8777869c1c0aef9d..42a7fe58b22c3a4d39ba98c26d9c171d13c4caed 100644
(file)
--- a/
src/wx/video_view.cc
+++ b/
src/wx/video_view.cc
@@
-22,17
+22,15
@@
#include "wx_util.h"
#include "film_viewer.h"
#include "lib/butler.h"
#include "wx_util.h"
#include "film_viewer.h"
#include "lib/butler.h"
+#include "lib/dcpomatic_log.h"
#include <boost/optional.hpp>
using std::pair;
#include <boost/optional.hpp>
using std::pair;
-using
boost
::shared_ptr;
+using
std
::shared_ptr;
using boost::optional;
VideoView::VideoView (FilmViewer* viewer)
: _viewer (viewer)
using boost::optional;
VideoView::VideoView (FilmViewer* viewer)
: _viewer (viewer)
-#ifdef DCPOMATIC_VARIANT_SWAROOP
- , _in_watermark (false)
-#endif
, _state_timer ("viewer")
, _video_frame_rate (0)
, _eyes (EYES_LEFT)
, _state_timer ("viewer")
, _video_frame_rate (0)
, _eyes (EYES_LEFT)
@@
-54,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.
/** 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()) {
VideoView::get_next_frame (bool non_blocking)
{
if (length() == dcpomatic::DCPTime()) {
- return
true
;
+ return
FAIL
;
}
shared_ptr<Butler> butler = _viewer->butler ();
if (!butler) {
}
shared_ptr<Butler> butler = _viewer->butler ();
if (!butler) {
- return
false
;
+ return
FAIL
;
}
add_get ();
}
add_get ();
@@
-74,8
+73,11
@@
VideoView::get_next_frame (bool non_blocking)
do {
Butler::Error e;
pair<shared_ptr<PlayerVideo>, dcpomatic::DCPTime> pv = butler->get_video (!non_blocking, &e);
do {
Butler::Error e;
pair<shared_ptr<PlayerVideo>, dcpomatic::DCPTime> pv = butler->get_video (!non_blocking, &e);
- if (!pv.first && e == Butler::AGAIN) {
- return false;
+ if (e.code == Butler::Error::DIED) {
+ LOG_ERROR ("Butler died with %1", e.summary());
+ }
+ if (!pv.first) {
+ return e.code == Butler::Error::AGAIN ? AGAIN : FAIL;
}
_player_video = pv;
} while (
}
_player_video = pv;
} while (
@@
-89,7
+91,7
@@
VideoView::get_next_frame (bool non_blocking)
++_errored;
}
++_errored;
}
- return
true
;
+ return
SUCCESS
;
}
dcpomatic::DCPTime
}
dcpomatic::DCPTime
@@
-124,14
+126,14
@@
VideoView::start ()
}
bool
}
bool
-VideoView::re
fresh_metadata (shared_ptr<const Film> film, dcp::Size video_container_size, dcp::Size film_frame
_size)
+VideoView::re
set_metadata (shared_ptr<const Film> film, dcp::Size player_video_container
_size)
{
pair<shared_ptr<PlayerVideo>, dcpomatic::DCPTime> pv = player_video ();
if (!pv.first) {
return false;
}
{
pair<shared_ptr<PlayerVideo>, 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;
}
return false;
}