From dffc146e5387a0b3f7a671d845d6c3051b0e7067 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 22 Jul 2018 21:29:40 +0100 Subject: [PATCH] On reflection showing CCAPs over the main picture doesn't make much sense. --- src/lib/ffmpeg_encoder.cc | 2 +- src/lib/player.cc | 13 +++++-------- src/lib/player.h | 7 ++----- src/wx/film_viewer.cc | 25 +------------------------ src/wx/film_viewer.h | 2 -- test/player_test.cc | 4 ++-- 6 files changed, 11 insertions(+), 42 deletions(-) diff --git a/src/lib/ffmpeg_encoder.cc b/src/lib/ffmpeg_encoder.cc index 10d439f94..29334e8ed 100644 --- a/src/lib/ffmpeg_encoder.cc +++ b/src/lib/ffmpeg_encoder.cc @@ -72,7 +72,7 @@ FFmpegEncoder::FFmpegEncoder (shared_ptr film, weak_ptr job, bo break; } - _player->set_always_burn_captions (CAPTION_OPEN); + _player->set_always_burn_open_captions (); _player->set_play_referenced (); int const ch = film->audio_channels (); diff --git a/src/lib/player.cc b/src/lib/player.cc index 580c3e6d4..dfd309774 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -444,14 +444,11 @@ Player::set_ignore_caption () _ignore_caption = true; } -/** Set a type of caption that this player should always burn into the image, - * regardless of the content settings. - * @param type type of captions to burn. - */ +/** Set the player to always burn open captions into the image regardless of the content settings */ void -Player::set_always_burn_captions (CaptionType type) +Player::set_always_burn_open_captions () { - _always_burn_captions = type; + _always_burn_open_captions = true; } /** Sets up the player to be faster, possibly at the expense of quality */ @@ -687,7 +684,7 @@ Player::captions_for_frame (DCPTime time) const int const vfr = _film->video_frame_rate(); for (int i = 0; i < CAPTION_COUNT; ++i) { - bool const always = _always_burn_captions && *_always_burn_captions == i; + bool const always = i == CAPTION_OPEN && _always_burn_open_captions; BOOST_FOREACH ( PlayerCaption j, _active_captions[i].get_burnt(DCPTimePeriod(time, time + DCPTime::from_frames(1, vfr)), always) @@ -960,7 +957,7 @@ Player::subtitle_stop (weak_ptr wp, weak_ptr wc, Co pair from = _active_captions[type].add_to (wc, dcp_to); - bool const always = _always_burn_captions && *_always_burn_captions == type; + bool const always = type == CAPTION_OPEN && _always_burn_open_captions; if (caption->use() && !always && !caption->burn()) { Caption (from.first, type, DCPTimePeriod (from.second, dcp_to)); } diff --git a/src/lib/player.h b/src/lib/player.h index eda2d7eb0..d54d927cd 100644 --- a/src/lib/player.h +++ b/src/lib/player.h @@ -79,7 +79,7 @@ public: void set_video_container_size (dcp::Size); void set_ignore_video (); void set_ignore_caption (); - void set_always_burn_captions (CaptionType type); + void set_always_burn_open_captions (); void set_fast (); void set_play_referenced (); void set_dcp_decode_reduction (boost::optional reduction); @@ -154,10 +154,7 @@ private: bool _ignore_video; /** true if the player should ignore all captions; i.e. never produce any */ bool _ignore_caption; - /** Type of captions that the player should always burn into the video regardless - of content settings. - */ - boost::optional _always_burn_captions; + bool _always_burn_open_captions; /** true if we should try to be fast rather than high quality */ bool _fast; /** true if we should `play' (i.e output) referenced DCP data (e.g. for preview) */ diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index 56342d44f..c4b503ae0 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -123,12 +123,6 @@ FilmViewer::FilmViewer (wxWindow* p, bool outline_content, bool jump_to_selected view_options->Add (_jump_to_selected, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, DCPOMATIC_SIZER_GAP); } - _captions = new wxChoice (this, wxID_ANY); - _captions->Append (_("Open captions (subtitles)")); - _captions->Append (_("Closed captions")); - _captions->SetSelection (0); - view_options->Add (_captions, 0, wxLEFT | wxRIGHT, DCPOMATIC_SIZER_GAP); - _v_sizer->Add (view_options, 0, wxALL, DCPOMATIC_SIZER_GAP); wxBoxSizer* h_sizer = new wxBoxSizer (wxHORIZONTAL); @@ -157,7 +151,6 @@ FilmViewer::FilmViewer (wxWindow* p, bool outline_content, bool jump_to_selected _outline_content->Bind (wxEVT_CHECKBOX, boost::bind (&FilmViewer::refresh_panel, this)); } _eye->Bind (wxEVT_CHOICE, boost::bind (&FilmViewer::slow_refresh, this)); - _captions->Bind (wxEVT_CHOICE, boost::bind (&FilmViewer::captions_changed, this)); _slider->Bind (wxEVT_SCROLL_THUMBTRACK, boost::bind (&FilmViewer::slider_moved, this, false)); _slider->Bind (wxEVT_SCROLL_PAGEUP, boost::bind (&FilmViewer::slider_moved, this, true)); _slider->Bind (wxEVT_SCROLL_PAGEDOWN, boost::bind (&FilmViewer::slider_moved, this, true)); @@ -225,8 +218,7 @@ FilmViewer::set_film (shared_ptr film) return; } - /* Start off burning in subtitles, as that's the initial setting of the dropdown */ - _player->set_always_burn_captions (CAPTION_OPEN); + _player->set_always_burn_open_captions (); _player->set_play_referenced (); _film->Changed.connect (boost::bind (&FilmViewer::film_changed, this, _1)); @@ -730,21 +722,6 @@ FilmViewer::film_changed (Film::Property p) } } -void -FilmViewer::captions_changed () -{ - switch (_captions->GetSelection()) { - case 0: - _player->set_always_burn_captions (CAPTION_OPEN); - break; - case 1: - _player->set_always_burn_captions (CAPTION_CLOSED); - break; - } - - slow_refresh (); -} - /** Re-get the current frame slowly by seeking */ void FilmViewer::slow_refresh () diff --git a/src/wx/film_viewer.h b/src/wx/film_viewer.h index cb372391a..385f6142b 100644 --- a/src/wx/film_viewer.h +++ b/src/wx/film_viewer.h @@ -87,7 +87,6 @@ private: void slider_released (); void play_clicked (); void timer (); - void captions_changed (); void calculate_sizes (); void check_play_state (); void active_jobs_changed (boost::optional); @@ -123,7 +122,6 @@ private: wxCheckBox* _outline_content; wxChoice* _eye; wxCheckBox* _jump_to_selected; - wxChoice* _captions; wxSlider* _slider; wxButton* _rewind_button; wxButton* _back_button; diff --git a/test/player_test.cc b/test/player_test.cc index bc4af970e..041bc3e81 100644 --- a/test/player_test.cc +++ b/test/player_test.cc @@ -215,7 +215,7 @@ BOOST_AUTO_TEST_CASE (player_seek_test) shared_ptr player (new Player (film, film->playlist())); player->set_fast (); - player->set_always_burn_captions (CAPTION_OPEN); + player->set_always_burn_open_captions (); player->set_play_referenced (); shared_ptr butler (new Butler (player, film->log(), AudioMapping(), 2)); @@ -246,7 +246,7 @@ BOOST_AUTO_TEST_CASE (player_seek_test2) shared_ptr player (new Player (film, film->playlist())); player->set_fast (); - player->set_always_burn_captions (CAPTION_OPEN); + player->set_always_burn_open_captions (); player->set_play_referenced (); shared_ptr butler (new Butler (player, film->log(), AudioMapping(), 2)); -- 2.30.2