projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Various alignment adjustments.
[dcpomatic.git]
/
src
/
wx
/
film_viewer.cc
diff --git
a/src/wx/film_viewer.cc
b/src/wx/film_viewer.cc
index c7e154fa53597bf340bb4337cc32af6174bb8159..735ba02eba88925b5412348cfe592890fe9dc756 100644
(file)
--- a/
src/wx/film_viewer.cc
+++ b/
src/wx/film_viewer.cc
@@
-96,10
+96,10
@@
FilmViewer::FilmViewer (wxWindow* p)
{
switch (Config::instance()->video_view_type()) {
case Config::VIDEO_VIEW_OPENGL:
{
switch (Config::instance()->video_view_type()) {
case Config::VIDEO_VIEW_OPENGL:
- _video_view =
new GLVideoView
(this, p);
+ _video_view =
std::make_shared<GLVideoView>
(this, p);
break;
case Config::VIDEO_VIEW_SIMPLE:
break;
case Config::VIDEO_VIEW_SIMPLE:
- _video_view =
new SimpleVideoView
(this, p);
+ _video_view =
std::make_shared<SimpleVideoView>
(this, p);
break;
}
break;
}
@@
-169,7
+169,7
@@
FilmViewer::set_film (shared_ptr<Film> film)
}
try {
}
try {
- _player = make_shared<Player>(_film);
+ _player = make_shared<Player>(_film
, !_optimise_for_j2k
);
_player->set_fast ();
if (_dcp_decode_reduction) {
_player->set_dcp_decode_reduction (_dcp_decode_reduction);
_player->set_fast ();
if (_dcp_decode_reduction) {
_player->set_dcp_decode_reduction (_dcp_decode_reduction);
@@
-221,8
+221,9
@@
FilmViewer::recreate_butler ()
_audio_channels,
bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24),
VideoRange::FULL,
_audio_channels,
bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24),
VideoRange::FULL,
- false,
- true
+ !_optimise_for_j2k,
+ true,
+ dynamic_pointer_cast<GLVideoView>(_video_view) && _optimise_for_j2k
);
if (!Config::instance()->sound() && !_audio.isStreamOpen()) {
);
if (!Config::instance()->sound() && !_audio.isStreamOpen()) {
@@
-281,21
+282,22
@@
FilmViewer::calculate_sizes ()
auto const view_ratio = float(_video_view->get()->GetSize().x) / _video_view->get()->GetSize().y;
auto const film_ratio = container ? container->ratio () : 1.78;
auto const view_ratio = float(_video_view->get()->GetSize().x) / _video_view->get()->GetSize().y;
auto const film_ratio = container ? container->ratio () : 1.78;
+ dcp::Size out_size;
if (view_ratio < film_ratio) {
/* panel is less widscreen than the film; clamp width */
if (view_ratio < film_ratio) {
/* panel is less widscreen than the film; clamp width */
-
_
out_size.width = _video_view->get()->GetSize().x;
-
_out_size.height = lrintf (_
out_size.width / film_ratio);
+ out_size.width = _video_view->get()->GetSize().x;
+
out_size.height = lrintf (
out_size.width / film_ratio);
} else {
/* panel is more widescreen than the film; clamp height */
} else {
/* panel is more widescreen than the film; clamp height */
-
_
out_size.height = _video_view->get()->GetSize().y;
-
_out_size.width = lrintf (_
out_size.height * film_ratio);
+ out_size.height = _video_view->get()->GetSize().y;
+
out_size.width = lrintf (
out_size.height * film_ratio);
}
/* Catch silly values */
}
/* Catch silly values */
-
_out_size.width = max (64, _
out_size.width);
-
_out_size.height = max (64, _
out_size.height);
+
out_size.width = max (64,
out_size.width);
+
out_size.height = max (64,
out_size.height);
- _player->set_video_container_size (
_
out_size);
+ _player->set_video_container_size (out_size);
}
}
@@
-771,3
+773,12
@@
FilmViewer::image_changed (shared_ptr<PlayerVideo> pv)
{
emit (boost::bind(boost::ref(ImageChanged), pv));
}
{
emit (boost::bind(boost::ref(ImageChanged), pv));
}
+
+
+void
+FilmViewer::set_optimise_for_j2k (bool o)
+{
+ _optimise_for_j2k = o;
+ _video_view->set_optimise_for_j2k (o);
+}
+