diff options
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | hacks/start_servers.sh | 4 | ||||
| -rw-r--r-- | src/lib/film.cc | 17 | ||||
| -rw-r--r-- | src/wx/subtitle_panel.cc | 38 |
4 files changed, 31 insertions, 33 deletions
@@ -1,3 +1,8 @@ +2015-06-25 c.hetherington <cth@carlh.net> + + * Disallow impossible burn settings by manipulating + the controls in the subtitle panel (#625). + 2015-06-25 Carl Hetherington <cth@carlh.net> * Version 2.1.10 released. diff --git a/hacks/start_servers.sh b/hacks/start_servers.sh index 997181849..9c2669cbb 100644 --- a/hacks/start_servers.sh +++ b/hacks/start_servers.sh @@ -2,5 +2,5 @@ dsh -m cs2-17 -m cs2-18 -m cs2-19 -m cs2-20 \ "screen -dmS dcpomatic bash -c 'cd src/dcpomatic2; LD_LIBRARY_PATH=$HOME/ubuntu/lib run/dcpomatic_server_cli --verbose'" -#dsh -m cs2-5 -m cs2-6 -m cs2-7 -m cs2-8 \ -# "screen -dmS dcpomatic bash -c 'cd src/dcpomatic2; LD_LIBRARY_PATH=$HOME/ubuntu/lib run/dcpomatic_server_cli --verbose'" +dsh -m cs2-5 -m cs2-6 -m cs2-7 -m cs2-8 \ + "screen -dmS dcpomatic bash -c 'cd src/dcpomatic2; LD_LIBRARY_PATH=$HOME/ubuntu/lib run/dcpomatic_server_cli --verbose'" diff --git a/src/lib/film.cc b/src/lib/film.cc index 2ef59fe21..51f4c7156 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -276,25 +276,12 @@ Film::make_dcp () throw BadSettingError (_("name"), _("cannot contain slashes")); } - bool must_burn = false; - ContentList cl = content (); - BOOST_FOREACH (shared_ptr<Content> c, cl) { - shared_ptr<SubtitleContent> sc = dynamic_pointer_cast<SubtitleContent> (c); - if (sc && sc->has_image_subtitles() && sc->use_subtitles() && !sc->burn_subtitles ()) { - must_burn = true; - } - } - - if (must_burn) { - throw EncodeError (_("this project has content with image-based subtitles, which this version of DCP-o-matic cannot include as separate DCP subtitles. To use these subtitles you must burn them into the image (tick the box in the Subtitles tab).")); - } - set_isdcf_date_today (); environment_info (log ()); - for (ContentList::const_iterator i = cl.begin(); i != cl.end(); ++i) { - LOG_GENERAL ("Content: %1", (*i)->technical_summary()); + BOOST_FOREACH (shared_ptr<const Content> i, content ()) { + LOG_GENERAL ("Content: %1", i->technical_summary()); } LOG_GENERAL ("DCP video rate %1 fps", video_frame_rate()); LOG_GENERAL ("%1 threads", Config::instance()->num_local_encoding_threads()); diff --git a/src/wx/subtitle_panel.cc b/src/wx/subtitle_panel.cc index bf3e6d72a..a7774ed20 100644 --- a/src/wx/subtitle_panel.cc +++ b/src/wx/subtitle_panel.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net> + Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,20 +17,21 @@ */ -#include <boost/lexical_cast.hpp> -#include <wx/spinctrl.h> -#include "lib/ffmpeg_content.h" -#include "lib/subrip_content.h" -#include "lib/ffmpeg_subtitle_stream.h" -#include "lib/dcp_subtitle_content.h" -#include "lib/subrip_decoder.h" -#include "lib/dcp_subtitle_decoder.h" #include "subtitle_panel.h" #include "film_editor.h" #include "wx_util.h" #include "subtitle_view.h" #include "content_panel.h" #include "fonts_dialog.h" +#include "lib/ffmpeg_content.h" +#include "lib/subrip_content.h" +#include "lib/ffmpeg_subtitle_stream.h" +#include "lib/dcp_subtitle_content.h" +#include "lib/subrip_decoder.h" +#include "lib/dcp_subtitle_decoder.h" +#include <wx/spinctrl.h> +#include <boost/lexical_cast.hpp> +#include <boost/foreach.hpp> using std::vector; using std::string; @@ -204,11 +205,11 @@ SubtitlePanel::setup_sensitivity () int any_subs = 0; int ffmpeg_subs = 0; int subrip_or_dcp_subs = 0; - SubtitleContentList c = _parent->selected_subtitle (); - for (SubtitleContentList::const_iterator i = c.begin(); i != c.end(); ++i) { - shared_ptr<const FFmpegContent> fc = boost::dynamic_pointer_cast<const FFmpegContent> (*i); - shared_ptr<const SubRipContent> sc = boost::dynamic_pointer_cast<const SubRipContent> (*i); - shared_ptr<const DCPSubtitleContent> dsc = boost::dynamic_pointer_cast<const DCPSubtitleContent> (*i); + int image_subs = 0; + BOOST_FOREACH (shared_ptr<SubtitleContent> i, _parent->selected_subtitle ()) { + shared_ptr<const FFmpegContent> fc = boost::dynamic_pointer_cast<const FFmpegContent> (i); + shared_ptr<const SubRipContent> sc = boost::dynamic_pointer_cast<const SubRipContent> (i); + shared_ptr<const DCPSubtitleContent> dsc = boost::dynamic_pointer_cast<const DCPSubtitleContent> (i); if (fc) { if (fc->has_subtitles ()) { ++ffmpeg_subs; @@ -220,12 +221,17 @@ SubtitlePanel::setup_sensitivity () } else { ++any_subs; } + + if (i->has_image_subtitles ()) { + ++image_subs; + /* We must burn image subtitles at the moment */ + i->set_burn_subtitles (true); + } } _use->Enable (any_subs > 0); bool const use = _use->GetValue (); - - _burn->Enable (any_subs > 0 && use); + _burn->Enable (any_subs > 0 && use && image_subs == 0); _x_offset->Enable (any_subs > 0 && use); _y_offset->Enable (any_subs > 0 && use); _x_scale->Enable (any_subs > 0 && use); |
