summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-12-18 00:07:54 +0000
committerCarl Hetherington <cth@carlh.net>2012-12-18 00:07:54 +0000
commitcf42297fb317e27633c58dc34beb88425c4bf0ef (patch)
treed7f4678a132215d6dbbd2ead322ad28c7218895e /src
parenta2315091cd9471016e7ed0165d9152a335b8af4f (diff)
Fix old image hanging around when creating a new film.
Diffstat (limited to 'src')
-rw-r--r--src/wx/film_viewer.cc10
1 files changed, 9 insertions, 1 deletions
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> image, shared_ptr<Subtitle> sub)
void
FilmViewer::get_frame ()
{
+ /* Clear our raw frame in case we don't get a new one */
+ _raw_frame.reset ();
+
try {
shared_ptr<Image> 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;
}
}