From cf42297fb317e27633c58dc34beb88425c4bf0ef Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 18 Dec 2012 00:07:54 +0000 Subject: [PATCH] Fix old image hanging around when creating a new film. --- src/wx/film_viewer.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index 9d024bca1..ae6d38560 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -174,6 +174,7 @@ FilmViewer::paint_panel (wxPaintEvent& ev) wxPaintDC dc (_panel); if (!_display_frame || !_film) { + dc.Clear (); return; } @@ -239,7 +240,7 @@ FilmViewer::update_from_raw () void FilmViewer::raw_to_display () { - if (!_out_width || !_out_height || !_film) { + if (!_raw_frame || !_out_width || !_out_height || !_film) { return; } @@ -312,10 +313,17 @@ FilmViewer::process_video (shared_ptr image, shared_ptr sub) void FilmViewer::get_frame () { + /* Clear our raw frame in case we don't get a new one */ + _raw_frame.reset (); + try { shared_ptr last = _display_frame; while (last == _display_frame) { if (_decoders.video->pass ()) { + /* We didn't get a frame before the decoder gave up, + so clear our display frame. + */ + _display_frame.reset (); break; } } -- 2.30.2