}
_film = film;
-
- FilmChanged ();
+ _video_position = DCPTime ();
+ _player_video.first.reset ();
+ _player_video.second = DCPTime ();
_frame.reset ();
_closed_captions_dialog->clear ();
map.set (dcp::RS, 1, 1 / sqrt(2)); // Rs -> Rt
}
- _butler.reset (new Butler(_player, _film->log(), map, _audio_channels, bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true));
+ _butler.reset (new Butler(_player, map, _audio_channels, bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true));
if (!Config::instance()->sound() && !_audio.isStreamOpen()) {
_butler->disable_audio ();
}
if (next >= _film->length()) {
stop ();
+ Finished ();
+ return;
}
_timer.Start (max ((next.seconds() - time().seconds()) * 1000, 1.0), wxTIMER_ONE_SHOT);
{
wxPaintDC dc (_panel);
- if (!_frame || !_film || !_out_size.width || !_out_size.height || _out_size != _frame->size()) {
+ if (!_out_size.width || !_out_size.height || (_frame && _out_size != _frame->size())) {
+ dc.Clear ();
+ return;
+ }
+
+ if (!_frame || !_film) {
dc.Clear ();
maybe_draw_background_image (dc);
return;
}
PositionChanged ();
- Seeked (position());
}
void