projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move _state_timer into VideoView.
[dcpomatic.git]
/
src
/
wx
/
simple_video_view.cc
diff --git
a/src/wx/simple_video_view.cc
b/src/wx/simple_video_view.cc
index e66ed815ee32f38dde215725fd85348409f81f02..437aed4fa136f38fe70ab898932d451be7c04c31 100644
(file)
--- a/
src/wx/simple_video_view.cc
+++ b/
src/wx/simple_video_view.cc
@@
-56,7
+56,7
@@
SimpleVideoView::SimpleVideoView (FilmViewer* viewer, wxWindow* parent)
void
SimpleVideoView::paint ()
{
void
SimpleVideoView::paint ()
{
- _
viewer->state_timer()
.set("paint-panel");
+ _
state_timer
.set("paint-panel");
wxPaintDC dc (_panel);
dcp::Size const out_size = _viewer->out_size ();
wxPaintDC dc (_panel);
dcp::Size const out_size = _viewer->out_size ();
@@
-125,41
+125,41
@@
SimpleVideoView::paint ()
}
if (_viewer->outline_content()) {
}
if (_viewer->outline_content()) {
- Position<int> inter_position = _viewer->inter_position ();
- dcp::Size inter_size = _viewer->inter_size ();
wxPen p (wxColour (255, 0, 0), 2);
dc.SetPen (p);
dc.SetBrush (*wxTRANSPARENT_BRUSH);
wxPen p (wxColour (255, 0, 0), 2);
dc.SetPen (p);
dc.SetBrush (*wxTRANSPARENT_BRUSH);
- dc.DrawRectangle (
inter_position.x, inter_position.y + (panel_size.GetHeight() - out_size.height) / 2, inter_size.width,
inter_size.height);
+ dc.DrawRectangle (
_inter_position.x, _inter_position.y + (panel_size.GetHeight() - out_size.height) / 2, _inter_size.width, _
inter_size.height);
}
}
- _
viewer->state_timer()
.unset();
+ _
state_timer
.unset();
}
void
SimpleVideoView::update ()
{
}
void
SimpleVideoView::update ()
{
+ _state_timer.set ("update-view");
_panel->Refresh ();
_panel->Update ();
_panel->Refresh ();
_panel->Update ();
+ _state_timer.unset ();
}
void
SimpleVideoView::timer ()
{
}
void
SimpleVideoView::timer ()
{
- if (!_viewer->
film() || !_viewer->
playing()) {
+ if (!_viewer->playing()) {
return;
}
display_next_frame (false);
DCPTime const next = _viewer->position() + _viewer->one_video_frame();
return;
}
display_next_frame (false);
DCPTime const next = _viewer->position() + _viewer->one_video_frame();
- if (next >=
_viewer->film()->
length()) {
+ if (next >= length()) {
_viewer->stop ();
_viewer->Finished ();
return;
}
LOG_DEBUG_PLAYER("%1 -> %2; delay %3", next.seconds(), _viewer->time().seconds(), max((next.seconds() - _viewer->time().seconds()) * 1000, 1.0));
_viewer->stop ();
_viewer->Finished ();
return;
}
LOG_DEBUG_PLAYER("%1 -> %2; delay %3", next.seconds(), _viewer->time().seconds(), max((next.seconds() - _viewer->time().seconds()) * 1000, 1.0));
- _timer.Start (
_viewer->
time_until_next_frame(), wxTIMER_ONE_SHOT);
+ _timer.Start (time_until_next_frame(), wxTIMER_ONE_SHOT);
if (_viewer->butler()) {
_viewer->butler()->rethrow ();
if (_viewer->butler()) {
_viewer->butler()->rethrow ();
@@
-169,6
+169,7
@@
SimpleVideoView::timer ()
void
SimpleVideoView::start ()
{
void
SimpleVideoView::start ()
{
+ VideoView::start ();
timer ();
}
timer ();
}
@@
-194,23
+195,29
@@
SimpleVideoView::display_next_frame (bool non_blocking)
display_player_video ();
display_player_video ();
+ try {
+ _viewer->butler()->rethrow ();
+ } catch (DecodeError& e) {
+ error_dialog (get(), e.what());
+ }
+
return true;
}
void
SimpleVideoView::display_player_video ()
{
return true;
}
void
SimpleVideoView::display_player_video ()
{
- if (!
_player_video
.first) {
+ if (!
player_video()
.first) {
set_image (shared_ptr<Image>());
_viewer->refresh_view ();
return;
}
set_image (shared_ptr<Image>());
_viewer->refresh_view ();
return;
}
- if (_viewer->playing() && (_viewer->time() -
_player_video.second) > _viewer->
one_video_frame()) {
+ if (_viewer->playing() && (_viewer->time() -
player_video().second) >
one_video_frame()) {
/* Too late; just drop this frame before we try to get its image (which will be the time-consuming
part if this frame is J2K).
*/
/* Too late; just drop this frame before we try to get its image (which will be the time-consuming
part if this frame is J2K).
*/
-
++_viewer->_dropped
;
+
add_dropped ()
;
return;
}
return;
}
@@
-232,20
+239,20
@@
SimpleVideoView::display_player_video ()
* image and convert it (from whatever the user has said it is) to RGB.
*/
* image and convert it (from whatever the user has said it is) to RGB.
*/
- _
viewer->_
state_timer.set ("get image");
+ _state_timer.set ("get image");
set_image (
set_image (
-
_player_video
.first->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true)
+
player_video()
.first->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true)
);
);
- _
viewer->_
state_timer.set ("ImageChanged");
- _viewer->ImageChanged (
_player_video
.first);
- _
viewer->_
state_timer.unset ();
+ _state_timer.set ("ImageChanged");
+ _viewer->ImageChanged (
player_video()
.first);
+ _state_timer.unset ();
- _
viewer->_inter_position = _player_video
.first->inter_position ();
- _
viewer->_inter_size = _player_video
.first->inter_size ();
+ _
inter_position = player_video()
.first->inter_position ();
+ _
inter_size = player_video()
.first->inter_size ();
_viewer->refresh_view ();
_viewer->refresh_view ();
- _viewer->
_closed_captions_dialog
->update (_viewer->time());
+ _viewer->
closed_captions_dialog()
->update (_viewer->time());
}
}