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
/
gl_video_view.cc
diff --git
a/src/wx/gl_video_view.cc
b/src/wx/gl_video_view.cc
index 50fdd02987e5d193447b8602adb323628dbc3031..969264c2710d5656a22303c07c5b38f69660b23b 100644
(file)
--- a/
src/wx/gl_video_view.cc
+++ b/
src/wx/gl_video_view.cc
@@
-27,7
+27,7
@@
#include "lib/cross.h"
#include "lib/player_video.h"
#include "lib/butler.h"
#include "lib/cross.h"
#include "lib/player_video.h"
#include "lib/butler.h"
-#include <boost/bind.hpp>
+#include <boost/bind
/bind
.hpp>
#include <iostream>
#ifdef DCPOMATIC_OSX
#include <iostream>
#ifdef DCPOMATIC_OSX
@@
-40,7
+40,6
@@
#ifdef DCPOMATIC_LINUX
#include <GL/glu.h>
#include <GL/glext.h>
#ifdef DCPOMATIC_LINUX
#include <GL/glu.h>
#include <GL/glext.h>
-#include <GL/glxext.h>
#endif
#ifdef DCPOMATIC_WINDOWS
#endif
#ifdef DCPOMATIC_WINDOWS
@@
-50,8
+49,11
@@
#endif
using std::cout;
#endif
using std::cout;
-using
boost
::shared_ptr;
+using
std
::shared_ptr;
using boost::optional;
using boost::optional;
+#if BOOST_VERSION >= 106100
+using namespace boost::placeholders;
+#endif
static void
static void
@@
-110,16
+112,17
@@
GLVideoView::check_for_butler_errors ()
void
GLVideoView::update ()
{
void
GLVideoView::update ()
{
- if (!_thread.joinable()) {
- _thread = boost::thread (boost::bind(&GLVideoView::thread, this));
- }
-
{
boost::mutex::scoped_lock lm (_canvas_mutex);
if (!_canvas->IsShownOnScreen()) {
return;
}
}
{
boost::mutex::scoped_lock lm (_canvas_mutex);
if (!_canvas->IsShownOnScreen()) {
return;
}
}
+
+ if (!_thread.joinable()) {
+ _thread = boost::thread (boost::bind(&GLVideoView::thread, this));
+ }
+
request_one_shot ();
}
request_one_shot ();
}
@@
-322,8
+325,9
@@
GLVideoView::set_image_and_draw ()
{
shared_ptr<PlayerVideo> pv = player_video().first;
if (pv) {
{
shared_ptr<PlayerVideo> pv = player_video().first;
if (pv) {
- set_image (pv->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true));
+ set_image (pv->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24),
VIDEO_RANGE_FULL,
false, true));
draw (pv->inter_position(), pv->inter_size());
draw (pv->inter_position(), pv->inter_size());
+ _viewer->image_changed (pv);
}
}
}
}
@@
-401,14
+405,16
@@
catch (boost::thread_interrupted& e)
store_current ();
}
store_current ();
}
-bool
+
+VideoView::NextFrameResult
GLVideoView::display_next_frame (bool non_blocking)
{
GLVideoView::display_next_frame (bool non_blocking)
{
-
bool
const r = get_next_frame (non_blocking);
+
NextFrameResult
const r = get_next_frame (non_blocking);
request_one_shot ();
return r;
}
request_one_shot ();
return r;
}
+
void
GLVideoView::request_one_shot ()
{
void
GLVideoView::request_one_shot ()
{