From 6cac49dc50dae6b173135df101d532f20031ca70 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 14 Sep 2021 01:36:38 +0200 Subject: [PATCH] Setup Butler::_prepare_only_proxy on construction. --- src/lib/butler.cc | 4 +++- src/lib/butler.h | 6 ++---- src/lib/ffmpeg_encoder.cc | 2 +- src/wx/film_viewer.cc | 7 ++----- test/butler_test.cc | 2 +- test/dcp_playback_test.cc | 3 ++- test/player_test.cc | 6 +++--- 7 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/lib/butler.cc b/src/lib/butler.cc index cbd5ba15d..ca0887a4c 100644 --- a/src/lib/butler.cc +++ b/src/lib/butler.cc @@ -68,7 +68,8 @@ Butler::Butler ( function pixel_format, VideoRange video_range, bool aligned, - bool fast + bool fast, + bool prepare_only_proxy ) : _film (film) , _player (player) @@ -85,6 +86,7 @@ Butler::Butler ( , _video_range (video_range) , _aligned (aligned) , _fast (fast) + , _prepare_only_proxy (prepare_only_proxy) { _player_video_connection = _player->Video.connect (bind (&Butler::video, this, _1, _2)); _player_audio_connection = _player->Audio.connect (bind (&Butler::audio, this, _1, _2, _3)); diff --git a/src/lib/butler.h b/src/lib/butler.h index d31442f6c..320e56bf9 100644 --- a/src/lib/butler.h +++ b/src/lib/butler.h @@ -46,7 +46,8 @@ public: std::function pixel_format, VideoRange video_range, bool aligned, - bool fast + bool fast, + bool prepare_only_proxy ); ~Butler (); @@ -80,9 +81,6 @@ public: boost::optional get_closed_caption (); void disable_audio (); - void set_prepare_only_proxy (bool p) { - _prepare_only_proxy = p; - } std::pair memory_used () const; diff --git a/src/lib/ffmpeg_encoder.cc b/src/lib/ffmpeg_encoder.cc index 61ca1ae00..77f27d519 100644 --- a/src/lib/ffmpeg_encoder.cc +++ b/src/lib/ffmpeg_encoder.cc @@ -108,7 +108,7 @@ FFmpegEncoder::FFmpegEncoder ( } _butler = std::make_shared( - _film, _player, map, _output_audio_channels, bind(&PlayerVideo::force, _1, FFmpegFileEncoder::pixel_format(format)), VideoRange::VIDEO, true, false + _film, _player, map, _output_audio_channels, bind(&PlayerVideo::force, _1, FFmpegFileEncoder::pixel_format(format)), VideoRange::VIDEO, true, false, false ); } diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index 749e4ceb7..98948b1f2 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -222,17 +222,14 @@ FilmViewer::recreate_butler () bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, - true + true, + dynamic_pointer_cast(_video_view) && _optimise_for_j2k ); if (!Config::instance()->sound() && !_audio.isStreamOpen()) { _butler->disable_audio (); } - if (dynamic_pointer_cast(_video_view) && _optimise_for_j2k) { - _butler->set_prepare_only_proxy (true); - } - _closed_captions_dialog->set_butler (_butler); resume (); diff --git a/test/butler_test.cc b/test/butler_test.cc index dbd7a287e..65c9139d7 100644 --- a/test/butler_test.cc +++ b/test/butler_test.cc @@ -59,7 +59,7 @@ BOOST_AUTO_TEST_CASE (butler_test1) map.set (i, i, 1); } - Butler butler (film, make_shared(film), map, 6, bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, false); + Butler butler (film, make_shared(film), map, 6, bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, false, false); BOOST_CHECK (butler.get_video(true, 0).second == DCPTime()); BOOST_CHECK (butler.get_video(true, 0).second == DCPTime::from_frames(1, 24)); diff --git a/test/dcp_playback_test.cc b/test/dcp_playback_test.cc index ef1b623e7..efe7138e1 100644 --- a/test/dcp_playback_test.cc +++ b/test/dcp_playback_test.cc @@ -53,7 +53,8 @@ BOOST_AUTO_TEST_CASE (dcp_playback_test) bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, - true + true, + false ); auto audio_buffer = new float[2000 * 6]; diff --git a/test/player_test.cc b/test/player_test.cc index c325537fa..1f5b543aa 100644 --- a/test/player_test.cc +++ b/test/player_test.cc @@ -234,7 +234,7 @@ BOOST_AUTO_TEST_CASE (player_seek_test) player->set_always_burn_open_subtitles (); player->set_play_referenced (); - auto butler = std::make_shared(film, player, AudioMapping(), 2, bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true); + auto butler = std::make_shared(film, player, AudioMapping(), 2, bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true, false); butler->disable_audio(); for (int i = 0; i < 10; ++i) { @@ -266,7 +266,7 @@ BOOST_AUTO_TEST_CASE (player_seek_test2) player->set_always_burn_open_subtitles (); player->set_play_referenced (); - auto butler = std::make_shared(film, player, AudioMapping(), 2, bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true); + auto butler = std::make_shared(film, player, AudioMapping(), 2, bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true, false); butler->disable_audio(); butler->seek(DCPTime::from_seconds(5), true); @@ -357,7 +357,7 @@ BOOST_AUTO_TEST_CASE (player_trim_crash) auto player = std::make_shared(film); player->set_fast (); - auto butler = std::make_shared(film, player, AudioMapping(), 6, bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true); + auto butler = std::make_shared(film, player, AudioMapping(), 6, bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true, false); /* Wait for the butler to fill */ dcpomatic_sleep_seconds (5); -- 2.30.2