summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2019-05-10 01:32:58 +0100
committerCarl Hetherington <cth@carlh.net>2019-05-10 01:32:58 +0100
commit181af337041e9c147344b5d32e413083d84fbd10 (patch)
treedc661a55d036c282b263b85498246f2eb4bb96f7
parent3bccfd78441e5a4184d5e16442751c6ddca43e34 (diff)
Remove storage of _frame in FilmViewer.
-rw-r--r--src/wx/film_viewer.cc11
-rw-r--r--src/wx/film_viewer.h1
-rw-r--r--src/wx/gl_video_view.cc6
3 files changed, 11 insertions, 7 deletions
diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc
index c83db56de..00bc06e9b 100644
--- a/src/wx/film_viewer.cc
+++ b/src/wx/film_viewer.cc
@@ -132,13 +132,12 @@ FilmViewer::set_film (shared_ptr<Film> film)
_player_video.first.reset ();
_player_video.second = DCPTime ();
- _frame.reset ();
+ _video_view->set_image (shared_ptr<Image>());
_closed_captions_dialog->clear ();
if (!_film) {
_player.reset ();
recreate_butler ();
- _frame.reset ();
refresh_view ();
return;
}
@@ -251,7 +250,7 @@ void
FilmViewer::display_player_video ()
{
if (!_player_video.first) {
- _frame.reset ();
+ _video_view->set_image (shared_ptr<Image>());
refresh_view ();
return;
}
@@ -285,9 +284,9 @@ FilmViewer::display_player_video ()
_state_timer.set ("get image");
- /* XXX: do we need to store _frame? */
- _frame = _player_video.first->image (bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true);
- _video_view->set_image (_frame);
+ _video_view->set_image (
+ _player_video.first->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true)
+ );
_state_timer.set ("ImageChanged");
ImageChanged (_player_video.first);
diff --git a/src/wx/film_viewer.h b/src/wx/film_viewer.h
index 76917f807..b897282d9 100644
--- a/src/wx/film_viewer.h
+++ b/src/wx/film_viewer.h
@@ -159,7 +159,6 @@ private:
std::list<int> _pending_player_changes;
std::pair<boost::shared_ptr<PlayerVideo>, dcpomatic::DCPTime> _player_video;
- boost::shared_ptr<const Image> _frame;
dcpomatic::DCPTime _video_position;
Position<int> _inter_position;
dcp::Size _inter_size;
diff --git a/src/wx/gl_video_view.cc b/src/wx/gl_video_view.cc
index d1e7c7326..0f0118e00 100644
--- a/src/wx/gl_video_view.cc
+++ b/src/wx/gl_video_view.cc
@@ -35,6 +35,7 @@
using std::cout;
using boost::shared_ptr;
+using boost::optional;
GLVideoView::GLVideoView (wxWindow *parent)
{
@@ -117,6 +118,11 @@ GLVideoView::paint (wxPaintEvent &)
void
GLVideoView::set_image (shared_ptr<const Image> image)
{
+ if (!image) {
+ _size = optional<dcp::Size>();
+ return;
+ }
+
DCPOMATIC_ASSERT (image->pixel_format() == AV_PIX_FMT_RGB24);
DCPOMATIC_ASSERT (!image->aligned());