From: Carl Hetherington Date: Sun, 31 Jan 2021 02:14:24 +0000 (+0100) Subject: More enum class additions. X-Git-Tag: v2.15.124~14 X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=8fedaaa75c4586a4cc7ffb393bd71d1fdb091dc8 More enum class additions. --- diff --git a/src/lib/analyse_subtitles_job.cc b/src/lib/analyse_subtitles_job.cc index b941824d6..d95e859db 100644 --- a/src/lib/analyse_subtitles_job.cc +++ b/src/lib/analyse_subtitles_job.cc @@ -30,8 +30,9 @@ #include "i18n.h" -using std::string; +using std::make_shared; using std::shared_ptr; +using std::string; using std::weak_ptr; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; @@ -62,12 +63,12 @@ AnalyseSubtitlesJob::json_name () const void AnalyseSubtitlesJob::run () { - shared_ptr playlist (new Playlist()); - shared_ptr content = _content.lock (); + auto playlist = make_shared(); + auto content = _content.lock (); DCPOMATIC_ASSERT (content); playlist->add (_film, content); - shared_ptr player (new Player(_film, playlist)); + auto player = make_shared(_film, playlist); player->set_ignore_audio (); player->set_fast (); player->set_play_referenced (); @@ -90,7 +91,7 @@ AnalyseSubtitlesJob::run () void AnalyseSubtitlesJob::analyse (PlayerText text, TextType type) { - if (type != TEXT_OPEN_SUBTITLE) { + if (type != TextType::OPEN_SUBTITLE) { return; } diff --git a/src/lib/butler.cc b/src/lib/butler.cc index d09b0356a..56acbd8a0 100644 --- a/src/lib/butler.cc +++ b/src/lib/butler.cc @@ -384,8 +384,8 @@ void Butler::player_change (ChangeType type, int property) { if (property == VideoContentProperty::CROP) { - if (type == CHANGE_TYPE_DONE) { - shared_ptr film = _film.lock(); + if (type == ChangeType::DONE) { + auto film = _film.lock(); if (film) { _video.reset_metadata (film, _player->video_container_size()); } @@ -395,9 +395,9 @@ Butler::player_change (ChangeType type, int property) boost::mutex::scoped_lock lm (_mutex); - if (type == CHANGE_TYPE_PENDING) { + if (type == ChangeType::PENDING) { ++_suspended; - } else if (type == CHANGE_TYPE_DONE) { + } else if (type == ChangeType::DONE) { --_suspended; if (_died || _pending_seek_position) { lm.unlock (); @@ -406,7 +406,7 @@ Butler::player_change (ChangeType type, int property) } DCPTime seek_to; - DCPTime next = _video.get().second; + auto next = _video.get().second; if (_awaiting && _awaiting > next) { /* We have recently done a player_changed seek and our buffers haven't been refilled yet, so assume that we're seeking to the same place as last time. @@ -418,7 +418,7 @@ Butler::player_change (ChangeType type, int property) seek_unlocked (seek_to, true); _awaiting = seek_to; - } else if (type == CHANGE_TYPE_CANCELLED) { + } else if (type == ChangeType::CANCELLED) { --_suspended; } @@ -429,7 +429,7 @@ Butler::player_change (ChangeType type, int property) void Butler::text (PlayerText pt, TextType type, optional track, DCPTimePeriod period) { - if (type != TEXT_CLOSED_CAPTION) { + if (type != TextType::CLOSED_CAPTION) { return; } diff --git a/src/lib/change_signaller.h b/src/lib/change_signaller.h index 6c4c150f2..55a5f2dc5 100644 --- a/src/lib/change_signaller.h +++ b/src/lib/change_signaller.h @@ -32,15 +32,15 @@ public: , _property (p) , _done (true) { - _thing->signal_change (CHANGE_TYPE_PENDING, _property); + _thing->signal_change (ChangeType::PENDING, _property); } ~ChangeSignaller () { if (_done) { - _thing->signal_change (CHANGE_TYPE_DONE, _property); + _thing->signal_change (ChangeType::DONE, _property); } else { - _thing->signal_change (CHANGE_TYPE_CANCELLED, _property); + _thing->signal_change (ChangeType::CANCELLED, _property); } } diff --git a/src/lib/config.cc b/src/lib/config.cc index 7040c5127..c0750bb4e 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -88,7 +88,7 @@ Config::set_defaults () _use_any_servers = true; _servers.clear (); _only_servers_encode = false; - _tms_protocol = FILE_TRANSFER_PROTOCOL_SCP; + _tms_protocol = FileTransferProtocol::SCP; _tms_ip = ""; _tms_path = "."; _tms_user = ""; @@ -107,7 +107,7 @@ Config::set_defaults () _upload_after_make_dcp = false; _mail_server = ""; _mail_port = 25; - _mail_protocol = EMAIL_PROTOCOL_AUTO; + _mail_protocol = EmailProtocol::AUTO; _mail_user = ""; _mail_password = ""; _kdm_from = ""; @@ -269,7 +269,7 @@ try } _only_servers_encode = f.optional_bool_child ("OnlyServersEncode").get_value_or (false); - _tms_protocol = static_cast(f.optional_number_child("TMSProtocol").get_value_or(static_cast(FILE_TRANSFER_PROTOCOL_SCP))); + _tms_protocol = static_cast(f.optional_number_child("TMSProtocol").get_value_or(static_cast(FileTransferProtocol::SCP))); _tms_ip = f.string_child ("TMSIP"); _tms_path = f.string_child ("TMSPath"); _tms_user = f.string_child ("TMSUser"); @@ -331,13 +331,13 @@ try /* Make sure this matches the code in write_config */ string const protocol = f.optional_string_child("MailProtocol").get_value_or("Auto"); if (protocol == "Auto") { - _mail_protocol = EMAIL_PROTOCOL_AUTO; + _mail_protocol = EmailProtocol::AUTO; } else if (protocol == "Plain") { - _mail_protocol = EMAIL_PROTOCOL_PLAIN; + _mail_protocol = EmailProtocol::PLAIN; } else if (protocol == "STARTTLS") { - _mail_protocol = EMAIL_PROTOCOL_STARTTLS; + _mail_protocol = EmailProtocol::STARTTLS; } else if (protocol == "SSL") { - _mail_protocol = EMAIL_PROTOCOL_SSL; + _mail_protocol = EmailProtocol::SSL; } } @@ -701,16 +701,16 @@ Config::write_config () const root->add_child("MailPort")->add_child_text (raw_convert (_mail_port)); /* [XML] MailProtocol Protocol to use on SMTP server (Auto, Plain, STARTTLS or SSL) */ switch (_mail_protocol) { - case EMAIL_PROTOCOL_AUTO: + case EmailProtocol::AUTO: root->add_child("MailProtocol")->add_child_text("Auto"); break; - case EMAIL_PROTOCOL_PLAIN: + case EmailProtocol::PLAIN: root->add_child("MailProtocol")->add_child_text("Plain"); break; - case EMAIL_PROTOCOL_STARTTLS: + case EmailProtocol::STARTTLS: root->add_child("MailProtocol")->add_child_text("STARTTLS"); break; - case EMAIL_PROTOCOL_SSL: + case EmailProtocol::SSL: root->add_child("MailProtocol")->add_child_text("SSL"); break; } diff --git a/src/lib/content.cc b/src/lib/content.cc index d4dffe777..40790bdc0 100644 --- a/src/lib/content.cc +++ b/src/lib/content.cc @@ -200,7 +200,7 @@ void Content::signal_change (ChangeType c, int p) { try { - if (c == CHANGE_TYPE_PENDING || c == CHANGE_TYPE_CANCELLED) { + if (c == ChangeType::PENDING || c == ChangeType::CANCELLED) { Change (c, shared_from_this(), p, _change_signals_frequent); } else { emit (boost::bind (boost::ref(Change), c, shared_from_this(), p, _change_signals_frequent)); diff --git a/src/lib/content_video.h b/src/lib/content_video.h index ee169b6c5..8ca18576e 100644 --- a/src/lib/content_video.h +++ b/src/lib/content_video.h @@ -33,8 +33,8 @@ class ContentVideo public: ContentVideo () : frame (0) - , eyes (EYES_LEFT) - , part (PART_WHOLE) + , eyes (Eyes::LEFT) + , part (Part::WHOLE) {} ContentVideo (std::shared_ptr i, Frame f, Eyes e, Part p) diff --git a/src/lib/copy_dcp_details_to_film.cc b/src/lib/copy_dcp_details_to_film.cc index 64a38c335..3e62c96a3 100644 --- a/src/lib/copy_dcp_details_to_film.cc +++ b/src/lib/copy_dcp_details_to_film.cc @@ -38,7 +38,7 @@ using std::shared_ptr; void copy_dcp_details_to_film (shared_ptr dcp, shared_ptr film) { - string name = dcp->name (); + auto name = dcp->name (); name = name.substr (0, name.find("_")); film->set_name (name); film->set_use_isdcf_name (true); @@ -46,7 +46,7 @@ copy_dcp_details_to_film (shared_ptr dcp, shared_ptr fil film->set_dcp_content_type (DCPContentType::from_libdcp_kind(dcp->content_kind().get())); } film->set_encrypted (dcp->encrypted()); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); film->set_interop (dcp->standard() == dcp::Standard::INTEROP); film->set_three_d (dcp->three_d()); @@ -61,11 +61,9 @@ copy_dcp_details_to_film (shared_ptr dcp, shared_ptr fil film->set_audio_channels (dcp->audio->stream()->channels()); } - map dcp_markers; - map film_markers; film->clear_markers (); - for (map::const_iterator i = dcp_markers.begin(); i != dcp_markers.end(); ++i) { - film->set_marker (i->first, dcpomatic::DCPTime(i->second.get())); + for (auto const& i: dcp->markers()) { + film->set_marker (i.first, dcpomatic::DCPTime(i.second.get())); } film->set_ratings (dcp->ratings()); diff --git a/src/lib/create_cli.cc b/src/lib/create_cli.cc index de26a7412..819f17f6e 100644 --- a/src/lib/create_cli.cc +++ b/src/lib/create_cli.cc @@ -91,7 +91,7 @@ CreateCLI::CreateCLI (int argc, char* argv[]) string config_dir_string; string output_dir_string; int j2k_bandwidth_int = 0; - VideoFrameType next_frame_type = VIDEO_FRAME_TYPE_2D; + auto next_frame_type = VideoFrameType::TWO_D; int i = 1; while (i < argc) { @@ -115,10 +115,10 @@ CreateCLI::CreateCLI (int argc, char* argv[]) } else if (a == "--threed") { threed = claimed = true; } else if (a == "--left-eye") { - next_frame_type = VIDEO_FRAME_TYPE_3D_LEFT; + next_frame_type = VideoFrameType::THREE_D_LEFT; claimed = true; } else if (a == "--right-eye") { - next_frame_type = VIDEO_FRAME_TYPE_3D_RIGHT; + next_frame_type = VideoFrameType::THREE_D_RIGHT; claimed = true; } else if (a == "--fourk") { fourk = true; @@ -145,7 +145,7 @@ CreateCLI::CreateCLI (int argc, char* argv[]) c.path = a; c.frame_type = next_frame_type; content.push_back (c); - next_frame_type = VIDEO_FRAME_TYPE_2D; + next_frame_type = VideoFrameType::TWO_D; } } diff --git a/src/lib/dcp_content.cc b/src/lib/dcp_content.cc index 022fd223c..4bd718e96 100644 --- a/src/lib/dcp_content.cc +++ b/src/lib/dcp_content.cc @@ -45,14 +45,15 @@ #include "i18n.h" -using std::string; using std::cout; using std::distance; -using std::pair; -using std::vector; using std::list; +using std::make_shared; using std::map; +using std::pair; using std::shared_ptr; +using std::string; +using std::vector; using boost::scoped_ptr; using boost::optional; using boost::function; @@ -85,7 +86,7 @@ DCPContent::DCPContent (boost::filesystem::path p) read_directory (p); set_default_colour_conversion (); - for (int i = 0; i < TEXT_COUNT; ++i) { + for (int i = 0; i < static_cast(TextType::COUNT); ++i) { _reference_text[i] = false; } } @@ -98,21 +99,19 @@ DCPContent::DCPContent (cxml::ConstNodePtr node, int version) text = TextContent::from_xml (this, node, version); atmos = AtmosContent::from_xml (this, node); - for (int i = 0; i < TEXT_COUNT; ++i) { + for (int i = 0; i < static_cast(TextType::COUNT); ++i) { _reference_text[i] = false; } if (video && audio) { audio->set_stream ( - AudioStreamPtr ( - new AudioStream ( - node->number_child ("AudioFrameRate"), - /* AudioLength was not present in some old metadata versions */ - node->optional_number_child("AudioLength").get_value_or ( - video->length() * node->number_child("AudioFrameRate") / video_frame_rate().get() - ), - AudioMapping (node->node_child ("AudioMapping"), version) - ) + make_shared ( + node->number_child ("AudioFrameRate"), + /* AudioLength was not present in some old metadata versions */ + node->optional_number_child("AudioLength").get_value_or ( + video->length() * node->number_child("AudioFrameRate") / video_frame_rate().get() + ), + AudioMapping (node->node_child ("AudioMapping"), version) ) ); } @@ -127,14 +126,14 @@ DCPContent::DCPContent (cxml::ConstNodePtr node, int version) _reference_video = node->optional_bool_child ("ReferenceVideo").get_value_or (false); _reference_audio = node->optional_bool_child ("ReferenceAudio").get_value_or (false); if (version >= 37) { - _reference_text[TEXT_OPEN_SUBTITLE] = node->optional_bool_child("ReferenceOpenSubtitle").get_value_or(false); - _reference_text[TEXT_CLOSED_CAPTION] = node->optional_bool_child("ReferenceClosedCaption").get_value_or(false); + _reference_text[static_cast(TextType::OPEN_SUBTITLE)] = node->optional_bool_child("ReferenceOpenSubtitle").get_value_or(false); + _reference_text[static_cast(TextType::CLOSED_CAPTION)] = node->optional_bool_child("ReferenceClosedCaption").get_value_or(false); } else { - _reference_text[TEXT_OPEN_SUBTITLE] = node->optional_bool_child("ReferenceSubtitle").get_value_or(false); - _reference_text[TEXT_CLOSED_CAPTION] = false; + _reference_text[static_cast(TextType::OPEN_SUBTITLE)] = node->optional_bool_child("ReferenceSubtitle").get_value_or(false); + _reference_text[static_cast(TextType::CLOSED_CAPTION)] = false; } if (node->optional_string_child("Standard")) { - string const s = node->optional_string_child("Standard").get(); + auto const s = node->optional_string_child("Standard").get(); if (s == "Interop") { _standard = dcp::Standard::INTEROP; } else if (s == "SMPTE") { @@ -145,7 +144,7 @@ DCPContent::DCPContent (cxml::ConstNodePtr node, int version) } _three_d = node->optional_bool_child("ThreeD").get_value_or (false); - optional ck = node->optional_string_child("ContentKind"); + auto ck = node->optional_string_child("ContentKind"); if (ck) { _content_kind = dcp::content_kind_from_string (*ck); } @@ -201,13 +200,13 @@ void DCPContent::read_sub_directory (boost::filesystem::path p) { LOG_GENERAL ("DCPContent::read_sub_directory reads %1", p.string()); - for (boost::filesystem::directory_iterator i(p); i != boost::filesystem::directory_iterator(); ++i) { - if (boost::filesystem::is_regular_file (i->path())) { - LOG_GENERAL ("Inside there's regular file %1", i->path().string()); - add_path (i->path()); - } else if (boost::filesystem::is_directory (i->path ())) { - LOG_GENERAL ("Inside there's directory %1", i->path().string()); - read_sub_directory (i->path()); + for (auto i: boost::filesystem::directory_iterator(p)) { + if (boost::filesystem::is_regular_file(i.path())) { + LOG_GENERAL ("Inside there's regular file %1", i.path().string()); + add_path (i.path()); + } else if (boost::filesystem::is_directory (i.path())) { + LOG_GENERAL ("Inside there's directory %1", i.path().string()); + read_sub_directory (i.path()); } } } @@ -230,12 +229,12 @@ DCPContent::examine (shared_ptr film, shared_ptr job) } Content::examine (film, job); - shared_ptr examiner (new DCPExaminer(shared_from_this(), film ? film->tolerant() : true)); + auto examiner = make_shared(shared_from_this(), film ? film->tolerant() : true); if (examiner->has_video()) { { boost::mutex::scoped_lock lm (_mutex); - video.reset (new VideoContent (this)); + video = make_shared(this); } video->take_from_examiner (examiner); set_default_colour_conversion (); @@ -244,11 +243,11 @@ DCPContent::examine (shared_ptr film, shared_ptr job) if (examiner->has_audio()) { { boost::mutex::scoped_lock lm (_mutex); - audio.reset (new AudioContent (this)); + audio = make_shared(this); } - AudioStreamPtr as (new AudioStream (examiner->audio_frame_rate(), examiner->audio_length(), examiner->audio_channels())); + auto as = make_shared(examiner->audio_frame_rate(), examiner->audio_length(), examiner->audio_channels()); audio->set_stream (as); - AudioMapping m = as->mapping (); + auto m = as->mapping (); m.make_default (film ? film->audio_processor() : 0); as->set_mapping (m); } @@ -256,7 +255,7 @@ DCPContent::examine (shared_ptr film, shared_ptr job) if (examiner->has_atmos()) { { boost::mutex::scoped_lock lm (_mutex); - atmos.reset (new AtmosContent(this)); + atmos = make_shared(this); } /* Setting length will cause calculations to be made based on edit rate, so that must * be set up first otherwise hard-to-spot exceptions will be thrown. @@ -266,10 +265,10 @@ DCPContent::examine (shared_ptr film, shared_ptr job) } list > new_text; - for (int i = 0; i < TEXT_COUNT; ++i) { + for (int i = 0; i < static_cast(TextType::COUNT); ++i) { for (int j = 0; j < examiner->text_count(static_cast(i)); ++j) { - shared_ptr c(new TextContent(this, static_cast(i), static_cast(i))); - if (i == TEXT_CLOSED_CAPTION) { + auto c = make_shared(this, static_cast(i), static_cast(i)); + if (i == static_cast(TextType::CLOSED_CAPTION)) { c->set_dcp_track (examiner->dcp_text_track(j)); } new_text.push_back (c); @@ -288,9 +287,8 @@ DCPContent::examine (shared_ptr film, shared_ptr job) _content_kind = examiner->content_kind (); _cpl = examiner->cpl (); _reel_lengths = examiner->reel_lengths (); - map markers = examiner->markers(); - for (map::const_iterator i = markers.begin(); i != markers.end(); ++i) { - _markers[i->first] = ContentTime(i->second.as_editable_units(DCPTime::HZ)); + for (auto const& i: examiner->markers()) { + _markers[i.first] = ContentTime(i.second.as_editable_units(DCPTime::HZ)); } _ratings = examiner->ratings (); _content_versions = examiner->content_versions (); @@ -309,7 +307,7 @@ DCPContent::examine (shared_ptr film, shared_ptr job) } if (video) { - video->set_frame_type (_three_d ? VIDEO_FRAME_TYPE_3D : VIDEO_FRAME_TYPE_2D); + video->set_frame_type (_three_d ? VideoFrameType::THREE_D : VideoFrameType::TWO_D); } } @@ -369,8 +367,8 @@ DCPContent::as_xml (xmlpp::Node* node, bool with_paths) const node->add_child("KDMValid")->add_child_text (_kdm_valid ? "1" : "0"); node->add_child("ReferenceVideo")->add_child_text (_reference_video ? "1" : "0"); node->add_child("ReferenceAudio")->add_child_text (_reference_audio ? "1" : "0"); - node->add_child("ReferenceOpenSubtitle")->add_child_text(_reference_text[TEXT_OPEN_SUBTITLE] ? "1" : "0"); - node->add_child("ReferenceClosedCaption")->add_child_text(_reference_text[TEXT_CLOSED_CAPTION] ? "1" : "0"); + node->add_child("ReferenceOpenSubtitle")->add_child_text(_reference_text[static_cast(TextType::OPEN_SUBTITLE)] ? "1" : "0"); + node->add_child("ReferenceClosedCaption")->add_child_text(_reference_text[static_cast(TextType::CLOSED_CAPTION)] ? "1" : "0"); if (_standard) { switch (_standard.get ()) { case dcp::Standard::INTEROP: @@ -394,14 +392,14 @@ DCPContent::as_xml (xmlpp::Node* node, bool with_paths) const node->add_child("ReelLength")->add_child_text (raw_convert (i)); } - for (map::const_iterator i = _markers.begin(); i != _markers.end(); ++i) { - xmlpp::Element* marker = node->add_child("Marker"); - marker->set_attribute("type", dcp::marker_to_string(i->first)); - marker->add_child_text(raw_convert(i->second.get())); + for (auto const& i: _markers) { + auto marker = node->add_child("Marker"); + marker->set_attribute("type", dcp::marker_to_string(i.first)); + marker->add_child_text(raw_convert(i.second.get())); } for (auto i: _ratings) { - xmlpp::Element* rating = node->add_child("Rating"); + auto rating = node->add_child("Rating"); i.as_xml (rating); } @@ -414,7 +412,7 @@ DCPTime DCPContent::full_length (shared_ptr film) const { if (!video) { - return DCPTime(); + return {}; } FrameRateChange const frc (film, shared_from_this()); return DCPTime::from_frames (llrint(video->length() * frc.factor()), film->video_frame_rate()); @@ -424,7 +422,7 @@ DCPTime DCPContent::approximate_length () const { if (!video) { - return DCPTime(); + return {}; } return DCPTime::from_frames (video->length(), 24); } @@ -443,7 +441,7 @@ DCPContent::identifier () const } s += string (_reference_video ? "1" : "0"); - for (int i = 0; i < TEXT_COUNT; ++i) { + for (int i = 0; i < static_cast(TextType::COUNT); ++i) { s += string (_reference_text[i] ? "1" : "0"); } return s; @@ -537,15 +535,15 @@ DCPContent::set_reference_text (TextType type, bool r) { boost::mutex::scoped_lock lm (_mutex); - _reference_text[type] = r; + _reference_text[static_cast(type)] = r; } } list DCPContent::reels (shared_ptr film) const { - list reel_lengths = _reel_lengths; - if (reel_lengths.empty ()) { + auto reel_lengths = _reel_lengths; + if (reel_lengths.empty()) { /* Old metadata with no reel lengths; get them here instead */ try { scoped_ptr examiner (new DCPExaminer(shared_from_this(), film->tolerant())); @@ -563,13 +561,13 @@ DCPContent::reels (shared_ptr film) const */ /* The starting point of this content on the timeline */ - DCPTime pos = position() - DCPTime (trim_start().get()); + auto pos = position() - DCPTime (trim_start().get()); for (auto i: reel_lengths) { /* This reel runs from `pos' to `to' */ DCPTime const to = pos + DCPTime::from_frames (i, film->video_frame_rate()); if (to > position()) { - p.push_back (DCPTimePeriod (max(position(), pos), min(end(film), to))); + p.push_back (DCPTimePeriod(max(position(), pos), min(end(film), to))); if (to > end(film)) { break; } @@ -613,7 +611,7 @@ DCPContent::can_reference (shared_ptr film, function const fr = film->reels (); + auto const fr = film->reels (); list reel_list; try { @@ -637,7 +635,7 @@ DCPContent::can_reference (shared_ptr film, functioncontent(), part, position(), end(film)); + auto a = overlaps (film, film->content(), part, position(), end(film)); if (a.size() != 1 || a.front().get() != this) { why_not = overlapping; return false; @@ -661,7 +659,7 @@ DCPContent::can_reference_video (shared_ptr film, string& why_not) c } if (film->resolution() != resolution()) { - if (resolution() == RESOLUTION_4K) { + if (resolution() == Resolution::FOUR_K) { /// TRANSLATORS: this string will follow "Cannot reference this DCP: " why_not = _("it is 4K and the film is 2K."); } else { @@ -735,7 +733,7 @@ DCPContent::can_reference_text (shared_ptr film, TextType type, stri } for (auto i: decoder->reels()) { - if (type == TEXT_OPEN_SUBTITLE) { + if (type == TextType::OPEN_SUBTITLE) { if (!i->main_subtitle()) { /// TRANSLATORS: this string will follow "Cannot reference this DCP: " why_not = _("it does not have open subtitles in all its reels."); @@ -746,7 +744,7 @@ DCPContent::can_reference_text (shared_ptr film, TextType type, stri return false; } } - if (type == TEXT_CLOSED_CAPTION) { + if (type == TextType::CLOSED_CAPTION) { if (i->closed_captions().empty()) { /// TRANSLATORS: this string will follow "Cannot reference this DCP: " why_not = _("it does not have closed captions in all its reels."); @@ -775,14 +773,14 @@ DCPContent::can_reference_text (shared_ptr film, TextType type, stri void DCPContent::take_settings_from (shared_ptr c) { - shared_ptr dc = dynamic_pointer_cast (c); + auto dc = dynamic_pointer_cast(c); if (!dc) { return; } _reference_video = dc->_reference_video; _reference_audio = dc->_reference_audio; - for (int i = 0; i < TEXT_COUNT; ++i) { + for (int i = 0; i < static_cast(TextType::COUNT); ++i) { _reference_text[i] = dc->_reference_text[i]; } } @@ -814,9 +812,9 @@ Resolution DCPContent::resolution () const { if (video->size().width > 2048 || video->size().height > 1080) { - return RESOLUTION_4K; + return Resolution::FOUR_K; } - return RESOLUTION_2K; + return Resolution::TWO_K; } diff --git a/src/lib/dcp_content.h b/src/lib/dcp_content.h index c235dd823..136c527a5 100644 --- a/src/lib/dcp_content.h +++ b/src/lib/dcp_content.h @@ -117,7 +117,7 @@ public: */ bool reference_text (TextType type) const { boost::mutex::scoped_lock lm (_mutex); - return _reference_text[type]; + return _reference_text[static_cast(type)]; } bool can_reference_text (std::shared_ptr film, TextType type, std::string &) const; @@ -201,7 +201,7 @@ private: * rather than by rewrapping. The types here are the original text types, * not what they are being used for. */ - bool _reference_text[TEXT_COUNT]; + bool _reference_text[static_cast(TextType::COUNT)]; boost::optional _standard; boost::optional _content_kind; diff --git a/src/lib/dcp_decoder.cc b/src/lib/dcp_decoder.cc index 0491f5af7..4076936dd 100644 --- a/src/lib/dcp_decoder.cc +++ b/src/lib/dcp_decoder.cc @@ -254,7 +254,7 @@ DCPDecoder::pass_texts (ContentTime next, dcp::Size size) pass_texts ( next, (*_reel)->main_subtitle()->asset(), - _dcp_content->reference_text(TEXT_OPEN_SUBTITLE), + _dcp_content->reference_text(TextType::OPEN_SUBTITLE), (*_reel)->main_subtitle()->entry_point().get_value_or(0), *decoder, size @@ -264,7 +264,7 @@ DCPDecoder::pass_texts (ContentTime next, dcp::Size size) for (auto i: (*_reel)->closed_captions()) { pass_texts ( - next, i->asset(), _dcp_content->reference_text(TEXT_CLOSED_CAPTION), i->entry_point().get_value_or(0), *decoder, size + next, i->asset(), _dcp_content->reference_text(TextType::CLOSED_CAPTION), i->entry_point().get_value_or(0), *decoder, size ); ++decoder; } diff --git a/src/lib/dcp_encoder.cc b/src/lib/dcp_encoder.cc index 4b4785cc6..c5bcf31f2 100644 --- a/src/lib/dcp_encoder.cc +++ b/src/lib/dcp_encoder.cc @@ -133,10 +133,10 @@ void DCPEncoder::video (shared_ptr data, DCPTime time) { if (!_film->three_d()) { - if (data->eyes() == EYES_LEFT) { + if (data->eyes() == Eyes::LEFT) { /* Use left-eye images for both eyes... */ - data->set_eyes (EYES_BOTH); - } else if (data->eyes() == EYES_RIGHT) { + data->set_eyes (Eyes::BOTH); + } else if (data->eyes() == Eyes::RIGHT) { /* ...and discard the right */ return; } @@ -158,7 +158,7 @@ DCPEncoder::audio (shared_ptr data, DCPTime time) void DCPEncoder::text (PlayerText data, TextType type, optional track, DCPTimePeriod period) { - if (type == TEXT_CLOSED_CAPTION || _non_burnt_subtitles) { + if (type == TextType::CLOSED_CAPTION || _non_burnt_subtitles) { _writer->write (data, type, track, period); } } diff --git a/src/lib/dcp_examiner.cc b/src/lib/dcp_examiner.cc index 5ea568359..89ddfd6ea 100644 --- a/src/lib/dcp_examiner.cc +++ b/src/lib/dcp_examiner.cc @@ -57,20 +57,10 @@ using std::dynamic_pointer_cast; DCPExaminer::DCPExaminer (shared_ptr content, bool tolerant) : DCP (content, tolerant) - , _video_length (0) - , _audio_length (0) - , _has_video (false) - , _has_audio (false) - , _encrypted (false) - , _needs_assets (false) - , _kdm_valid (false) - , _three_d (false) - , _has_atmos (false) - , _atmos_length (0) { shared_ptr cpl; - for (int i = 0; i < TEXT_COUNT; ++i) { + for (int i = 0; i < static_cast(TextType::COUNT); ++i) { _text_count[i] = 0; } @@ -127,7 +117,7 @@ DCPExaminer::DCPExaminer (shared_ptr content, bool tolerant) return; } - dcp::Fraction const frac = i->main_picture()->edit_rate (); + auto const frac = i->main_picture()->edit_rate (); float const fr = float(frac.numerator) / frac.denominator; if (!_video_frame_rate) { _video_frame_rate = fr; @@ -136,7 +126,7 @@ DCPExaminer::DCPExaminer (shared_ptr content, bool tolerant) } _has_video = true; - shared_ptr asset = i->main_picture()->asset (); + auto asset = i->main_picture()->asset(); if (!_video_size) { _video_size = asset->size (); } else if (_video_size.get() != asset->size ()) { @@ -154,7 +144,7 @@ DCPExaminer::DCPExaminer (shared_ptr content, bool tolerant) } _has_audio = true; - shared_ptr asset = i->main_sound()->asset (); + auto asset = i->main_sound()->asset(); if (!_audio_channels) { _audio_channels = asset->channels (); @@ -178,7 +168,7 @@ DCPExaminer::DCPExaminer (shared_ptr content, bool tolerant) return; } - _text_count[TEXT_OPEN_SUBTITLE] = 1; + _text_count[static_cast(TextType::OPEN_SUBTITLE)] = 1; } for (auto j: i->closed_captions()) { @@ -188,7 +178,7 @@ DCPExaminer::DCPExaminer (shared_ptr content, bool tolerant) return; } - _text_count[TEXT_CLOSED_CAPTION]++; + _text_count[static_cast(TextType::CLOSED_CAPTION)]++; _dcp_text_tracks.push_back (DCPTextTrack(j->annotation_text(), j->language().get_value_or(_("Unknown")))); } diff --git a/src/lib/dcp_examiner.h b/src/lib/dcp_examiner.h index b61dd94a5..3fedaca06 100644 --- a/src/lib/dcp_examiner.h +++ b/src/lib/dcp_examiner.h @@ -94,7 +94,7 @@ public: * @return Number of assets of this type in this DCP. */ int text_count (TextType type) const { - return _text_count[type]; + return _text_count[static_cast(type)]; } DCPTextTrack dcp_text_track (int i) const { @@ -153,31 +153,31 @@ public: private: boost::optional _video_frame_rate; boost::optional _video_size; - Frame _video_length; + Frame _video_length = 0; boost::optional _audio_channels; boost::optional _audio_frame_rate; - Frame _audio_length; + Frame _audio_length = 0; std::string _name; /** true if this DCP has video content (but false if it has unresolved references to video content) */ - bool _has_video; + bool _has_video = false; /** true if this DCP has audio content (but false if it has unresolved references to audio content) */ - bool _has_audio; + bool _has_audio = false; /** number of different assets of each type (OCAP/CCAP) */ - int _text_count[TEXT_COUNT]; + int _text_count[static_cast(TextType::COUNT)]; /** the DCPTextTracks for each of our CCAPs */ std::vector _dcp_text_tracks; - bool _encrypted; - bool _needs_assets; - bool _kdm_valid; + bool _encrypted = false; + bool _needs_assets = false; + bool _kdm_valid = false; boost::optional _standard; - bool _three_d; + bool _three_d = false; dcp::ContentKind _content_kind; std::string _cpl; std::list _reel_lengths; std::map _markers; std::vector _ratings; std::vector _content_versions; - bool _has_atmos; - Frame _atmos_length; + bool _has_atmos = false; + Frame _atmos_length = 0; dcp::Fraction _atmos_edit_rate; }; diff --git a/src/lib/dcp_subtitle_content.cc b/src/lib/dcp_subtitle_content.cc index 2c5d98e49..858849ca3 100644 --- a/src/lib/dcp_subtitle_content.cc +++ b/src/lib/dcp_subtitle_content.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014-2018 Carl Hetherington + Copyright (C) 2014-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -30,17 +30,18 @@ #include "i18n.h" -using std::string; +using std::dynamic_pointer_cast; using std::list; +using std::make_shared; using std::shared_ptr; -using std::dynamic_pointer_cast; +using std::string; using dcp::raw_convert; using namespace dcpomatic; DCPSubtitleContent::DCPSubtitleContent (boost::filesystem::path path) : Content (path) { - text.push_back (shared_ptr (new TextContent (this, TEXT_OPEN_SUBTITLE, TEXT_OPEN_SUBTITLE))); + text.push_back (make_shared(this, TextType::OPEN_SUBTITLE, TextType::OPEN_SUBTITLE)); } DCPSubtitleContent::DCPSubtitleContent (cxml::ConstNodePtr node, int version) @@ -55,10 +56,10 @@ DCPSubtitleContent::examine (shared_ptr film, shared_ptr job) { Content::examine (film, job); - shared_ptr sc = load (path (0)); + auto sc = load (path(0)); - shared_ptr iop = dynamic_pointer_cast (sc); - shared_ptr smpte = dynamic_pointer_cast (sc); + auto iop = dynamic_pointer_cast(sc); + auto smpte = dynamic_pointer_cast(sc); if (smpte) { set_video_frame_rate (smpte->edit_rate().numerator); } @@ -68,12 +69,12 @@ DCPSubtitleContent::examine (shared_ptr film, shared_ptr job) /* Default to turning these subtitles on */ only_text()->set_use (true); - _length = ContentTime::from_seconds (sc->latest_subtitle_out().as_seconds ()); + _length = ContentTime::from_seconds (sc->latest_subtitle_out().as_seconds()); sc->fix_empty_font_ids (); for (auto i: sc->load_font_nodes()) { - only_text()->add_font (shared_ptr (new Font (i->id))); + only_text()->add_font(make_shared(i->id)); } } diff --git a/src/lib/dcp_video.cc b/src/lib/dcp_video.cc index 67baa1215..58e10f0ed 100644 --- a/src/lib/dcp_video.cc +++ b/src/lib/dcp_video.cc @@ -56,9 +56,10 @@ DCPOMATIC_ENABLE_WARNINGS #include "i18n.h" -using std::string; using std::cout; +using std::make_shared; using std::shared_ptr; +using std::string; using dcp::Size; using dcp::ArrayData; using dcp::raw_convert; @@ -91,7 +92,7 @@ DCPVideo::DCPVideo (shared_ptr frame, shared_ptrnumber_child ("Index"); _frames_per_second = node->number_child ("FramesPerSecond"); _j2k_bandwidth = node->number_child ("J2KBandwidth"); - _resolution = Resolution (node->optional_number_child("Resolution").get_value_or (RESOLUTION_2K)); + _resolution = Resolution (node->optional_number_child("Resolution").get_value_or(static_cast(Resolution::TWO_K))); } shared_ptr @@ -99,7 +100,7 @@ DCPVideo::convert_to_xyz (shared_ptr frame, dcp::NoteHandler { shared_ptr xyz; - shared_ptr image = frame->image (bind (&PlayerVideo::keep_xyz_or_rgb, _1), VideoRange::FULL, true, false); + auto image = frame->image (bind(&PlayerVideo::keep_xyz_or_rgb, _1), VideoRange::FULL, true, false); if (frame->colour_conversion()) { xyz = dcp::rgb_to_xyz ( image->data()[0], @@ -109,7 +110,7 @@ DCPVideo::convert_to_xyz (shared_ptr frame, dcp::NoteHandler note ); } else { - xyz.reset (new dcp::OpenJPEGImage (image->data()[0], image->size(), image->stride()[0])); + xyz = make_shared(image->data()[0], image->size(), image->stride()[0]); } return xyz; @@ -121,25 +122,25 @@ DCPVideo::convert_to_xyz (shared_ptr frame, dcp::NoteHandler ArrayData DCPVideo::encode_locally () { - string const comment = Config::instance()->dcp_j2k_comment(); + auto const comment = Config::instance()->dcp_j2k_comment(); - ArrayData enc = dcp::compress_j2k ( + auto enc = dcp::compress_j2k ( convert_to_xyz (_frame, boost::bind(&Log::dcp_log, dcpomatic_log.get(), _1, _2)), _j2k_bandwidth, _frames_per_second, - _frame->eyes() == EYES_LEFT || _frame->eyes() == EYES_RIGHT, - _resolution == RESOLUTION_4K, + _frame->eyes() == Eyes::LEFT || _frame->eyes() == Eyes::RIGHT, + _resolution == Resolution::FOUR_K, comment.empty() ? "libdcp" : comment ); switch (_frame->eyes()) { - case EYES_BOTH: + case Eyes::BOTH: LOG_DEBUG_ENCODE (N_("Finished locally-encoded frame %1 for mono"), _index); break; - case EYES_LEFT: + case Eyes::LEFT: LOG_DEBUG_ENCODE (N_("Finished locally-encoded frame %1 for L"), _index); break; - case EYES_RIGHT: + case Eyes::RIGHT: LOG_DEBUG_ENCODE (N_("Finished locally-encoded frame %1 for R"), _index); break; default: @@ -162,13 +163,13 @@ DCPVideo::encode_remotely (EncodeServerDescription serv, int timeout) boost::asio::ip::tcp::resolver::query query (serv.host_name(), raw_convert (ENCODE_FRAME_PORT)); boost::asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve (query); - shared_ptr socket (new Socket (timeout)); + auto socket = make_shared(timeout); socket->connect (*endpoint_iterator); /* Collect all XML metadata */ xmlpp::Document doc; - xmlpp::Element* root = doc.create_root_node ("EncodingRequest"); + auto root = doc.create_root_node ("EncodingRequest"); root->add_child("Version")->add_child_text (raw_convert (SERVER_LINK_VERSION)); add_metadata (root); @@ -178,7 +179,7 @@ DCPVideo::encode_remotely (EncodeServerDescription serv, int timeout) Socket::WriteDigestScope ds (socket); /* Send XML metadata */ - string xml = doc.write_to_string ("UTF-8"); + auto xml = doc.write_to_string ("UTF-8"); socket->write (xml.length() + 1); socket->write ((uint8_t *) xml.c_str(), xml.length() + 1); diff --git a/src/lib/emailer.cc b/src/lib/emailer.cc index c4637ff0d..8a061738b 100644 --- a/src/lib/emailer.cc +++ b/src/lib/emailer.cc @@ -176,7 +176,7 @@ Emailer::send (string server, int port, EmailProtocol protocol, string user, str throw NetworkError ("Could not initialise libcurl"); } - if ((protocol == EMAIL_PROTOCOL_AUTO && port == 465) || protocol == EMAIL_PROTOCOL_SSL) { + if ((protocol == EmailProtocol::AUTO && port == 465) || protocol == EmailProtocol::SSL) { /* "SSL" or "Implicit TLS"; I think curl wants us to use smtps here */ curl_easy_setopt (curl, CURLOPT_URL, String::compose("smtps://%1:%2", server, port).c_str()); } else { @@ -209,7 +209,7 @@ Emailer::send (string server, int port, EmailProtocol protocol, string user, str curl_easy_setopt (curl, CURLOPT_READDATA, this); curl_easy_setopt (curl, CURLOPT_UPLOAD, 1L); - if (protocol == EMAIL_PROTOCOL_AUTO || protocol == EMAIL_PROTOCOL_STARTTLS) { + if (protocol == EmailProtocol::AUTO || protocol == EmailProtocol::STARTTLS) { curl_easy_setopt (curl, CURLOPT_USE_SSL, (long) CURLUSESSL_TRY); } curl_easy_setopt (curl, CURLOPT_SSL_VERIFYPEER, 0L); diff --git a/src/lib/ffmpeg_content.cc b/src/lib/ffmpeg_content.cc index 2c42cf579..7f1c75a93 100644 --- a/src/lib/ffmpeg_content.cc +++ b/src/lib/ffmpeg_content.cc @@ -306,7 +306,7 @@ FFmpegContent::examine (shared_ptr film, shared_ptr job) _subtitle_streams = examiner->subtitle_streams (); if (!_subtitle_streams.empty ()) { text.clear (); - text.push_back (make_shared(this, TEXT_OPEN_SUBTITLE, TEXT_UNKNOWN)); + text.push_back (make_shared(this, TextType::OPEN_SUBTITLE, TextType::UNKNOWN)); _subtitle_stream = _subtitle_streams.front (); } } diff --git a/src/lib/ffmpeg_encoder.cc b/src/lib/ffmpeg_encoder.cc index 059742025..5f29b64da 100644 --- a/src/lib/ffmpeg_encoder.cc +++ b/src/lib/ffmpeg_encoder.cc @@ -32,15 +32,16 @@ #include "i18n.h" -using std::string; -using std::runtime_error; using std::cout; -using std::pair; using std::list; +using std::make_shared; using std::map; +using std::pair; +using std::runtime_error; using std::shared_ptr; -using boost::bind; +using std::string; using std::weak_ptr; +using boost::bind; using boost::optional; using namespace dcpomatic; #if BOOST_VERSION >= 106100 @@ -106,8 +107,8 @@ FFmpegEncoder::FFmpegEncoder ( } } - _butler.reset ( - new Butler(_film, _player, map, _output_audio_channels, bind(&PlayerVideo::force, _1, FFmpegFileEncoder::pixel_format(format)), VideoRange::VIDEO, true, false) + _butler = std::make_shared( + _film, _player, map, _output_audio_channels, bind(&PlayerVideo::force, _1, FFmpegFileEncoder::pixel_format(format)), VideoRange::VIDEO, true, false ); } @@ -116,7 +117,7 @@ void FFmpegEncoder::go () { { - shared_ptr job = _job.lock (); + auto job = _job.lock (); DCPOMATIC_ASSERT (job); job->sub (_("Encoding")); } @@ -154,14 +155,14 @@ FFmpegEncoder::go () ); } - list reel_periods = _film->reels (); - list::const_iterator reel = reel_periods.begin (); - list::iterator encoder = file_encoders.begin (); + auto reel_periods = _film->reels (); + auto reel = reel_periods.begin (); + auto encoder = file_encoders.begin (); - DCPTime const video_frame = DCPTime::from_frames (1, _film->video_frame_rate ()); + auto const video_frame = DCPTime::from_frames (1, _film->video_frame_rate ()); int const audio_frames = video_frame.frames_round(_film->audio_frame_rate()); float* interleaved = new float[_output_audio_channels * audio_frames]; - shared_ptr deinterleaved (new AudioBuffers (_output_audio_channels, audio_frames)); + auto deinterleaved = make_shared(_output_audio_channels, audio_frames); int const gets_per_frame = _film->three_d() ? 2 : 1; for (DCPTime i; i < _film->length(); i += video_frame) { @@ -175,7 +176,7 @@ FFmpegEncoder::go () for (int j = 0; j < gets_per_frame; ++j) { Butler::Error e; - pair, DCPTime> v = _butler->get_video (true, &e); + auto v = _butler->get_video (true, &e); _butler->rethrow (); if (!v.first) { throw DecodeError(String::compose("Error during decoding: %1", e.summary())); @@ -245,22 +246,19 @@ FFmpegEncoder::FileEncoderSet::FileEncoderSet ( { if (three_d) { /// TRANSLATORS: L here is an abbreviation for "left", to indicate the left-eye part of a 3D export - _encoders[EYES_LEFT] = shared_ptr( - new FFmpegFileEncoder( - video_frame_size, video_frame_rate, audio_frame_rate, channels, format, - audio_stream_per_channel, x264_crf, String::compose("%1_%2%3", output.string(), _("L"), extension)) + _encoders[Eyes::LEFT] = make_shared( + video_frame_size, video_frame_rate, audio_frame_rate, channels, format, + audio_stream_per_channel, x264_crf, String::compose("%1_%2%3", output.string(), _("L"), extension) ); /// TRANSLATORS: R here is an abbreviation for "right", to indicate the right-eye part of a 3D export - _encoders[EYES_RIGHT] = shared_ptr( - new FFmpegFileEncoder( - video_frame_size, video_frame_rate, audio_frame_rate, channels, format, - audio_stream_per_channel, x264_crf, String::compose("%1_%2%3", output.string(), _("R"), extension)) + _encoders[Eyes::RIGHT] = make_shared( + video_frame_size, video_frame_rate, audio_frame_rate, channels, format, + audio_stream_per_channel, x264_crf, String::compose("%1_%2%3", output.string(), _("R"), extension) ); } else { - _encoders[EYES_BOTH] = shared_ptr( - new FFmpegFileEncoder( - video_frame_size, video_frame_rate, audio_frame_rate, channels, format, - audio_stream_per_channel, x264_crf, String::compose("%1%2", output.string(), extension)) + _encoders[Eyes::BOTH] = make_shared( + video_frame_size, video_frame_rate, audio_frame_rate, channels, format, + audio_stream_per_channel, x264_crf, String::compose("%1%2", output.string(), extension) ); } } @@ -270,10 +268,10 @@ FFmpegEncoder::FileEncoderSet::get (Eyes eyes) const { if (_encoders.size() == 1) { /* We are doing a 2D export... */ - if (eyes == EYES_LEFT) { + if (eyes == Eyes::LEFT) { /* ...but we got some 3D data; put the left eye into the output... */ - eyes = EYES_BOTH; - } else if (eyes == EYES_RIGHT) { + eyes = Eyes::BOTH; + } else if (eyes == Eyes::RIGHT) { /* ...and ignore the right eye.*/ return shared_ptr(); } @@ -287,15 +285,15 @@ FFmpegEncoder::FileEncoderSet::get (Eyes eyes) const void FFmpegEncoder::FileEncoderSet::flush () { - for (map >::iterator i = _encoders.begin(); i != _encoders.end(); ++i) { - i->second->flush (); + for (auto& i: _encoders) { + i.second->flush (); } } void FFmpegEncoder::FileEncoderSet::audio (shared_ptr a) { - for (map >::iterator i = _encoders.begin(); i != _encoders.end(); ++i) { - i->second->audio (a); + for (auto& i: _encoders) { + i.second->audio (a); } } diff --git a/src/lib/ffmpeg_file_encoder.cc b/src/lib/ffmpeg_file_encoder.cc index 0aa976c3f..0378f5156 100644 --- a/src/lib/ffmpeg_file_encoder.cc +++ b/src/lib/ffmpeg_file_encoder.cc @@ -231,20 +231,20 @@ FFmpegFileEncoder::FFmpegFileEncoder ( _pixel_format = pixel_format (format); switch (format) { - case EXPORT_FORMAT_PRORES: + case ExportFormat::PRORES: _sample_format = AV_SAMPLE_FMT_S16; _video_codec_name = "prores_ks"; _audio_codec_name = "pcm_s16le"; av_dict_set (&_video_options, "profile", "3", 0); av_dict_set (&_video_options, "threads", "auto", 0); break; - case EXPORT_FORMAT_H264_AAC: + case ExportFormat::H264_AAC: _sample_format = AV_SAMPLE_FMT_FLTP; _video_codec_name = "libx264"; _audio_codec_name = "aac"; av_dict_set_int (&_video_options, "crf", x264_crf, 0); break; - case EXPORT_FORMAT_H264_PCM: + case ExportFormat::H264_PCM: _sample_format = AV_SAMPLE_FMT_S32; _video_codec_name = "libx264"; _audio_codec_name = "pcm_s24le"; @@ -289,10 +289,10 @@ AVPixelFormat FFmpegFileEncoder::pixel_format (ExportFormat format) { switch (format) { - case EXPORT_FORMAT_PRORES: + case ExportFormat::PRORES: return AV_PIX_FMT_YUV422P10; - case EXPORT_FORMAT_H264_AAC: - case EXPORT_FORMAT_H264_PCM: + case ExportFormat::H264_AAC: + case ExportFormat::H264_PCM: return AV_PIX_FMT_YUV420P; default: DCPOMATIC_ASSERT (false); @@ -399,14 +399,14 @@ void FFmpegFileEncoder::video (shared_ptr video, DCPTime time) { /* All our output formats are video range at the moment */ - shared_ptr image = video->image ( + auto image = video->image ( bind (&PlayerVideo::force, _1, _pixel_format), VideoRange::VIDEO, true, false ); - AVFrame* frame = av_frame_alloc (); + auto frame = av_frame_alloc (); DCPOMATIC_ASSERT (frame); { diff --git a/src/lib/film.cc b/src/lib/film.cc index dacde49d4..193dedf4c 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -151,7 +151,7 @@ Film::Film (optional dir) , _use_isdcf_name (true) , _dcp_content_type (Config::instance()->default_dcp_content_type ()) , _container (Config::instance()->default_container ()) - , _resolution (RESOLUTION_2K) + , _resolution (Resolution::TWO_K) , _encrypted (false) , _context_id (dcp::make_uuid ()) , _j2k_bandwidth (Config::instance()->default_j2k_bandwidth ()) @@ -162,7 +162,7 @@ Film::Film (optional dir) , _sequence (true) , _interop (Config::instance()->default_interop ()) , _audio_processor (0) - , _reel_type (REELTYPE_SINGLE) + , _reel_type (ReelType::SINGLE) , _reel_length (2000000000) , _reencode_j2k (false) , _user_explicit_video_frame_rate (false) @@ -620,7 +620,7 @@ Film::read_metadata (optional path) } } - _reel_type = static_cast (f.optional_number_child("ReelType").get_value_or (static_cast(REELTYPE_SINGLE))); + _reel_type = static_cast (f.optional_number_child("ReelType").get_value_or (static_cast(ReelType::SINGLE))); _reel_length = f.optional_number_child("ReelLength").get_value_or (2000000000); _reencode_j2k = f.optional_bool_child("ReencodeJ2K").get_value_or(false); _user_explicit_video_frame_rate = f.optional_bool_child("UserExplicitVideoFrameRate").get_value_or(false); @@ -906,9 +906,9 @@ Film::isdcf_name (bool if_created_now) const auto ccap = false; for (auto i: content()) { for (auto j: i->text) { - if (j->type() == TEXT_OPEN_SUBTITLE && j->use() && !j->burn()) { + if (j->type() == TextType::OPEN_SUBTITLE && j->use() && !j->burn()) { burnt_in = false; - } else if (j->type() == TEXT_CLOSED_CAPTION && j->use()) { + } else if (j->type() == TextType::CLOSED_CAPTION && j->use()) { ccap = true; } } @@ -993,7 +993,7 @@ Film::isdcf_name (bool if_created_now) const } bool any_text = false; - for (int i = 0; i < TEXT_COUNT; ++i) { + for (int i = 0; i < static_cast(TextType::COUNT); ++i) { if (dc->reference_text(static_cast(i))) { any_text = true; } @@ -1178,7 +1178,7 @@ Film::signal_change (ChangeType type, int p) void Film::signal_change (ChangeType type, Property p) { - if (type == CHANGE_TYPE_DONE) { + if (type == ChangeType::DONE) { _dirty = true; if (p == Film::CONTENT) { @@ -1217,9 +1217,9 @@ Film::j2c_path (int reel, Frame frame, Eyes eyes, bool tmp) const snprintf(buffer, sizeof(buffer), "%08d_%08" PRId64, reel, frame); string s (buffer); - if (eyes == EYES_LEFT) { + if (eyes == Eyes::LEFT) { s += ".L"; - } else if (eyes == EYES_RIGHT) { + } else if (eyes == Eyes::RIGHT) { s += ".R"; } @@ -1387,9 +1387,9 @@ Film::maybe_set_container_and_resolution () if (!_user_explicit_resolution) { if (video->size_after_crop().width > 2048 || video->size_after_crop().height > 1080) { - set_resolution (RESOLUTION_4K, false); + set_resolution (Resolution::FOUR_K, false); } else { - set_resolution (RESOLUTION_2K, false); + set_resolution (Resolution::TWO_K, false); } } } @@ -1449,7 +1449,7 @@ Film::playlist_content_change (ChangeType type, weak_ptr c, int p, bool signal_change (type, Film::NAME); } - if (type == CHANGE_TYPE_DONE) { + if (type == ChangeType::DONE) { emit (boost::bind (boost::ref (ContentChange), type, c, p, frequent)); if (!frequent) { check_settings_consistency (); @@ -1473,7 +1473,7 @@ Film::playlist_change (ChangeType type) signal_change (type, CONTENT); signal_change (type, NAME); - if (type == CHANGE_TYPE_DONE) { + if (type == ChangeType::DONE) { check_settings_consistency (); } @@ -1517,12 +1517,12 @@ Film::check_settings_consistency () d->set_reference_audio(false); change_made = true; } - if (d->reference_text(TEXT_OPEN_SUBTITLE) && !d->can_reference_text(shared_from_this(), TEXT_OPEN_SUBTITLE, why_not)) { - d->set_reference_text(TEXT_OPEN_SUBTITLE, false); + if (d->reference_text(TextType::OPEN_SUBTITLE) && !d->can_reference_text(shared_from_this(), TextType::OPEN_SUBTITLE, why_not)) { + d->set_reference_text(TextType::OPEN_SUBTITLE, false); change_made = true; } - if (d->reference_text(TEXT_CLOSED_CAPTION) && !d->can_reference_text(shared_from_this(), TEXT_CLOSED_CAPTION, why_not)) { - d->set_reference_text(TEXT_CLOSED_CAPTION, false); + if (d->reference_text(TextType::CLOSED_CAPTION) && !d->can_reference_text(shared_from_this(), TextType::CLOSED_CAPTION, why_not)) { + d->set_reference_text(TextType::CLOSED_CAPTION, false); change_made = true; } } @@ -1536,7 +1536,7 @@ void Film::playlist_order_changed () { /* XXX: missing PENDING */ - signal_change (CHANGE_TYPE_DONE, CONTENT_ORDER); + signal_change (ChangeType::DONE, CONTENT_ORDER); } int @@ -1565,9 +1565,9 @@ dcp::Size Film::full_frame () const { switch (_resolution) { - case RESOLUTION_2K: + case Resolution::TWO_K: return dcp::Size (2048, 1080); - case RESOLUTION_4K: + case Resolution::FOUR_K: return dcp::Size (4096, 2160); } @@ -1767,10 +1767,10 @@ Film::reels () const auto const len = length(); switch (reel_type ()) { - case REELTYPE_SINGLE: + case ReelType::SINGLE: p.push_back (DCPTimePeriod (DCPTime (), len)); break; - case REELTYPE_BY_VIDEO_CONTENT: + case ReelType::BY_VIDEO_CONTENT: { /* Collect all reel boundaries */ list split_points; @@ -1802,7 +1802,7 @@ Film::reels () const } break; } - case REELTYPE_BY_LENGTH: + case ReelType::BY_LENGTH: { DCPTime current; /* Integer-divide reel length by the size of one frame to give the number of frames per reel, @@ -1912,7 +1912,7 @@ Film::closed_caption_tracks () const for (auto j: i->text) { /* XXX: Empty DCPTextTrack ends up being a magic value here - the "unknown" or "not specified" track */ auto dtt = j->dcp_track().get_value_or(DCPTextTrack()); - if (j->type() == TEXT_CLOSED_CAPTION && find(tt.begin(), tt.end(), dtt) == tt.end()) { + if (j->type() == TextType::CLOSED_CAPTION && find(tt.begin(), tt.end(), dtt) == tt.end()) { tt.push_back (dtt); } } diff --git a/src/lib/hints.cc b/src/lib/hints.cc index ebc42bc91..32accdd02 100644 --- a/src/lib/hints.cc +++ b/src/lib/hints.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2016-2020 Carl Hetherington + Copyright (C) 2016-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -45,13 +45,14 @@ #include "i18n.h" -using std::vector; -using std::string; -using std::pair; -using std::min; -using std::max; using std::cout; +using std::make_shared; +using std::max; +using std::min; +using std::pair; using std::shared_ptr; +using std::string; +using std::vector; using std::weak_ptr; using boost::optional; using boost::bind; @@ -113,7 +114,7 @@ Hints::check_few_audio_channels () void Hints::check_upmixers () { - AudioProcessor const * ap = film()->audio_processor(); + auto ap = film()->audio_processor(); if (ap && (ap->id() == "stereo-5.1-upmix-a" || ap->id() == "stereo-5.1-upmix-b")) { hint (_("You are using DCP-o-matic's stereo-to-5.1 upmixer. This is experimental and may result in poor-quality audio. If you continue, you should listen to the resulting DCP in a cinema to make sure that it sounds good.")); } @@ -151,7 +152,7 @@ Hints::check_incorrect_container () void Hints::check_unusual_container () { - string const film_container = film()->container()->id(); + auto const film_container = film()->container()->id(); if (film_container != "185" && film_container != "239" && film_container != "190") { hint (_("Your DCP uses an unusual container ratio. This may cause problems on some projectors. If possible, use Flat or Scope for the DCP container ratio")); } @@ -170,7 +171,7 @@ Hints::check_high_j2k_bandwidth () void Hints::check_frame_rate () { - shared_ptr f = film (); + auto f = film (); switch (f->video_frame_rate()) { case 24: /* Fine */ @@ -274,7 +275,7 @@ Hints::check_3d_in_2d () { int three_d = 0; for (auto i: film()->content()) { - if (i->video && i->video->frame_type() != VIDEO_FRAME_TYPE_2D) { + if (i->video && i->video->frame_type() != VideoFrameType::TWO_D) { ++three_d; } } @@ -288,15 +289,15 @@ Hints::check_3d_in_2d () void Hints::check_loudness () { - boost::filesystem::path path = film()->audio_analysis_path(film()->playlist()); + auto path = film()->audio_analysis_path(film()->playlist()); if (boost::filesystem::exists (path)) { try { - shared_ptr an (new AudioAnalysis (path)); + auto an = make_shared(path); string ch; - vector sample_peak = an->sample_peak (); - vector true_peak = an->true_peak (); + auto sample_peak = an->sample_peak (); + auto true_peak = an->true_peak (); for (size_t i = 0; i < sample_peak.size(); ++i) { float const peak = max (sample_peak[i].peak, true_peak.empty() ? 0 : true_peak[i]); @@ -335,12 +336,12 @@ subtitle_mxf_too_big (shared_ptr asset) void Hints::thread () { - shared_ptr film = _film.lock (); + auto film = _film.lock (); if (!film) { return; } - ContentList content = film->content (); + auto content = film->content (); check_big_font_files (); check_few_audio_channels (); @@ -357,7 +358,7 @@ Hints::thread () emit (bind(boost::ref(Progress), _("Examining closed captions"))); - shared_ptr player (new Player(film)); + auto player = make_shared(film); player->set_ignore_video (); player->set_ignore_audio (); player->Text.connect (bind(&Hints::text, this, _1, _2, _3, _4)); @@ -402,7 +403,7 @@ Hints::thread () dcp::DCP dcp (dcp_dir); dcp.read (); DCPOMATIC_ASSERT (dcp.cpls().size() == 1); - for (auto reel: dcp.cpls().front()->reels()) { + for (auto reel: dcp.cpls()[0]->reels()) { for (auto ccap: reel->closed_captions()) { if (ccap->asset() && ccap->asset()->xml_as_string().length() > static_cast(MAX_CLOSED_CAPTION_XML_SIZE - SIZE_SLACK) && !ccap_xml_too_big) { hint (_( @@ -444,10 +445,10 @@ Hints::text (PlayerText text, TextType type, optional track, DCPTi _writer->write (text, type, track, period); switch (type) { - case TEXT_CLOSED_CAPTION: + case TextType::CLOSED_CAPTION: closed_caption (text, period); break; - case TEXT_OPEN_SUBTITLE: + case TextType::OPEN_SUBTITLE: open_subtitle (text, period); break; default: @@ -533,7 +534,7 @@ Hints::open_subtitle (PlayerText text, DCPTimePeriod period) void Hints::check_ffec_and_ffmc_in_smpte_feature () { - shared_ptr f = film(); + auto f = film(); if (!f->interop() && f->dcp_content_type()->libdcp_kind() == dcp::ContentKind::FEATURE && (!f->marker(dcp::Marker::FFEC) || !f->marker(dcp::Marker::FFMC))) { hint (_("SMPTE DCPs with the type FTR (feature) should have markers for the first frame of end credits (FFEC) and the first frame of moving credits (FFMC). You should add these markers using the 'Markers' button in the DCP tab.")); } diff --git a/src/lib/j2k_encoder.cc b/src/lib/j2k_encoder.cc index 7c6e23477..a7fa657f8 100644 --- a/src/lib/j2k_encoder.cc +++ b/src/lib/j2k_encoder.cc @@ -218,7 +218,7 @@ J2KEncoder::encode (shared_ptr pv, DCPTime time) /* This frame already has J2K data, so just write it */ _writer->write (pv->j2k(), position, pv->eyes ()); frame_done (); - } else if (_last_player_video[pv->eyes()] && _writer->can_repeat(position) && pv->same (_last_player_video[pv->eyes()])) { + } else if (_last_player_video[static_cast(pv->eyes())] && _writer->can_repeat(position) && pv->same (_last_player_video[static_cast(pv->eyes())])) { LOG_DEBUG_ENCODE("Frame @ %1 REPEAT", to_string(time)); _writer->repeat (position, pv->eyes ()); } else { @@ -239,7 +239,7 @@ J2KEncoder::encode (shared_ptr pv, DCPTime time) _empty_condition.notify_all (); } - _last_player_video[pv->eyes()] = pv; + _last_player_video[static_cast(pv->eyes())] = pv; _last_player_video_time = time; } diff --git a/src/lib/j2k_encoder.h b/src/lib/j2k_encoder.h index afa010ace..98cca6ba2 100644 --- a/src/lib/j2k_encoder.h +++ b/src/lib/j2k_encoder.h @@ -98,7 +98,7 @@ private: std::shared_ptr _writer; Waker _waker; - std::shared_ptr _last_player_video[EYES_COUNT]; + std::shared_ptr _last_player_video[static_cast(Eyes::COUNT)]; boost::optional _last_player_video_time; boost::signals2::scoped_connection _server_found_connection; diff --git a/src/lib/j2k_image_proxy.h b/src/lib/j2k_image_proxy.h index 91c90dba7..06de576f3 100644 --- a/src/lib/j2k_image_proxy.h +++ b/src/lib/j2k_image_proxy.h @@ -50,6 +50,9 @@ public: J2KImageProxy (std::shared_ptr xml, std::shared_ptr socket); + /* For tests */ + J2KImageProxy (dcp::ArrayData data, dcp::Size size, AVPixelFormat pixel_format); + Result image ( boost::optional size = boost::optional () ) const; @@ -71,11 +74,6 @@ public: size_t memory_used () const; private: - friend struct client_server_test_j2k; - - /* For tests */ - J2KImageProxy (dcp::ArrayData data, dcp::Size size, AVPixelFormat pixel_format); - std::shared_ptr _data; dcp::Size _size; boost::optional _eye; diff --git a/src/lib/player.cc b/src/lib/player.cc index cbfea55b6..74e7480f5 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -62,19 +62,20 @@ #include "i18n.h" -using std::list; +using std::copy; using std::cout; -using std::min; +using std::dynamic_pointer_cast; +using std::list; +using std::make_pair; +using std::make_shared; +using std::map; using std::max; using std::min; -using std::vector; +using std::min; using std::pair; -using std::map; -using std::make_pair; -using std::copy; using std::shared_ptr; +using std::vector; using std::weak_ptr; -using std::dynamic_pointer_cast; using boost::optional; using boost::scoped_ptr; #if BOOST_VERSION >= 106100 @@ -92,15 +93,8 @@ int const PlayerProperty::PLAYBACK_LENGTH = 705; Player::Player (shared_ptr film) : _film (film) , _suspended (0) - , _ignore_video (false) - , _ignore_audio (false) - , _ignore_text (false) - , _always_burn_open_subtitles (false) - , _fast (false) , _tolerant (film->tolerant()) - , _play_referenced (false) , _audio_merger (_film->audio_frame_rate()) - , _shuffler (0) { construct (); } @@ -109,15 +103,8 @@ Player::Player (shared_ptr film, shared_ptr playlist : _film (film) , _playlist (playlist_) , _suspended (0) - , _ignore_video (false) - , _ignore_audio (false) - , _ignore_text (false) - , _always_burn_open_subtitles (false) - , _fast (false) , _tolerant (film->tolerant()) - , _play_referenced (false) , _audio_merger (_film->audio_frame_rate()) - , _shuffler (0) { construct (); } @@ -133,7 +120,7 @@ Player::construct () _playlist_content_change_connection = playlist()->ContentChange.connect (bind(&Player::playlist_content_change, this, _1, _3, _4)); set_video_container_size (_film->frame_size ()); - film_change (CHANGE_TYPE_DONE, Film::AUDIO_PROCESSOR); + film_change (ChangeType::DONE, Film::AUDIO_PROCESSOR); setup_pieces (); seek (DCPTime (), true); @@ -169,7 +156,7 @@ Player::setup_pieces_unlocked () { _playback_length = _playlist ? _playlist->length(_film) : _film->length(); - list > old_pieces = _pieces; + auto old_pieces = _pieces; _pieces.clear (); delete _shuffler; @@ -195,7 +182,7 @@ Player::setup_pieces_unlocked () } } - shared_ptr decoder = decoder_factory (_film, i, _fast, _tolerant, old_decoder); + auto decoder = decoder_factory (_film, i, _fast, _tolerant, old_decoder); DCPOMATIC_ASSERT (decoder); FrameRateChange frc (_film, i); @@ -214,7 +201,7 @@ Player::setup_pieces_unlocked () } } - shared_ptr dcp = dynamic_pointer_cast (decoder); + auto dcp = dynamic_pointer_cast (decoder); if (dcp) { dcp->set_decode_referenced (_play_referenced); if (_play_referenced) { @@ -222,15 +209,15 @@ Player::setup_pieces_unlocked () } } - shared_ptr piece (new Piece (i, decoder, frc)); + auto piece = make_shared(i, decoder, frc); _pieces.push_back (piece); if (decoder->video) { - if (i->video->frame_type() == VIDEO_FRAME_TYPE_3D_LEFT || i->video->frame_type() == VIDEO_FRAME_TYPE_3D_RIGHT) { + if (i->video->frame_type() == VideoFrameType::THREE_D_LEFT || i->video->frame_type() == VideoFrameType::THREE_D_RIGHT) { /* We need a Shuffler to cope with 3D L/R video data arriving out of sequence */ - decoder->video->Data.connect (bind (&Shuffler::video, _shuffler, weak_ptr(piece), _1)); + decoder->video->Data.connect (bind(&Shuffler::video, _shuffler, weak_ptr(piece), _1)); } else { - decoder->video->Data.connect (bind (&Player::video, this, weak_ptr(piece), _1)); + decoder->video->Data.connect (bind(&Player::video, this, weak_ptr(piece), _1)); } } @@ -238,7 +225,7 @@ Player::setup_pieces_unlocked () decoder->audio->Data.connect (bind (&Player::audio, this, weak_ptr (piece), _1, _2)); } - list >::const_iterator j = decoder->text.begin(); + auto j = decoder->text.begin(); while (j != decoder->text.end()) { (*j)->BitmapStart.connect ( @@ -272,7 +259,7 @@ Player::setup_pieces_unlocked () _silent = Empty (_film, playlist(), bind(&have_audio, _1), _playback_length); _last_video_time = DCPTime (); - _last_video_eyes = EYES_BOTH; + _last_video_eyes = Eyes::BOTH; _last_audio_time = DCPTime (); } @@ -280,7 +267,7 @@ void Player::playlist_content_change (ChangeType type, int property, bool frequent) { if (property == VideoContentProperty::CROP) { - if (type == CHANGE_TYPE_DONE) { + if (type == ChangeType::DONE) { dcp::Size const vcs = video_container_size(); boost::mutex::scoped_lock lm (_mutex); for (list, DCPTime> >::const_iterator i = _delay.begin(); i != _delay.end(); ++i) { @@ -288,17 +275,17 @@ Player::playlist_content_change (ChangeType type, int property, bool frequent) } } } else { - if (type == CHANGE_TYPE_PENDING) { + if (type == ChangeType::PENDING) { /* The player content is probably about to change, so we can't carry on until that has happened and we've rebuilt our pieces. Stop pass() and seek() from working until then. */ ++_suspended; - } else if (type == CHANGE_TYPE_DONE) { + } else if (type == ChangeType::DONE) { /* A change in our content has gone through. Re-build our pieces. */ setup_pieces (); --_suspended; - } else if (type == CHANGE_TYPE_CANCELLED) { + } else if (type == ChangeType::CANCELLED) { --_suspended; } } @@ -309,14 +296,14 @@ Player::playlist_content_change (ChangeType type, int property, bool frequent) void Player::set_video_container_size (dcp::Size s) { - Change (CHANGE_TYPE_PENDING, PlayerProperty::VIDEO_CONTAINER_SIZE, false); + Change (ChangeType::PENDING, PlayerProperty::VIDEO_CONTAINER_SIZE, false); { boost::mutex::scoped_lock lm (_mutex); if (s == _video_container_size) { lm.unlock (); - Change (CHANGE_TYPE_CANCELLED, PlayerProperty::VIDEO_CONTAINER_SIZE, false); + Change (ChangeType::CANCELLED, PlayerProperty::VIDEO_CONTAINER_SIZE, false); return; } @@ -326,13 +313,13 @@ Player::set_video_container_size (dcp::Size s) _black_image->make_black (); } - Change (CHANGE_TYPE_DONE, PlayerProperty::VIDEO_CONTAINER_SIZE, false); + Change (ChangeType::DONE, PlayerProperty::VIDEO_CONTAINER_SIZE, false); } void Player::playlist_change (ChangeType type) { - if (type == CHANGE_TYPE_DONE) { + if (type == ChangeType::DONE) { setup_pieces (); } Change (type, PlayerProperty::PLAYLIST, false); @@ -352,17 +339,17 @@ Player::film_change (ChangeType type, Film::Property p) /* Pieces contain a FrameRateChange which contains the DCP frame rate, so we need new pieces here. */ - if (type == CHANGE_TYPE_DONE) { + if (type == ChangeType::DONE) { setup_pieces (); } Change (type, PlayerProperty::FILM_VIDEO_FRAME_RATE, false); } else if (p == Film::AUDIO_PROCESSOR) { - if (type == CHANGE_TYPE_DONE && _film->audio_processor ()) { + if (type == ChangeType::DONE && _film->audio_processor ()) { boost::mutex::scoped_lock lm (_mutex); _audio_processor = _film->audio_processor()->clone (_film->audio_frame_rate ()); } } else if (p == Film::AUDIO_CHANNELS) { - if (type == CHANGE_TYPE_DONE) { + if (type == ChangeType::DONE) { boost::mutex::scoped_lock lm (_mutex); _audio_merger.clear (); } @@ -372,21 +359,19 @@ Player::film_change (ChangeType type, Film::Property p) shared_ptr Player::black_player_video_frame (Eyes eyes) const { - return shared_ptr ( - new PlayerVideo ( - shared_ptr (new RawImageProxy (_black_image)), - Crop (), - optional (), - _video_container_size, - _video_container_size, - eyes, - PART_WHOLE, - PresetColourConversion::all().front().conversion, - VideoRange::FULL, - std::weak_ptr(), - boost::optional(), - false - ) + return std::make_shared ( + std::make_shared(_black_image), + Crop(), + optional(), + _video_container_size, + _video_container_size, + eyes, + Part::WHOLE, + PresetColourConversion::all().front().conversion, + VideoRange::FULL, + std::weak_ptr(), + boost::optional(), + false ); } @@ -411,14 +396,14 @@ DCPTime Player::content_video_to_dcp (shared_ptr piece, Frame f) const { /* See comment in dcp_to_content_video */ - DCPTime const d = DCPTime::from_frames (f * piece->frc.factor(), piece->frc.dcp) - DCPTime(piece->content->trim_start(), piece->frc); + auto const d = DCPTime::from_frames (f * piece->frc.factor(), piece->frc.dcp) - DCPTime(piece->content->trim_start(), piece->frc); return d + piece->content->position(); } Frame Player::dcp_to_resampled_audio (shared_ptr piece, DCPTime t) const { - DCPTime s = t - piece->content->position (); + auto s = t - piece->content->position (); s = min (piece->content->length_after_trim(_film), s); /* See notes in dcp_to_content_video */ return max (DCPTime (), DCPTime (piece->content->trim_start (), piece->frc) + s).frames_floor (_film->audio_frame_rate ()); @@ -436,7 +421,7 @@ Player::resampled_audio_to_dcp (shared_ptr piece, Frame f) const ContentTime Player::dcp_to_content_time (shared_ptr piece, DCPTime t) const { - DCPTime s = t - piece->content->position (); + auto s = t - piece->content->position (); s = min (piece->content->length_after_trim(_film), s); return max (ContentTime (), ContentTime (s, piece->frc) + piece->content->trim_start()); } @@ -444,7 +429,7 @@ Player::dcp_to_content_time (shared_ptr piece, DCPTime t) const DCPTime Player::content_time_to_dcp (shared_ptr piece, ContentTime t) const { - return max (DCPTime (), DCPTime (t - piece->content->trim_start(), piece->frc) + piece->content->position()); + return max (DCPTime(), DCPTime(t - piece->content->trim_start(), piece->frc) + piece->content->position()); } vector @@ -457,7 +442,7 @@ Player::get_subtitle_fonts () /* XXX: things may go wrong if there are duplicate font IDs with different font files. */ - vector f = i->decoder->fonts (); + auto f = i->decoder->fonts (); copy (f.begin(), f.end(), back_inserter(fonts)); } @@ -580,11 +565,11 @@ Player::get_reel_assets () maybe_add_asset (a, k->main_sound(), reel_trim_start, reel_trim_end, from, ffr); } - if (j->reference_text (TEXT_OPEN_SUBTITLE)) { + if (j->reference_text (TextType::OPEN_SUBTITLE)) { maybe_add_asset (a, k->main_subtitle(), reel_trim_start, reel_trim_end, from, ffr); } - if (j->reference_text (TEXT_CLOSED_CAPTION)) { + if (j->reference_text (TextType::CLOSED_CAPTION)) { for (auto l: k->closed_captions()) { maybe_add_asset (a, l, reel_trim_start, reel_trim_end, from, ffr); } @@ -611,7 +596,7 @@ Player::pass () if (_playback_length == DCPTime()) { /* Special; just give one black frame */ - emit_video (black_player_video_frame(EYES_BOTH), DCPTime()); + emit_video (black_player_video_frame(Eyes::BOTH), DCPTime()); return true; } @@ -680,7 +665,7 @@ Player::pass () } case BLACK: LOG_DEBUG_PLAYER ("Emit black for gap at %1", to_string(_black.position())); - emit_video (black_player_video_frame(EYES_BOTH), _black.position()); + emit_video (black_player_video_frame(Eyes::BOTH), _black.position()); _black.set_position (_black.position() + one_video_frame()); break; case SILENT: @@ -766,7 +751,7 @@ Player::open_subtitles_for_frame (DCPTime time) const for ( auto j: - _active_texts[TEXT_OPEN_SUBTITLE].get_burnt(DCPTimePeriod(time, time + DCPTime::from_frames(1, vfr)), _always_burn_open_subtitles) + _active_texts[static_cast(TextType::OPEN_SUBTITLE)].get_burnt(DCPTimePeriod(time, time + DCPTime::from_frames(1, vfr)), _always_burn_open_subtitles) ) { /* Bitmap subtitles */ @@ -845,17 +830,17 @@ Player::video (weak_ptr wp, ContentVideo video) LastVideoMap::const_iterator last = _last_video.find (wp); if (_film->three_d()) { Eyes fill_to_eyes = video.eyes; - if (fill_to_eyes == EYES_BOTH) { - fill_to_eyes = EYES_LEFT; + if (fill_to_eyes == Eyes::BOTH) { + fill_to_eyes = Eyes::LEFT; } if (fill_to == piece->content->end(_film)) { /* Don't fill after the end of the content */ - fill_to_eyes = EYES_LEFT; + fill_to_eyes = Eyes::LEFT; } DCPTime j = fill_from; - Eyes eyes = _last_video_eyes.get_value_or(EYES_LEFT); - if (eyes == EYES_BOTH) { - eyes = EYES_LEFT; + Eyes eyes = _last_video_eyes.get_value_or(Eyes::LEFT); + if (eyes == Eyes::BOTH) { + eyes = Eyes::LEFT; } while (j < fill_to || eyes != fill_to_eyes) { if (last != _last_video.end()) { @@ -867,7 +852,7 @@ Player::video (weak_ptr wp, ContentVideo video) LOG_DEBUG_PLAYER("Fill using black at %1 in 3D mode", to_string(j)); emit_video (black_player_video_frame(eyes), j); } - if (eyes == EYES_RIGHT) { + if (eyes == Eyes::RIGHT) { j += one_video_frame(); } eyes = increment_eyes (eyes); @@ -877,7 +862,7 @@ Player::video (weak_ptr wp, ContentVideo video) if (last != _last_video.end()) { emit_video (last->second, j); } else { - emit_video (black_player_video_frame(EYES_BOTH), j); + emit_video (black_player_video_frame(Eyes::BOTH), j); } } } @@ -1014,7 +999,7 @@ Player::bitmap_text_start (weak_ptr wp, weak_ptr wc, C ps.bitmap.push_back (BitmapText(image->scale(scaled_size, dcp::YUVToRGB::REC601, image->pixel_format(), true, _fast), subtitle.sub.rectangle)); DCPTime from (content_time_to_dcp (piece, subtitle.from())); - _active_texts[text->type()].add_from (wc, ps, from); + _active_texts[static_cast(text->type())].add_from (wc, ps, from); } void @@ -1058,7 +1043,7 @@ Player::plain_text_start (weak_ptr wp, weak_ptr wc, Co ps.add_fonts (text->fonts ()); } - _active_texts[text->type()].add_from (wc, ps, from); + _active_texts[static_cast(text->type())].add_from (wc, ps, from); } void @@ -1069,7 +1054,7 @@ Player::subtitle_stop (weak_ptr wp, weak_ptr wc, Conte return; } - if (!_active_texts[text->type()].have(wc)) { + if (!_active_texts[static_cast(text->type())].have(wc)) { return; } @@ -1084,9 +1069,9 @@ Player::subtitle_stop (weak_ptr wp, weak_ptr wc, Conte return; } - pair from = _active_texts[text->type()].add_to (wc, dcp_to); + pair from = _active_texts[static_cast(text->type())].add_to (wc, dcp_to); - bool const always = (text->type() == TEXT_OPEN_SUBTITLE && _always_burn_open_subtitles); + bool const always = (text->type() == TextType::OPEN_SUBTITLE && _always_burn_open_subtitles); if (text->use() && !always && !text->burn()) { Text (from.first, text->type(), text->dcp_track().get_value_or(DCPTextTrack()), DCPTimePeriod (from.second, dcp_to)); } @@ -1114,7 +1099,7 @@ Player::seek (DCPTime time, bool accurate) } _audio_merger.clear (); - for (int i = 0; i < TEXT_COUNT; ++i) { + for (int i = 0; i < static_cast(TextType::COUNT); ++i) { _active_texts[i].clear (); } @@ -1139,7 +1124,7 @@ Player::seek (DCPTime time, bool accurate) if (accurate) { _last_video_time = time; - _last_video_eyes = EYES_LEFT; + _last_video_eyes = Eyes::LEFT; _last_audio_time = time; } else { _last_video_time = optional(); @@ -1161,7 +1146,7 @@ Player::emit_video (shared_ptr pv, DCPTime time) */ _delay.push_back (make_pair (pv, time)); - if (pv->eyes() == EYES_BOTH || pv->eyes() == EYES_RIGHT) { + if (pv->eyes() == Eyes::BOTH || pv->eyes() == Eyes::RIGHT) { _last_video_time = time + one_video_frame(); } _last_video_eyes = increment_eyes (pv->eyes()); @@ -1178,13 +1163,13 @@ Player::emit_video (shared_ptr pv, DCPTime time) void Player::do_emit_video (shared_ptr pv, DCPTime time) { - if (pv->eyes() == EYES_BOTH || pv->eyes() == EYES_RIGHT) { - for (int i = 0; i < TEXT_COUNT; ++i) { + if (pv->eyes() == Eyes::BOTH || pv->eyes() == Eyes::RIGHT) { + for (int i = 0; i < static_cast(TextType::COUNT); ++i) { _active_texts[i].clear_before (time); } } - optional subtitles = open_subtitles_for_frame (time); + auto subtitles = open_subtitles_for_frame (time); if (subtitles) { pv->set_text (subtitles.get ()); } @@ -1250,14 +1235,14 @@ Player::discard_audio (shared_ptr audio, DCPTime time, DCPTi void Player::set_dcp_decode_reduction (optional reduction) { - Change (CHANGE_TYPE_PENDING, PlayerProperty::DCP_DECODE_REDUCTION, false); + Change (ChangeType::PENDING, PlayerProperty::DCP_DECODE_REDUCTION, false); { boost::mutex::scoped_lock lm (_mutex); if (reduction == _dcp_decode_reduction) { lm.unlock (); - Change (CHANGE_TYPE_CANCELLED, PlayerProperty::DCP_DECODE_REDUCTION, false); + Change (ChangeType::CANCELLED, PlayerProperty::DCP_DECODE_REDUCTION, false); return; } @@ -1265,7 +1250,7 @@ Player::set_dcp_decode_reduction (optional reduction) setup_pieces_unlocked (); } - Change (CHANGE_TYPE_DONE, PlayerProperty::DCP_DECODE_REDUCTION, false); + Change (ChangeType::DONE, PlayerProperty::DCP_DECODE_REDUCTION, false); } optional @@ -1280,7 +1265,7 @@ Player::content_time_to_dcp (shared_ptr content, ContentTime t) } /* We couldn't find this content; perhaps things are being changed over */ - return optional(); + return {}; } diff --git a/src/lib/player.h b/src/lib/player.h index 48ed568da..0b0c9facd 100644 --- a/src/lib/player.h +++ b/src/lib/player.h @@ -171,17 +171,17 @@ private: std::shared_ptr _black_image; /** true if the player should ignore all video; i.e. never produce any */ - bool _ignore_video; - bool _ignore_audio; + bool _ignore_video = false; + bool _ignore_audio = false; /** true if the player should ignore all text; i.e. never produce any */ - bool _ignore_text; - bool _always_burn_open_subtitles; + bool _ignore_text = false; + bool _always_burn_open_subtitles = false; /** true if we should try to be fast rather than high quality */ - bool _fast; + bool _fast = false; /** true if we should keep going in the face of `survivable' errors */ - bool _tolerant; + bool _tolerant = false; /** true if we should `play' (i.e output) referenced DCP data (e.g. for preview) */ - bool _play_referenced; + bool _play_referenced = false; /** Time just after the last video frame we emitted, or the time of the last accurate seek */ boost::optional _last_video_time; @@ -195,7 +195,7 @@ private: LastVideoMap _last_video; AudioMerger _audio_merger; - Shuffler* _shuffler; + Shuffler* _shuffler = nullptr; std::list, dcpomatic::DCPTime> > _delay; class StreamState @@ -216,7 +216,7 @@ private: Empty _black; Empty _silent; - ActiveText _active_texts[TEXT_COUNT]; + ActiveText _active_texts[static_cast(TextType::COUNT)]; std::shared_ptr _audio_processor; dcpomatic::DCPTime _playback_length; diff --git a/src/lib/player_video.cc b/src/lib/player_video.cc index ce552f20f..f91b990c8 100644 --- a/src/lib/player_video.cc +++ b/src/lib/player_video.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2013-2020 Carl Hetherington + Copyright (C) 2013-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,14 +18,14 @@ */ -#include "player_video.h" #include "content.h" -#include "video_content.h" +#include "film.h" #include "image.h" #include "image_proxy.h" #include "j2k_image_proxy.h" -#include "film.h" #include "player.h" +#include "player_video.h" +#include "video_content.h" #include extern "C" { #include @@ -33,12 +33,13 @@ extern "C" { #include #include -using std::string; using std::cout; +using std::dynamic_pointer_cast; +using std::make_shared; using std::pair; using std::shared_ptr; +using std::string; using std::weak_ptr; -using std::dynamic_pointer_cast; using boost::optional; using boost::function; using dcp::Data; @@ -81,25 +82,25 @@ PlayerVideo::PlayerVideo (shared_ptr node, shared_ptr socket _inter_size = dcp::Size (node->number_child ("InterWidth"), node->number_child ("InterHeight")); _out_size = dcp::Size (node->number_child ("OutWidth"), node->number_child ("OutHeight")); - _eyes = (Eyes) node->number_child ("Eyes"); - _part = (Part) node->number_child ("Part"); - _video_range = (VideoRange) node->number_child("VideoRange"); + _eyes = static_cast(node->number_child("Eyes")); + _part = static_cast(node->number_child("Part")); + _video_range = static_cast(node->number_child("VideoRange")); _error = node->optional_bool_child("Error").get_value_or (false); /* Assume that the ColourConversion uses the current state version */ _colour_conversion = ColourConversion::from_xml (node, Film::current_state_version); - _in = image_proxy_factory (node->node_child ("In"), socket); + _in = image_proxy_factory (node->node_child("In"), socket); - if (node->optional_number_child ("SubtitleX")) { + if (node->optional_number_child("SubtitleX")) { - shared_ptr image ( - new Image (AV_PIX_FMT_BGRA, dcp::Size (node->number_child ("SubtitleWidth"), node->number_child ("SubtitleHeight")), true) + auto image = make_shared ( + AV_PIX_FMT_BGRA, dcp::Size(node->number_child("SubtitleWidth"), node->number_child("SubtitleHeight")), true ); image->read_from_socket (socket); - _text = PositionImage (image, Position (node->number_child ("SubtitleX"), node->number_child ("SubtitleY"))); + _text = PositionImage (image, Position(node->number_child("SubtitleX"), node->number_child("SubtitleY"))); } } @@ -136,21 +137,21 @@ PlayerVideo::make_image (function pixel_format, V _image_out_size = _out_size; _image_fade = _fade; - ImageProxy::Result prox = _in->image (_inter_size); + auto prox = _in->image (_inter_size); _error = prox.error; - Crop total_crop = _crop; + auto total_crop = _crop; switch (_part) { - case PART_LEFT_HALF: + case Part::LEFT_HALF: total_crop.right += prox.image->size().width / 2; break; - case PART_RIGHT_HALF: + case Part::RIGHT_HALF: total_crop.left += prox.image->size().width / 2; break; - case PART_TOP_HALF: + case Part::TOP_HALF: total_crop.bottom += prox.image->size().height / 2; break; - case PART_BOTTOM_HALF: + case Part::BOTTOM_HALF: total_crop.top += prox.image->size().height / 2; break; default: @@ -225,18 +226,18 @@ PlayerVideo::has_j2k () const { /* XXX: maybe other things */ - shared_ptr j2k = dynamic_pointer_cast (_in); + auto j2k = dynamic_pointer_cast (_in); if (!j2k) { return false; } - return _crop == Crop () && _out_size == j2k->size() && !_text && !_fade && !_colour_conversion; + return _crop == Crop() && _out_size == j2k->size() && !_text && !_fade && !_colour_conversion; } shared_ptr PlayerVideo::j2k () const { - shared_ptr j2k = dynamic_pointer_cast (_in); + auto j2k = dynamic_pointer_cast (_in); DCPOMATIC_ASSERT (j2k); return j2k->j2k (); } @@ -309,21 +310,19 @@ PlayerVideo::memory_used () const shared_ptr PlayerVideo::shallow_copy () const { - return shared_ptr( - new PlayerVideo( - _in, - _crop, - _fade, - _inter_size, - _out_size, - _eyes, - _part, - _colour_conversion, - _video_range, - _content, - _video_frame, - _error - ) + return std::make_shared( + _in, + _crop, + _fade, + _inter_size, + _out_size, + _eyes, + _part, + _colour_conversion, + _video_range, + _content, + _video_frame, + _error ); } @@ -333,7 +332,7 @@ PlayerVideo::shallow_copy () const bool PlayerVideo::reset_metadata (shared_ptr film, dcp::Size player_video_container_size) { - shared_ptr content = _content.lock(); + auto content = _content.lock(); if (!content || !_video_frame) { return false; } diff --git a/src/lib/playlist.cc b/src/lib/playlist.cc index ab7649be1..20534e467 100644 --- a/src/lib/playlist.cc +++ b/src/lib/playlist.cc @@ -72,10 +72,10 @@ Playlist::~Playlist () void Playlist::content_change (weak_ptr weak_film, ChangeType type, weak_ptr content, int property, bool frequent) { - shared_ptr film = weak_film.lock (); + auto film = weak_film.lock (); DCPOMATIC_ASSERT (film); - if (type == CHANGE_TYPE_DONE) { + if (type == ChangeType::DONE) { if ( property == ContentProperty::TRIM_START || property == ContentProperty::TRIM_END || @@ -142,7 +142,7 @@ Playlist::maybe_sequence (shared_ptr film) continue; } - if (i->video->frame_type() == VIDEO_FRAME_TYPE_3D_RIGHT) { + if (i->video->frame_type() == VideoFrameType::THREE_D_RIGHT) { i->set_position (film, next_right); next_right = i->end(film); } else { @@ -204,10 +204,10 @@ Playlist::set_from_xml (shared_ptr film, cxml::ConstNodePtr node, in boost::mutex::scoped_lock lm (_mutex); for (auto i: node->node_children ("Content")) { - shared_ptr content = content_factory (i, version, notes); + auto content = content_factory (i, version, notes); /* See if this content should be nudged to start on a video frame */ - DCPTime const old_pos = content->position(); + auto const old_pos = content->position(); content->set_position(film, old_pos); if (old_pos != content->position()) { string note = _("Your project contains video content that was not aligned to a frame boundary."); @@ -269,7 +269,7 @@ Playlist::as_xml (xmlpp::Node* node, bool with_content_paths) void Playlist::add (shared_ptr film, shared_ptr c) { - Change (CHANGE_TYPE_PENDING); + Change (ChangeType::PENDING); { boost::mutex::scoped_lock lm (_mutex); @@ -278,7 +278,7 @@ Playlist::add (shared_ptr film, shared_ptr c) reconnect (film); } - Change (CHANGE_TYPE_DONE); + Change (ChangeType::DONE); LengthChange (); } @@ -286,14 +286,14 @@ Playlist::add (shared_ptr film, shared_ptr c) void Playlist::remove (shared_ptr c) { - Change (CHANGE_TYPE_PENDING); + Change (ChangeType::PENDING); bool cancelled = false; { boost::mutex::scoped_lock lm (_mutex); - ContentList::iterator i = _content.begin (); + auto i = _content.begin (); while (i != _content.end() && *i != c) { ++i; } @@ -306,9 +306,9 @@ Playlist::remove (shared_ptr c) } if (cancelled) { - Change (CHANGE_TYPE_CANCELLED); + Change (ChangeType::CANCELLED); } else { - Change (CHANGE_TYPE_DONE); + Change (ChangeType::DONE); } /* This won't change order, so it does not need a sort */ @@ -319,7 +319,7 @@ Playlist::remove (shared_ptr c) void Playlist::remove (ContentList c) { - Change (CHANGE_TYPE_PENDING); + Change (ChangeType::PENDING); { boost::mutex::scoped_lock lm (_mutex); @@ -336,7 +336,7 @@ Playlist::remove (ContentList c) } } - Change (CHANGE_TYPE_DONE); + Change (ChangeType::DONE); /* This won't change order, so it does not need a sort */ @@ -359,7 +359,7 @@ public: int Playlist::best_video_frame_rate () const { - list const allowed_dcp_frame_rates = Config::instance()->allowed_dcp_frame_rates (); + auto const allowed_dcp_frame_rates = Config::instance()->allowed_dcp_frame_rates (); /* Work out what rates we could manage, including those achieved by using skip / repeat */ list candidates; @@ -378,7 +378,7 @@ Playlist::best_video_frame_rate () const /* Pick the best one */ float error = std::numeric_limits::max (); optional best; - list::iterator i = candidates.begin(); + auto i = candidates.begin(); while (i != candidates.end()) { float this_error = 0; @@ -428,12 +428,12 @@ Playlist::length (shared_ptr film) const optional Playlist::start () const { - ContentList cont = content (); + auto cont = content (); if (cont.empty()) { - return optional (); + return {}; } - DCPTime start = DCPTime::max (); + auto start = DCPTime::max (); for (auto i: cont) { start = min (start, i->position ()); } @@ -558,7 +558,7 @@ Playlist::repeat (shared_ptr film, ContentList c, int n) range.second = max (range.second, i->end(film)); } - Change (CHANGE_TYPE_PENDING); + Change (ChangeType::PENDING); { boost::mutex::scoped_lock lm (_mutex); @@ -566,7 +566,7 @@ Playlist::repeat (shared_ptr film, ContentList c, int n) DCPTime pos = range.second; for (int i = 0; i < n; ++i) { for (auto j: c) { - shared_ptr copy = j->clone (); + auto copy = j->clone (); copy->set_position (film, pos + copy->position() - range.first); _content.push_back (copy); } @@ -577,15 +577,15 @@ Playlist::repeat (shared_ptr film, ContentList c, int n) reconnect (film); } - Change (CHANGE_TYPE_DONE); + Change (ChangeType::DONE); } void Playlist::move_earlier (shared_ptr film, shared_ptr c) { - ContentList cont = content (); - ContentList::iterator previous = cont.end(); - ContentList::iterator i = cont.begin(); + auto cont = content (); + auto previous = cont.end(); + auto i = cont.begin(); while (i != cont.end() && *i != c) { previous = i; ++i; @@ -596,9 +596,9 @@ Playlist::move_earlier (shared_ptr film, shared_ptr c) return; } - shared_ptr previous_c = *previous; + auto previous_c = *previous; - DCPTime const p = previous_c->position (); + auto const p = previous_c->position (); previous_c->set_position (film, p + c->length_after_trim(film)); c->set_position (film, p); } @@ -606,8 +606,8 @@ Playlist::move_earlier (shared_ptr film, shared_ptr c) void Playlist::move_later (shared_ptr film, shared_ptr c) { - ContentList cont = content (); - ContentList::iterator i = cont.begin(); + auto cont = content (); + auto i = cont.begin(); while (i != cont.end() && *i != c) { ++i; } @@ -621,7 +621,7 @@ Playlist::move_later (shared_ptr film, shared_ptr c) return; } - shared_ptr next_c = *next; + auto next_c = *next; next_c->set_position (film, c->position()); c->set_position (film, c->position() + next_c->length_after_trim(film)); @@ -634,7 +634,7 @@ Playlist::required_disk_space (shared_ptr film, int j2k_bandwidth, i int64_t audio = uint64_t (audio_channels * audio_frame_rate * 3) * length(film).seconds(); for (auto i: content()) { - shared_ptr d = dynamic_pointer_cast (i); + auto d = dynamic_pointer_cast (i); if (d) { if (d->reference_video()) { video -= uint64_t (j2k_bandwidth / 8) * d->length_after_trim(film).seconds(); @@ -656,7 +656,7 @@ Playlist::content_summary (shared_ptr film, DCPTimePeriod period) co int best_score = -1; for (auto i: content()) { int score = 0; - optional const o = DCPTimePeriod(i->position(), i->end(film)).overlap (period); + auto const o = DCPTimePeriod(i->position(), i->end(film)).overlap (period); if (o) { score += 100 * o.get().duration().get() / period.duration().get(); } diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc index 1d2ec557f..4888a1567 100644 --- a/src/lib/reel_writer.cc +++ b/src/lib/reel_writer.cc @@ -80,7 +80,7 @@ static dcp::MXFMetadata mxf_metadata () { dcp::MXFMetadata meta; - Config* config = Config::instance(); + auto config = Config::instance(); if (!config->dcp_company_name().empty()) { meta.company_name = config->dcp_company_name (); } @@ -114,7 +114,7 @@ ReelWriter::ReelWriter ( output. We will hard-link it into the DCP later. */ - dcp::Standard const standard = film()->interop() ? dcp::Standard::INTEROP : dcp::Standard::SMPTE; + auto const standard = film()->interop() ? dcp::Standard::INTEROP : dcp::Standard::SMPTE; boost::filesystem::path const asset = film()->internal_video_asset_dir() / film()->internal_video_asset_filename(_period); @@ -159,15 +159,15 @@ ReelWriter::ReelWriter ( /* We already have a complete picture asset that we can just re-use */ /* XXX: what about if the encryption key changes? */ if (film()->three_d()) { - _picture_asset.reset (new dcp::StereoPictureAsset(asset)); + _picture_asset = make_shared(asset); } else { - _picture_asset.reset (new dcp::MonoPictureAsset(asset)); + _picture_asset = make_shared(asset); } } if (film()->audio_channels()) { - _sound_asset.reset ( - new dcp::SoundAsset (dcp::Fraction(film()->video_frame_rate(), 1), film()->audio_frame_rate(), film()->audio_channels(), film()->audio_language(), standard) + _sound_asset = make_shared ( + dcp::Fraction(film()->video_frame_rate(), 1), film()->audio_frame_rate(), film()->audio_channels(), film()->audio_language(), standard ); _sound_asset->set_metadata (mxf_metadata()); @@ -200,7 +200,7 @@ ReelWriter::ReelWriter ( void ReelWriter::write_frame_info (Frame frame, Eyes eyes, dcp::FrameInfo info) const { - shared_ptr handle = film()->info_file_handle(_period, false); + auto handle = film()->info_file_handle(_period, false); dcpomatic_fseek (handle->get(), frame_info_position(frame, eyes), SEEK_SET); checked_fwrite (&info.offset, sizeof(info.offset), handle->get(), handle->file()); checked_fwrite (&info.size, sizeof (info.size), handle->get(), handle->file()); @@ -227,11 +227,11 @@ long ReelWriter::frame_info_position (Frame frame, Eyes eyes) const { switch (eyes) { - case EYES_BOTH: + case Eyes::BOTH: return frame * _info_size; - case EYES_LEFT: + case Eyes::LEFT: return frame * _info_size * 2; - case EYES_RIGHT: + case Eyes::RIGHT: return frame * _info_size * 2 + _info_size; default: DCPOMATIC_ASSERT (false); @@ -243,14 +243,14 @@ ReelWriter::frame_info_position (Frame frame, Eyes eyes) const Frame ReelWriter::check_existing_picture_asset (boost::filesystem::path asset) { - shared_ptr job = _job.lock (); + auto job = _job.lock (); if (job) { job->sub (_("Checking existing image data")); } /* Try to open the existing asset */ - FILE* asset_file = fopen_boost (asset, "rb"); + auto asset_file = fopen_boost (asset, "rb"); if (!asset_file) { LOG_GENERAL ("Could not open existing asset at %1 (errno=%2)", asset.string(), errno); return 0; @@ -306,9 +306,9 @@ ReelWriter::write (shared_ptr encoded, Frame frame, Eyes eyes) return; } - dcp::FrameInfo fin = _picture_asset_writer->write (encoded->data(), encoded->size()); + auto fin = _picture_asset_writer->write (encoded->data(), encoded->size()); write_frame_info (frame, eyes, fin); - _last_written[eyes] = encoded; + _last_written[static_cast(eyes)] = encoded; } @@ -347,9 +347,9 @@ ReelWriter::repeat_write (Frame frame, Eyes eyes) return; } - dcp::FrameInfo fin = _picture_asset_writer->write ( - _last_written[eyes]->data(), - _last_written[eyes]->size() + auto fin = _picture_asset_writer->write ( + _last_written[static_cast(eyes)]->data(), + _last_written[static_cast(eyes)]->size() ); write_frame_info (frame, eyes, fin); } @@ -383,7 +383,7 @@ ReelWriter::finish (boost::filesystem::path output_dcp) boost::filesystem::create_hard_link (video_from, video_to, ec); if (ec) { LOG_WARNING_NC ("Hard-link failed; copying instead"); - shared_ptr job = _job.lock (); + auto job = _job.lock (); if (job) { job->sub (_("Copying video file into DCP")); try { @@ -407,7 +407,7 @@ ReelWriter::finish (boost::filesystem::path output_dcp) /* Move the audio asset into the DCP */ if (_sound_asset) { boost::filesystem::path audio_to = output_dcp; - string const aaf = audio_asset_filename (_sound_asset, _reel_index, _reel_count, _content_summary); + auto const aaf = audio_asset_filename (_sound_asset, _reel_index, _reel_count, _content_summary); audio_to /= aaf; boost::system::error_code ec; @@ -424,7 +424,7 @@ ReelWriter::finish (boost::filesystem::path output_dcp) if (_atmos_asset) { _atmos_asset_writer->finalize (); boost::filesystem::path atmos_to = output_dcp; - string const aaf = atmos_asset_filename (_atmos_asset, _reel_index, _reel_count, _content_summary); + auto const aaf = atmos_asset_filename (_atmos_asset, _reel_index, _reel_count, _content_summary); atmos_to /= aaf; boost::system::error_code ec; @@ -465,7 +465,7 @@ maybe_add_text ( } if (dynamic_pointer_cast (asset)) { - boost::filesystem::path directory = output_dcp / asset->id (); + auto directory = output_dcp / asset->id (); boost::filesystem::create_directories (directory); asset->write (directory / ("sub_" + asset->id() + ".xml")); } else { @@ -481,18 +481,16 @@ maybe_add_text ( ); } - reel_asset.reset ( - new T ( - asset, - dcp::Fraction (film->video_frame_rate(), 1), - picture_duration, - 0 - ) + reel_asset = make_shared ( + asset, + dcp::Fraction(film->video_frame_rate(), 1), + picture_duration, + 0 ); } else { /* We don't have a subtitle asset of our own; hopefully we have one to reference */ for (auto j: refs) { - shared_ptr k = dynamic_pointer_cast (j.asset); + auto k = dynamic_pointer_cast (j.asset); if (k && j.period == period) { reel_asset = k; /* If we have a hash for this asset in the CPL, assume that it is correct */ @@ -524,20 +522,20 @@ ReelWriter::create_reel_picture (shared_ptr reel, list mono = dynamic_pointer_cast (_picture_asset); + auto mono = dynamic_pointer_cast (_picture_asset); if (mono) { - reel_asset.reset (new dcp::ReelMonoPictureAsset (mono, 0)); + reel_asset = make_shared(mono, 0); } - shared_ptr stereo = dynamic_pointer_cast (_picture_asset); + auto stereo = dynamic_pointer_cast (_picture_asset); if (stereo) { - reel_asset.reset (new dcp::ReelStereoPictureAsset (stereo, 0)); + reel_asset = make_shared(stereo, 0); } } else { LOG_GENERAL ("no picture asset of our own; look through %1", refs.size()); /* We don't have a picture asset of our own; hopefully we have one to reference */ for (auto j: refs) { - shared_ptr k = dynamic_pointer_cast (j.asset); + auto k = dynamic_pointer_cast (j.asset); if (k) { LOG_GENERAL ("candidate picture asset period is %1-%2", j.period.from.get(), j.period.to.get()); } @@ -574,12 +572,12 @@ ReelWriter::create_reel_sound (shared_ptr reel, list(_sound_asset, 0); } else { LOG_GENERAL ("no sound asset of our own; look through %1", refs.size()); /* We don't have a sound asset of our own; hopefully we have one to reference */ for (auto j: refs) { - shared_ptr k = dynamic_pointer_cast (j.asset); + auto k = dynamic_pointer_cast (j.asset); if (k) { LOG_GENERAL ("candidate sound asset period is %1-%2", j.period.from.get(), j.period.to.get()); } @@ -593,7 +591,7 @@ ReelWriter::create_reel_sound (shared_ptr reel, listvideo_frame_rate()); + auto const period_duration = _period.duration().frames_round(film()->video_frame_rate()); DCPOMATIC_ASSERT (reel_asset); if (reel_asset->actual_duration() != period_duration) { @@ -625,7 +623,7 @@ ReelWriter::create_reel_text ( set ensure_closed_captions ) const { - shared_ptr subtitle = maybe_add_text ( + auto subtitle = maybe_add_text ( _subtitle_asset, duration, reel, refs, fonts, _default_font, film(), _period, output_dcp, _text_only ); @@ -637,7 +635,7 @@ ReelWriter::create_reel_text ( } else if (ensure_subtitles) { /* We had no subtitle asset, but we've been asked to make sure there is one */ subtitle = maybe_add_text( - empty_text_asset(TEXT_OPEN_SUBTITLE, optional()), + empty_text_asset(TextType::OPEN_SUBTITLE, optional()), duration, reel, refs, @@ -650,23 +648,23 @@ ReelWriter::create_reel_text ( ); } - for (map >::const_iterator i = _closed_caption_assets.begin(); i != _closed_caption_assets.end(); ++i) { - shared_ptr a = maybe_add_text ( - i->second, duration, reel, refs, fonts, _default_font, film(), _period, output_dcp, _text_only + for (auto const& i: _closed_caption_assets) { + auto a = maybe_add_text ( + i.second, duration, reel, refs, fonts, _default_font, film(), _period, output_dcp, _text_only ); DCPOMATIC_ASSERT (a); - a->set_annotation_text (i->first.name); - if (!i->first.language.empty()) { - a->set_language (dcp::LanguageTag(i->first.language)); + a->set_annotation_text (i.first.name); + if (!i.first.language.empty()) { + a->set_language (dcp::LanguageTag(i.first.language)); } - ensure_closed_captions.erase (i->first); + ensure_closed_captions.erase (i.first); } /* Make empty tracks for anything we've been asked to ensure but that we haven't added */ for (auto i: ensure_closed_captions) { - shared_ptr a = maybe_add_text ( - empty_text_asset(TEXT_CLOSED_CAPTION, i), duration, reel, refs, fonts, _default_font, film(), _period, output_dcp, _text_only + auto a = maybe_add_text ( + empty_text_asset(TextType::CLOSED_CAPTION, i), duration, reel, refs, fonts, _default_font, film(), _period, output_dcp, _text_only ); DCPOMATIC_ASSERT (a); a->set_annotation_text (i.name); @@ -681,22 +679,22 @@ ReelWriter::create_reel_text ( void ReelWriter::create_reel_markers (shared_ptr reel) const { - Film::Markers markers = film()->markers(); + auto markers = film()->markers(); film()->add_ffoc_lfoc(markers); Film::Markers reel_markers; - for (Film::Markers::const_iterator i = markers.begin(); i != markers.end(); ++i) { - if (_period.contains(i->second)) { - reel_markers[i->first] = i->second; + for (auto const& i: markers) { + if (_period.contains(i.second)) { + reel_markers[i.first] = i.second; } } if (!reel_markers.empty ()) { auto ma = make_shared(dcp::Fraction(film()->video_frame_rate(), 1), reel->duration(), 0); - for (map::const_iterator i = reel_markers.begin(); i != reel_markers.end(); ++i) { + for (auto const& i: reel_markers) { int h, m, s, f; - DCPTime relative = i->second - _period.from; + DCPTime relative = i.second - _period.from; relative.split (film()->video_frame_rate(), h, m, s, f); - ma->set (i->first, dcp::Time(h, m, s, f, film()->video_frame_rate())); + ma->set (i.first, dcp::Time(h, m, s, f, film()->video_frame_rate())); } reel->add (ma); } @@ -717,7 +715,7 @@ ReelWriter::create_reel ( { LOG_GENERAL ("create_reel for %1-%2; %3 of %4", _period.from.get(), _period.to.get(), _reel_index, _reel_count); - shared_ptr reel (new dcp::Reel()); + auto reel = make_shared(); /* This is a bit of a hack; in the strange `_text_only' mode we have no picture, so we don't know * how long the subtitle / CCAP assets should be. However, since we're only writing them to see @@ -725,7 +723,7 @@ ReelWriter::create_reel ( */ int64_t duration = 0; if (!_text_only) { - shared_ptr reel_picture_asset = create_reel_picture (reel, refs); + auto reel_picture_asset = create_reel_picture (reel, refs); duration = reel_picture_asset->actual_duration (); create_reel_sound (reel, refs); create_reel_markers (reel); @@ -734,7 +732,7 @@ ReelWriter::create_reel ( create_reel_text (reel, refs, fonts, duration, output_dcp, ensure_subtitles, ensure_closed_captions); if (_atmos_asset) { - reel->add (shared_ptr(new dcp::ReelAtmosAsset(_atmos_asset, 0))); + reel->add (make_shared(_atmos_asset, 0)); } return reel; @@ -780,11 +778,11 @@ ReelWriter::empty_text_asset (TextType type, optional track) const { shared_ptr asset; - vector lang = film()->subtitle_languages(); + auto lang = film()->subtitle_languages(); if (film()->interop()) { - shared_ptr s (new dcp::InteropSubtitleAsset ()); + auto s = make_shared(); s->set_movie_title (film()->name()); - if (type == TEXT_OPEN_SUBTITLE) { + if (type == TextType::OPEN_SUBTITLE) { s->set_language (lang.empty() ? "Unknown" : lang.front().to_string()); } else if (!track->language.empty()) { s->set_language (track->language); @@ -795,7 +793,7 @@ ReelWriter::empty_text_asset (TextType type, optional track) const shared_ptr s (new dcp::SMPTESubtitleAsset ()); s->set_content_title_text (film()->name()); s->set_metadata (mxf_metadata()); - if (type == TEXT_OPEN_SUBTITLE && !lang.empty()) { + if (type == TextType::OPEN_SUBTITLE && !lang.empty()) { s->set_language (lang.front()); } else if (track && !track->language.empty()) { s->set_language (dcp::LanguageTag(track->language)); @@ -820,10 +818,10 @@ ReelWriter::write (PlayerText subs, TextType type, optional track, shared_ptr asset; switch (type) { - case TEXT_OPEN_SUBTITLE: + case TextType::OPEN_SUBTITLE: asset = _subtitle_asset; break; - case TEXT_CLOSED_CAPTION: + case TextType::CLOSED_CAPTION: DCPOMATIC_ASSERT (track); asset = _closed_caption_assets[*track]; break; @@ -836,10 +834,10 @@ ReelWriter::write (PlayerText subs, TextType type, optional track, } switch (type) { - case TEXT_OPEN_SUBTITLE: + case TextType::OPEN_SUBTITLE: _subtitle_asset = asset; break; - case TEXT_CLOSED_CAPTION: + case TextType::CLOSED_CAPTION: DCPOMATIC_ASSERT (track); _closed_caption_assets[*track] = asset; break; @@ -856,14 +854,12 @@ ReelWriter::write (PlayerText subs, TextType type, optional track, for (auto i: subs.bitmap) { asset->add ( - shared_ptr( - new dcp::SubtitleImage( - i.image->as_png(), - dcp::Time(period.from.seconds() - _period.from.seconds(), film()->video_frame_rate()), - dcp::Time(period.to.seconds() - _period.from.seconds(), film()->video_frame_rate()), - i.rectangle.x, dcp::HAlign::LEFT, i.rectangle.y, dcp::VAlign::TOP, - dcp::Time(), dcp::Time() - ) + make_shared( + i.image->as_png(), + dcp::Time(period.from.seconds() - _period.from.seconds(), film()->video_frame_rate()), + dcp::Time(period.to.seconds() - _period.from.seconds(), film()->video_frame_rate()), + i.rectangle.x, dcp::HAlign::LEFT, i.rectangle.y, dcp::VAlign::TOP, + dcp::Time(), dcp::Time() ) ); } @@ -877,7 +873,7 @@ ReelWriter::existing_picture_frame_ok (FILE* asset_file, shared_ptrthree_d() ? EYES_LEFT : EYES_BOTH); + auto const info = read_frame_info (info_file, frame, film()->three_d() ? Eyes::LEFT : Eyes::BOTH); bool ok = true; diff --git a/src/lib/reel_writer.h b/src/lib/reel_writer.h index 019917abc..5eb0e1b08 100644 --- a/src/lib/reel_writer.h +++ b/src/lib/reel_writer.h @@ -122,7 +122,7 @@ private: /** the first picture frame index that does not already exist in our MXF */ int _first_nonexistant_frame; /** the data of the last written frame, if there is one */ - std::shared_ptr _last_written[EYES_COUNT]; + std::shared_ptr _last_written[static_cast(Eyes::COUNT)]; /** index of this reel within the DCP (starting from 0) */ int _reel_index; /** number of reels in the DCP */ diff --git a/src/lib/send_problem_report_job.cc b/src/lib/send_problem_report_job.cc index cff1c8e9f..7f60a3fdc 100644 --- a/src/lib/send_problem_report_job.cc +++ b/src/lib/send_problem_report_job.cc @@ -80,7 +80,7 @@ SendProblemReportJob::run () string body = _summary + "\n\n"; - body += "Version: " + string (dcpomatic_version) + " " + string (dcpomatic_git_commit) + "\n\n"; + body += "Version: " + string(dcpomatic_version) + " " + string(dcpomatic_git_commit) + "\n\n"; for (auto i: environment_info ()) { body += i + "\n"; @@ -101,11 +101,8 @@ SendProblemReportJob::run () body += "---<8----\n"; } - list to; - to.push_back ("carl@dcpomatic.com"); - - Emailer emailer (_from, to, "DCP-o-matic problem report", body); - emailer.send ("main.carlh.net", 2525, EMAIL_PROTOCOL_STARTTLS); + Emailer emailer (_from, {"carl@dcpomatic.com"}, "DCP-o-matic problem report", body); + emailer.send ("main.carlh.net", 2525, EmailProtocol::STARTTLS); set_progress (1); set_state (FINISHED_OK); diff --git a/src/lib/shuffler.cc b/src/lib/shuffler.cc index 2b3c5ba84..a13e7f6de 100644 --- a/src/lib/shuffler.cc +++ b/src/lib/shuffler.cc @@ -48,7 +48,7 @@ Shuffler::video (weak_ptr weak_piece, ContentVideo video) { LOG_DEBUG_THREE_D ("Shuffler::video frame=%1 eyes=%2 part=%3", video.frame, static_cast(video.eyes), static_cast(video.part)); - if (video.eyes != EYES_LEFT && video.eyes != EYES_RIGHT) { + if (video.eyes != Eyes::LEFT && video.eyes != Eyes::RIGHT) { /* Pass through anything that we don't care about */ Video (weak_piece, video); return; @@ -57,7 +57,7 @@ Shuffler::video (weak_ptr weak_piece, ContentVideo video) shared_ptr piece = weak_piece.lock (); DCPOMATIC_ASSERT (piece); - if (!_last && video.eyes == EYES_LEFT) { + if (!_last && video.eyes == Eyes::LEFT) { LOG_DEBUG_THREE_D_NC ("Shuffler first after clear"); /* We haven't seen anything since the last clear() and we have some eyes-left so assume everything is OK */ Video (weak_piece, video); @@ -74,8 +74,8 @@ Shuffler::video (weak_ptr weak_piece, ContentVideo video) !_store.empty() && _last && ( - (_store.front().second.frame == _last->frame && _store.front().second.eyes == EYES_RIGHT && _last->eyes == EYES_LEFT) || - (_store.front().second.frame >= (_last->frame + 1) && _store.front().second.eyes == EYES_LEFT && _last->eyes == EYES_RIGHT) + (_store.front().second.frame == _last->frame && _store.front().second.eyes == Eyes::RIGHT && _last->eyes == Eyes::LEFT) || + (_store.front().second.frame >= (_last->frame + 1) && _store.front().second.eyes == Eyes::LEFT && _last->eyes == Eyes::RIGHT) ); if (!store_front_in_sequence) { diff --git a/src/lib/string_text_file_content.cc b/src/lib/string_text_file_content.cc index 2bf416110..01e0fe60f 100644 --- a/src/lib/string_text_file_content.cc +++ b/src/lib/string_text_file_content.cc @@ -33,6 +33,7 @@ using std::string; using std::cout; using std::shared_ptr; +using std::make_shared; using boost::optional; using dcp::raw_convert; using namespace dcpomatic; @@ -40,7 +41,7 @@ using namespace dcpomatic; StringTextFileContent::StringTextFileContent (boost::filesystem::path path) : Content (path) { - text.push_back (shared_ptr (new TextContent (this, TEXT_OPEN_SUBTITLE, TEXT_UNKNOWN))); + text.push_back (shared_ptr (new TextContent (this, TextType::OPEN_SUBTITLE, TextType::UNKNOWN))); } StringTextFileContent::StringTextFileContent (cxml::ConstNodePtr node, int version) @@ -61,7 +62,7 @@ StringTextFileContent::examine (shared_ptr film, shared_ptr job boost::mutex::scoped_lock lm (_mutex); _length = s.length (); - only_text()->add_font (shared_ptr (new Font (TEXT_FONT_ID))); + only_text()->add_font (make_shared(TEXT_FONT_ID)); } string diff --git a/src/lib/subtitle_encoder.cc b/src/lib/subtitle_encoder.cc index cc42f1204..3721ee02b 100644 --- a/src/lib/subtitle_encoder.cc +++ b/src/lib/subtitle_encoder.cc @@ -31,11 +31,12 @@ #include "i18n.h" -using std::string; using std::make_pair; +using std::make_shared; using std::pair; -using std::vector; using std::shared_ptr; +using std::string; +using std::vector; using boost::optional; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; @@ -128,7 +129,7 @@ SubtitleEncoder::go () void SubtitleEncoder::text (PlayerText subs, TextType type, optional track, dcpomatic::DCPTimePeriod period) { - if (type != TEXT_OPEN_SUBTITLE) { + if (type != TextType::OPEN_SUBTITLE) { return; } @@ -136,7 +137,7 @@ SubtitleEncoder::text (PlayerText subs, TextType type, optional tr shared_ptr asset; vector lang = _film->subtitle_languages (); if (_film->interop ()) { - shared_ptr s (new dcp::InteropSubtitleAsset()); + auto s = make_shared(); s->set_movie_title (_film->name()); if (!lang.empty()) { s->set_language (lang.front().to_string()); @@ -144,7 +145,7 @@ SubtitleEncoder::text (PlayerText subs, TextType type, optional tr s->set_reel_number (raw_convert(_reel_index + 1)); _assets[_reel_index].first = s; } else { - shared_ptr s (new dcp::SMPTESubtitleAsset()); + auto s = make_shared(); s->set_content_title_text (_film->name()); if (!lang.empty()) { s->set_language (lang.front()); diff --git a/src/lib/text_content.cc b/src/lib/text_content.cc index 86fd85b68..79ac42f43 100644 --- a/src/lib/text_content.cc +++ b/src/lib/text_content.cc @@ -120,10 +120,10 @@ TextContent::TextContent (Content* parent, cxml::ConstNodePtr node, int version) , _y_offset (0) , _x_scale (1) , _y_scale (1) - , _line_spacing (node->optional_number_child("LineSpacing").get_value_or (1)) - , _outline_width (node->optional_number_child("OutlineWidth").get_value_or (4)) - , _type (TEXT_OPEN_SUBTITLE) - , _original_type (TEXT_OPEN_SUBTITLE) + , _line_spacing (node->optional_number_child("LineSpacing").get_value_or(1)) + , _outline_width (node->optional_number_child("OutlineWidth").get_value_or(4)) + , _type (TextType::OPEN_SUBTITLE) + , _original_type (TextType::OPEN_SUBTITLE) { if (version >= 37) { _use = node->bool_child ("Use"); diff --git a/src/lib/types.cc b/src/lib/types.cc index 840ee3aa8..3586cdb93 100644 --- a/src/lib/types.cc +++ b/src/lib/types.cc @@ -59,9 +59,9 @@ string resolution_to_string (Resolution r) { switch (r) { - case RESOLUTION_2K: + case Resolution::TWO_K: return "2K"; - case RESOLUTION_4K: + case Resolution::FOUR_K: return "4K"; } @@ -74,15 +74,15 @@ Resolution string_to_resolution (string s) { if (s == "2K") { - return RESOLUTION_2K; + return Resolution::TWO_K; } if (s == "4K") { - return RESOLUTION_4K; + return Resolution::FOUR_K; } DCPOMATIC_ASSERT (false); - return RESOLUTION_2K; + return Resolution::TWO_K; } Crop::Crop (shared_ptr node) @@ -106,11 +106,11 @@ TextType string_to_text_type (string s) { if (s == "unknown") { - return TEXT_UNKNOWN; + return TextType::UNKNOWN; } else if (s == "open-subtitle") { - return TEXT_OPEN_SUBTITLE; + return TextType::OPEN_SUBTITLE; } else if (s == "closed-caption") { - return TEXT_CLOSED_CAPTION; + return TextType::CLOSED_CAPTION; } else { throw MetadataError (String::compose ("Unknown text type %1", s)); } @@ -120,11 +120,11 @@ string text_type_to_string (TextType t) { switch (t) { - case TEXT_UNKNOWN: + case TextType::UNKNOWN: return "unknown"; - case TEXT_OPEN_SUBTITLE: + case TextType::OPEN_SUBTITLE: return "open-subtitle"; - case TEXT_CLOSED_CAPTION: + case TextType::CLOSED_CAPTION: return "closed-caption"; default: DCPOMATIC_ASSERT (false); @@ -135,11 +135,11 @@ string text_type_to_name (TextType t) { switch (t) { - case TEXT_UNKNOWN: + case TextType::UNKNOWN: return _("Timed text"); - case TEXT_OPEN_SUBTITLE: + case TextType::OPEN_SUBTITLE: return _("Open subtitles"); - case TEXT_CLOSED_CAPTION: + case TextType::CLOSED_CAPTION: return _("Closed captions"); default: DCPOMATIC_ASSERT (false); @@ -150,19 +150,19 @@ string video_frame_type_to_string (VideoFrameType t) { switch (t) { - case VIDEO_FRAME_TYPE_2D: + case VideoFrameType::TWO_D: return "2d"; - case VIDEO_FRAME_TYPE_3D: + case VideoFrameType::THREE_D: return "3d"; - case VIDEO_FRAME_TYPE_3D_LEFT_RIGHT: + case VideoFrameType::THREE_D_LEFT_RIGHT: return "3d-left-right"; - case VIDEO_FRAME_TYPE_3D_TOP_BOTTOM: + case VideoFrameType::THREE_D_TOP_BOTTOM: return "3d-top-bottom"; - case VIDEO_FRAME_TYPE_3D_ALTERNATE: + case VideoFrameType::THREE_D_ALTERNATE: return "3d-alternate"; - case VIDEO_FRAME_TYPE_3D_LEFT: + case VideoFrameType::THREE_D_LEFT: return "3d-left"; - case VIDEO_FRAME_TYPE_3D_RIGHT: + case VideoFrameType::THREE_D_RIGHT: return "3d-right"; default: DCPOMATIC_ASSERT (false); @@ -175,19 +175,19 @@ VideoFrameType string_to_video_frame_type (string s) { if (s == "2d") { - return VIDEO_FRAME_TYPE_2D; + return VideoFrameType::TWO_D; } else if (s == "3d") { - return VIDEO_FRAME_TYPE_3D; + return VideoFrameType::THREE_D; } else if (s == "3d-left-right") { - return VIDEO_FRAME_TYPE_3D_LEFT_RIGHT; + return VideoFrameType::THREE_D_LEFT_RIGHT; } else if (s == "3d-top-bottom") { - return VIDEO_FRAME_TYPE_3D_TOP_BOTTOM; + return VideoFrameType::THREE_D_TOP_BOTTOM; } else if (s == "3d-alternate") { - return VIDEO_FRAME_TYPE_3D_ALTERNATE; + return VideoFrameType::THREE_D_ALTERNATE; } else if (s == "3d-left") { - return VIDEO_FRAME_TYPE_3D_LEFT; + return VideoFrameType::THREE_D_LEFT; } else if (s == "3d-right") { - return VIDEO_FRAME_TYPE_3D_RIGHT; + return VideoFrameType::THREE_D_RIGHT; } DCPOMATIC_ASSERT (false); diff --git a/src/lib/types.h b/src/lib/types.h index 4569cfd9a..3cd8768e8 100644 --- a/src/lib/types.h +++ b/src/lib/types.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2013-2016 Carl Hetherington + Copyright (C) 2013-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -85,57 +85,57 @@ namespace xmlpp { /** Port on which player listens for play requests */ #define PLAYER_PLAY_PORT (Config::instance()->server_port_base()+5) -typedef std::vector > ContentList; -typedef std::vector > FFmpegContentList; +typedef std::vector> ContentList; +typedef std::vector> FFmpegContentList; typedef int64_t Frame; -enum VideoFrameType +enum class VideoFrameType { - VIDEO_FRAME_TYPE_2D, + TWO_D, /** `True' 3D content, e.g. 3D DCPs */ - VIDEO_FRAME_TYPE_3D, - VIDEO_FRAME_TYPE_3D_LEFT_RIGHT, - VIDEO_FRAME_TYPE_3D_TOP_BOTTOM, - VIDEO_FRAME_TYPE_3D_ALTERNATE, + THREE_D, + THREE_D_LEFT_RIGHT, + THREE_D_TOP_BOTTOM, + THREE_D_ALTERNATE, /** This content is all the left frames of some 3D */ - VIDEO_FRAME_TYPE_3D_LEFT, + THREE_D_LEFT, /** This content is all the right frames of some 3D */ - VIDEO_FRAME_TYPE_3D_RIGHT + THREE_D_RIGHT }; std::string video_frame_type_to_string (VideoFrameType); VideoFrameType string_to_video_frame_type (std::string); -enum Eyes +enum class Eyes { - EYES_BOTH, - EYES_LEFT, - EYES_RIGHT, - EYES_COUNT + BOTH, + LEFT, + RIGHT, + COUNT }; -enum Part +enum class Part { - PART_LEFT_HALF, - PART_RIGHT_HALF, - PART_TOP_HALF, - PART_BOTTOM_HALF, - PART_WHOLE + LEFT_HALF, + RIGHT_HALF, + TOP_HALF, + BOTTOM_HALF, + WHOLE }; -enum ReelType +enum class ReelType { - REELTYPE_SINGLE, - REELTYPE_BY_VIDEO_CONTENT, - REELTYPE_BY_LENGTH + SINGLE, + BY_VIDEO_CONTENT, + BY_LENGTH }; -enum ChangeType +enum class ChangeType { - CHANGE_TYPE_PENDING, - CHANGE_TYPE_DONE, - CHANGE_TYPE_CANCELLED + PENDING, + DONE, + CANCELLED }; @@ -162,24 +162,24 @@ extern VideoRange string_to_video_range (std::string s); * There is some use of the word `subtitle' in the code which may mean * caption in some contexts. */ -enum TextType +enum class TextType { - TEXT_UNKNOWN, - TEXT_OPEN_SUBTITLE, - TEXT_CLOSED_CAPTION, - TEXT_COUNT + UNKNOWN, + OPEN_SUBTITLE, + CLOSED_CAPTION, + COUNT }; extern std::string text_type_to_string (TextType t); extern std::string text_type_to_name (TextType t); extern TextType string_to_text_type (std::string s); -enum ExportFormat +enum class ExportFormat { - EXPORT_FORMAT_PRORES, - EXPORT_FORMAT_H264_AAC, - EXPORT_FORMAT_H264_PCM, - EXPORT_FORMAT_SUBTITLES_DCP + PRORES, + H264_AAC, + H264_PCM, + SUBTITLES_DCP }; /** @struct Crop @@ -243,24 +243,24 @@ struct CPLSummary time_t last_write_time; }; -enum Resolution { - RESOLUTION_2K, - RESOLUTION_4K +enum class Resolution { + TWO_K, + FOUR_K }; std::string resolution_to_string (Resolution); Resolution string_to_resolution (std::string); -enum FileTransferProtocol { - FILE_TRANSFER_PROTOCOL_SCP, - FILE_TRANSFER_PROTOCOL_FTP +enum class FileTransferProtocol { + SCP, + FTP }; -enum EmailProtocol { - EMAIL_PROTOCOL_AUTO, - EMAIL_PROTOCOL_PLAIN, - EMAIL_PROTOCOL_STARTTLS, - EMAIL_PROTOCOL_SSL +enum class EmailProtocol { + AUTO, + PLAIN, + STARTTLS, + SSL }; diff --git a/src/lib/upload_job.cc b/src/lib/upload_job.cc index 67a046251..ec474abdf 100644 --- a/src/lib/upload_job.cc +++ b/src/lib/upload_job.cc @@ -72,16 +72,16 @@ UploadJob::run () LOG_GENERAL_NC (N_("Upload job starting")); scoped_ptr uploader; - switch (Config::instance()->tms_protocol ()) { - case FILE_TRANSFER_PROTOCOL_SCP: - uploader.reset (new SCPUploader (bind (&UploadJob::set_status, this, _1), bind (&UploadJob::set_progress, this, _1, false))); + switch (Config::instance()->tms_protocol()) { + case FileTransferProtocol::SCP: + uploader.reset (new SCPUploader(bind (&UploadJob::set_status, this, _1), bind(&UploadJob::set_progress, this, _1, false))); break; - case FILE_TRANSFER_PROTOCOL_FTP: - uploader.reset (new CurlUploader (bind (&UploadJob::set_status, this, _1), bind (&UploadJob::set_progress, this, _1, false))); + case FileTransferProtocol::FTP: + uploader.reset (new CurlUploader(bind (&UploadJob::set_status, this, _1), bind(&UploadJob::set_progress, this, _1, false))); break; } - uploader->upload (_film->dir (_film->dcp_name ())); + uploader->upload (_film->dir(_film->dcp_name())); set_progress (1); set_status (N_("")); diff --git a/src/lib/util.cc b/src/lib/util.cc index 67b6599ea..2a14f00c7 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -870,11 +870,11 @@ remap (shared_ptr input, int output_channels, AudioMapping m Eyes increment_eyes (Eyes e) { - if (e == EYES_LEFT) { - return EYES_RIGHT; + if (e == Eyes::LEFT) { + return Eyes::RIGHT; } - return EYES_LEFT; + return Eyes::LEFT; } void diff --git a/src/lib/video_content.cc b/src/lib/video_content.cc index f5e513912..216ad6784 100644 --- a/src/lib/video_content.cc +++ b/src/lib/video_content.cc @@ -62,6 +62,7 @@ using std::setprecision; using std::list; using std::pair; using std::shared_ptr; +using std::make_shared; using boost::optional; using std::dynamic_pointer_cast; using dcp::raw_convert; @@ -71,7 +72,7 @@ VideoContent::VideoContent (Content* parent) : ContentPart (parent) , _use (true) , _length (0) - , _frame_type (VIDEO_FRAME_TYPE_2D) + , _frame_type (VideoFrameType::TWO_D) , _yuv (true) , _fade_in (0) , _fade_out (0) @@ -84,10 +85,10 @@ shared_ptr VideoContent::from_xml (Content* parent, cxml::ConstNodePtr node, int version) { if (!node->optional_number_child ("VideoWidth")) { - return shared_ptr (); + return {}; } - return shared_ptr (new VideoContent (parent, node, version)); + return make_shared(parent, node, version); } VideoContent::VideoContent (Content* parent, cxml::ConstNodePtr node, int version) @@ -109,22 +110,22 @@ VideoContent::VideoContent (Content* parent, cxml::ConstNodePtr node, int versio /* Snapshot of the VideoFrameType enum at version 34 */ switch (node->number_child ("VideoFrameType")) { case 0: - _frame_type = VIDEO_FRAME_TYPE_2D; + _frame_type = VideoFrameType::TWO_D; break; case 1: - _frame_type = VIDEO_FRAME_TYPE_3D_LEFT_RIGHT; + _frame_type = VideoFrameType::THREE_D_LEFT_RIGHT; break; case 2: - _frame_type = VIDEO_FRAME_TYPE_3D_TOP_BOTTOM; + _frame_type = VideoFrameType::THREE_D_TOP_BOTTOM; break; case 3: - _frame_type = VIDEO_FRAME_TYPE_3D_ALTERNATE; + _frame_type = VideoFrameType::THREE_D_ALTERNATE; break; case 4: - _frame_type = VIDEO_FRAME_TYPE_3D_LEFT; + _frame_type = VideoFrameType::THREE_D_LEFT; break; case 5: - _frame_type = VIDEO_FRAME_TYPE_3D_RIGHT; + _frame_type = VideoFrameType::THREE_D_RIGHT; break; } } else { @@ -138,7 +139,7 @@ VideoContent::VideoContent (Content* parent, cxml::ConstNodePtr node, int versio _crop.bottom = node->number_child ("BottomCrop"); if (version <= 7) { - optional r = node->optional_string_child ("Ratio"); + auto r = node->optional_string_child ("Ratio"); if (r) { _legacy_ratio = Ratio::from_id(r.get())->ratio(); } @@ -355,15 +356,15 @@ VideoContent::size_after_3d_split () const { auto const s = size (); switch (frame_type ()) { - case VIDEO_FRAME_TYPE_2D: - case VIDEO_FRAME_TYPE_3D: - case VIDEO_FRAME_TYPE_3D_ALTERNATE: - case VIDEO_FRAME_TYPE_3D_LEFT: - case VIDEO_FRAME_TYPE_3D_RIGHT: + case VideoFrameType::TWO_D: + case VideoFrameType::THREE_D: + case VideoFrameType::THREE_D_ALTERNATE: + case VideoFrameType::THREE_D_LEFT: + case VideoFrameType::THREE_D_RIGHT: return s; - case VIDEO_FRAME_TYPE_3D_LEFT_RIGHT: + case VideoFrameType::THREE_D_LEFT_RIGHT: return dcp::Size (s.width / 2, s.height); - case VIDEO_FRAME_TYPE_3D_TOP_BOTTOM: + case VideoFrameType::THREE_D_TOP_BOTTOM: return dcp::Size (s.width, s.height / 2); } diff --git a/src/lib/video_content.h b/src/lib/video_content.h index e5bbb5bab..22a6090e7 100644 --- a/src/lib/video_content.h +++ b/src/lib/video_content.h @@ -53,6 +53,7 @@ class VideoContent : public ContentPart, public std::enable_shared_from_this >); void as_xml (xmlpp::Node *) const; @@ -67,7 +68,7 @@ public: Frame length_after_3d_combine () const { boost::mutex::scoped_lock lm (_mutex); - if (_frame_type == VIDEO_FRAME_TYPE_3D_ALTERNATE) { + if (_frame_type == VideoFrameType::THREE_D_ALTERNATE) { return _length / 2; } @@ -205,7 +206,6 @@ private: friend struct scaled_size_test2; friend struct scaled_size_legacy_test; - VideoContent (Content* parent, cxml::ConstNodePtr, int); void setup_default_colour_conversion (); bool _use; diff --git a/src/lib/video_decoder.cc b/src/lib/video_decoder.cc index cab8197cb..4b46b111f 100644 --- a/src/lib/video_decoder.cc +++ b/src/lib/video_decoder.cc @@ -72,7 +72,7 @@ VideoDecoder::emit (shared_ptr film, shared_ptr im */ if (_frame_interval_checker) { _frame_interval_checker->feed (frame_time, afr); - if (_frame_interval_checker->guess() == FrameIntervalChecker::PROBABLY_NOT_3D && vft == VIDEO_FRAME_TYPE_3D) { + if (_frame_interval_checker->guess() == FrameIntervalChecker::PROBABLY_NOT_3D && vft == VideoFrameType::THREE_D) { boost::throw_exception ( DecodeError( String::compose( @@ -90,7 +90,7 @@ VideoDecoder::emit (shared_ptr film, shared_ptr im } Frame frame; - Eyes eyes = EYES_BOTH; + Eyes eyes = Eyes::BOTH; if (!_position) { /* This is the first data we have received since initialisation or seek. Set the position based on the frame that was given. After this first time @@ -101,21 +101,21 @@ VideoDecoder::emit (shared_ptr film, shared_ptr im If we drop the frame with the duplicated timestamp we obviously lose sync. */ _position = ContentTime::from_frames (decoder_frame, afr); - if (vft == VIDEO_FRAME_TYPE_3D_ALTERNATE) { + if (vft == VideoFrameType::THREE_D_ALTERNATE) { frame = decoder_frame / 2; - _last_emitted_eyes = EYES_RIGHT; + _last_emitted_eyes = Eyes::RIGHT; } else { frame = decoder_frame; } } else { - if (vft == VIDEO_FRAME_TYPE_3D || vft == VIDEO_FRAME_TYPE_3D_ALTERNATE) { + if (vft == VideoFrameType::THREE_D || vft == VideoFrameType::THREE_D_ALTERNATE) { DCPOMATIC_ASSERT (_last_emitted_eyes); - if (_last_emitted_eyes.get() == EYES_RIGHT) { + if (_last_emitted_eyes.get() == Eyes::RIGHT) { frame = _position->frames_round(afr) + 1; - eyes = EYES_LEFT; + eyes = Eyes::LEFT; } else { frame = _position->frames_round(afr); - eyes = EYES_RIGHT; + eyes = Eyes::RIGHT; } } else { frame = _position->frames_round(afr) + 1; @@ -123,35 +123,35 @@ VideoDecoder::emit (shared_ptr film, shared_ptr im } switch (vft) { - case VIDEO_FRAME_TYPE_2D: - Data (ContentVideo (image, frame, EYES_BOTH, PART_WHOLE)); + case VideoFrameType::TWO_D: + Data (ContentVideo (image, frame, Eyes::BOTH, Part::WHOLE)); break; - case VIDEO_FRAME_TYPE_3D: + case VideoFrameType::THREE_D: { - Data (ContentVideo (image, frame, eyes, PART_WHOLE)); + Data (ContentVideo (image, frame, eyes, Part::WHOLE)); _last_emitted_frame = frame; _last_emitted_eyes = eyes; break; } - case VIDEO_FRAME_TYPE_3D_ALTERNATE: + case VideoFrameType::THREE_D_ALTERNATE: { - Data (ContentVideo (image, frame, eyes, PART_WHOLE)); + Data (ContentVideo (image, frame, eyes, Part::WHOLE)); _last_emitted_eyes = eyes; break; } - case VIDEO_FRAME_TYPE_3D_LEFT_RIGHT: - Data (ContentVideo (image, frame, EYES_LEFT, PART_LEFT_HALF)); - Data (ContentVideo (image, frame, EYES_RIGHT, PART_RIGHT_HALF)); + case VideoFrameType::THREE_D_LEFT_RIGHT: + Data (ContentVideo (image, frame, Eyes::LEFT, Part::LEFT_HALF)); + Data (ContentVideo (image, frame, Eyes::RIGHT, Part::RIGHT_HALF)); break; - case VIDEO_FRAME_TYPE_3D_TOP_BOTTOM: - Data (ContentVideo (image, frame, EYES_LEFT, PART_TOP_HALF)); - Data (ContentVideo (image, frame, EYES_RIGHT, PART_BOTTOM_HALF)); + case VideoFrameType::THREE_D_TOP_BOTTOM: + Data (ContentVideo (image, frame, Eyes::LEFT, Part::TOP_HALF)); + Data (ContentVideo (image, frame, Eyes::RIGHT, Part::BOTTOM_HALF)); break; - case VIDEO_FRAME_TYPE_3D_LEFT: - Data (ContentVideo (image, frame, EYES_LEFT, PART_WHOLE)); + case VideoFrameType::THREE_D_LEFT: + Data (ContentVideo (image, frame, Eyes::LEFT, Part::WHOLE)); break; - case VIDEO_FRAME_TYPE_3D_RIGHT: - Data (ContentVideo (image, frame, EYES_RIGHT, PART_WHOLE)); + case VideoFrameType::THREE_D_RIGHT: + Data (ContentVideo (image, frame, Eyes::RIGHT, Part::WHOLE)); break; default: DCPOMATIC_ASSERT (false); diff --git a/src/lib/writer.cc b/src/lib/writer.cc index 6518caea9..e47fa973b 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -165,12 +165,12 @@ Writer::write (shared_ptr encoded, Frame frame, Eyes eyes) qi.reel = video_reel (frame); qi.frame = frame - _reels[qi.reel].start (); - if (film()->three_d() && eyes == EYES_BOTH) { + if (film()->three_d() && eyes == Eyes::BOTH) { /* 2D material in a 3D DCP; fake the 3D */ - qi.eyes = EYES_LEFT; + qi.eyes = Eyes::LEFT; _queue.push_back (qi); ++_queued_full_in_memory; - qi.eyes = EYES_RIGHT; + qi.eyes = Eyes::RIGHT; _queue.push_back (qi); ++_queued_full_in_memory; } else { @@ -210,10 +210,10 @@ Writer::repeat (Frame frame, Eyes eyes) qi.type = QueueItem::REPEAT; qi.reel = video_reel (frame); qi.frame = frame - _reels[qi.reel].start (); - if (film()->three_d() && eyes == EYES_BOTH) { - qi.eyes = EYES_LEFT; + if (film()->three_d() && eyes == Eyes::BOTH) { + qi.eyes = Eyes::LEFT; _queue.push_back (qi); - qi.eyes = EYES_RIGHT; + qi.eyes = Eyes::RIGHT; _queue.push_back (qi); } else { qi.eyes = eyes; @@ -250,10 +250,10 @@ Writer::fake_write (Frame frame, Eyes eyes) qi.reel = reel; qi.frame = frame_in_reel; - if (film()->three_d() && eyes == EYES_BOTH) { - qi.eyes = EYES_LEFT; + if (film()->three_d() && eyes == Eyes::BOTH) { + qi.eyes = Eyes::LEFT; _queue.push_back (qi); - qi.eyes = EYES_RIGHT; + qi.eyes = Eyes::RIGHT; _queue.push_back (qi); } else { qi.eyes = eyes; @@ -355,18 +355,18 @@ Writer::have_sequenced_image_at_queue_head () bool Writer::LastWritten::next (QueueItem qi) const { - if (qi.eyes == EYES_BOTH) { + if (qi.eyes == Eyes::BOTH) { /* 2D */ return qi.frame == (_frame + 1); } /* 3D */ - if (_eyes == EYES_LEFT && qi.frame == _frame && qi.eyes == EYES_RIGHT) { + if (_eyes == Eyes::LEFT && qi.frame == _frame && qi.eyes == Eyes::RIGHT) { return true; } - if (_eyes == EYES_RIGHT && qi.frame == (_frame + 1) && qi.eyes == EYES_LEFT) { + if (_eyes == Eyes::RIGHT && qi.frame == (_frame + 1) && qi.eyes == Eyes::LEFT) { return true; } @@ -760,18 +760,18 @@ Writer::can_fake_write (Frame frame) const return (frame != 0 && frame < reel.first_nonexistant_frame()); } -/** @param track Closed caption track if type == TEXT_CLOSED_CAPTION */ +/** @param track Closed caption track if type == TextType::CLOSED_CAPTION */ void Writer::write (PlayerText text, TextType type, optional track, DCPTimePeriod period) { - vector::iterator* reel = 0; + vector::iterator* reel = nullptr; switch (type) { - case TEXT_OPEN_SUBTITLE: + case TextType::OPEN_SUBTITLE: reel = &_subtitle_reel; _have_subtitles = true; break; - case TEXT_CLOSED_CAPTION: + case TextType::CLOSED_CAPTION: DCPOMATIC_ASSERT (track); DCPOMATIC_ASSERT (_caption_reels.find(*track) != _caption_reels.end()); reel = &_caption_reels[*track]; @@ -846,7 +846,7 @@ Writer::write (ReferencedReelAsset asset) size_t Writer::video_reel (int frame) const { - DCPTime t = DCPTime::from_frames (frame, film()->video_frame_rate()); + auto t = DCPTime::from_frames (frame, film()->video_frame_rate()); size_t i = 0; while (i < _reels.size() && !_reels[i].period().contains (t)) { ++i; @@ -863,8 +863,8 @@ Writer::set_digest_progress (Job* job, float progress) _digest_progresses[boost::this_thread::get_id()] = progress; float min_progress = FLT_MAX; - for (map::const_iterator i = _digest_progresses.begin(); i != _digest_progresses.end(); ++i) { - min_progress = min (min_progress, i->second); + for (auto const& i: _digest_progresses) { + min_progress = min (min_progress, i.second); } job->set_progress (min_progress); diff --git a/src/lib/writer.h b/src/lib/writer.h index c8a007f78..e7409de31 100644 --- a/src/lib/writer.h +++ b/src/lib/writer.h @@ -54,7 +54,7 @@ public: : size (0) , reel (0) , frame (0) - , eyes (EYES_BOTH) + , eyes (Eyes::BOTH) {} enum Type { @@ -158,7 +158,7 @@ private: public: LastWritten() : _frame(-1) - , _eyes(EYES_RIGHT) + , _eyes(Eyes::RIGHT) {} /** @return true if qi is the next item after this one */ diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index 78466d25b..a670af7db 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -512,7 +512,7 @@ private: void film_change (ChangeType type) { - if (type == CHANGE_TYPE_DONE) { + if (type == ChangeType::DONE) { set_menu_sensitivity (); } } @@ -1118,7 +1118,7 @@ private: } list to = { "carl@dcpomatic.com" }; Emailer emailer (d->email(), to, "DCP-o-matic translations", body); - emailer.send ("main.carlh.net", 2525, EMAIL_PROTOCOL_STARTTLS); + emailer.send ("main.carlh.net", 2525, EmailProtocol::STARTTLS); } d->Destroy (); diff --git a/src/tools/dcpomatic_cli.cc b/src/tools/dcpomatic_cli.cc index 46ae790cc..d1b8f4ef3 100644 --- a/src/tools/dcpomatic_cli.cc +++ b/src/tools/dcpomatic_cli.cc @@ -76,7 +76,7 @@ static void print_dump (shared_ptr film) { cout << film->dcp_name (true) << "\n" - << film->container()->container_nickname() << " at " << ((film->resolution() == RESOLUTION_2K) ? "2K" : "4K") << "\n" + << film->container()->container_nickname() << " at " << ((film->resolution() == Resolution::TWO_K) ? "2K" : "4K") << "\n" << (film->j2k_bandwidth() / 1000000) << "Mbit/s" << "\n" << "Output " << film->video_frame_rate() << "fps " << (film->three_d() ? "3D" : "2D") << " " << (film->audio_frame_rate() / 1000) << "kHz\n" << (film->interop() ? "Inter-Op" : "SMPTE") << " " << (film->encrypted() ? "encrypted" : "unencrypted") << "\n"; diff --git a/src/tools/dcpomatic_create.cc b/src/tools/dcpomatic_create.cc index a2d5c8e5d..14eae6b3e 100644 --- a/src/tools/dcpomatic_create.cc +++ b/src/tools/dcpomatic_create.cc @@ -104,7 +104,7 @@ main (int argc, char* argv[]) film->set_encrypted (cc.encrypt); film->set_three_d (cc.threed); if (cc.fourk) { - film->set_resolution (RESOLUTION_4K); + film->set_resolution (Resolution::FOUR_K); } if (cc.j2k_bandwidth) { film->set_j2k_bandwidth (*cc.j2k_bandwidth); diff --git a/src/tools/dcpomatic_player.cc b/src/tools/dcpomatic_player.cc index c6c4c0878..539b58504 100644 --- a/src/tools/dcpomatic_player.cc +++ b/src/tools/dcpomatic_player.cc @@ -404,7 +404,7 @@ public: void film_changed (ChangeType type, Film::Property property) { - if (type != CHANGE_TYPE_DONE || property != Film::CONTENT) { + if (type != ChangeType::DONE || property != Film::CONTENT) { return; } @@ -416,14 +416,14 @@ public: _film->set_container (Ratio::from_id("185")); for (auto i: _film->content()) { - shared_ptr dcp = dynamic_pointer_cast(i); + auto dcp = dynamic_pointer_cast(i); for (auto j: i->text) { j->set_use (true); } if (i->video) { - Ratio const * r = Ratio::nearest_from_ratio(i->video->size().ratio()); + auto const r = Ratio::nearest_from_ratio(i->video->size().ratio()); if (r->id() == "239") { /* Any scope content means we use scope */ _film->set_container(r); @@ -431,7 +431,7 @@ public: } /* Any 3D content means we use 3D mode */ - if (i->video && i->video->frame_type() != VIDEO_FRAME_TYPE_2D) { + if (i->video && i->video->frame_type() != VideoFrameType::TWO_D) { _film->set_three_d (true); } } @@ -441,19 +441,19 @@ public: set_menu_sensitivity (); - wxMenuItemList old = _cpl_menu->GetMenuItems(); - for (wxMenuItemList::iterator i = old.begin(); i != old.end(); ++i) { - _cpl_menu->Remove (*i); + auto old = _cpl_menu->GetMenuItems(); + for (auto const& i: old) { + _cpl_menu->Remove (i); } if (_film->content().size() == 1) { /* Offer a CPL menu */ - shared_ptr first = dynamic_pointer_cast(_film->content().front()); + auto first = dynamic_pointer_cast(_film->content().front()); if (first) { DCPExaminer ex (first, true); int id = ID_view_cpl; for (auto i: ex.cpls()) { - wxMenuItem* j = _cpl_menu->AppendRadioItem( + auto j = _cpl_menu->AppendRadioItem( id, wxString::Format("%s (%s)", std_to_wx(i->annotation_text().get_value_or("")).data(), std_to_wx(i->id()).data()) ); @@ -473,11 +473,11 @@ private: bool report_errors_from_last_job (wxWindow* parent) const { - JobManager* jm = JobManager::instance (); + auto jm = JobManager::instance (); DCPOMATIC_ASSERT (!jm->get().empty()); - shared_ptr last = jm->get().back(); + auto last = jm->get().back(); if (last->finished_in_error()) { error_dialog(parent, wxString::Format(_("Could not load DCP.\n\n%s."), std_to_wx(last->error_summary()).data()), std_to_wx(last->error_details())); return false; diff --git a/src/tools/server_test.cc b/src/tools/server_test.cc index e3375b988..8e4496799 100644 --- a/src/tools/server_test.cc +++ b/src/tools/server_test.cc @@ -55,8 +55,8 @@ static int frame_count = 0; void process_video (shared_ptr pvf) { - shared_ptr local (new DCPVideo (pvf, frame_count, film->video_frame_rate(), 250000000, RESOLUTION_2K)); - shared_ptr remote (new DCPVideo (pvf, frame_count, film->video_frame_rate(), 250000000, RESOLUTION_2K)); + shared_ptr local (new DCPVideo (pvf, frame_count, film->video_frame_rate(), 250000000, Resolution::TWO_K)); + shared_ptr remote (new DCPVideo (pvf, frame_count, film->video_frame_rate(), 250000000, Resolution::TWO_K)); cout << "Frame " << frame_count << ": "; cout.flush (); diff --git a/src/wx/audio_dialog.cc b/src/wx/audio_dialog.cc index 41b2a9d39..b8c7f7b73 100644 --- a/src/wx/audio_dialog.cc +++ b/src/wx/audio_dialog.cc @@ -314,12 +314,12 @@ AudioDialog::channel_clicked (wxCommandEvent& ev) void AudioDialog::film_change (ChangeType type, int p) { - if (type != CHANGE_TYPE_DONE) { + if (type != ChangeType::DONE) { return; } if (p == Film::AUDIO_CHANNELS) { - shared_ptr film = _film.lock (); + auto film = _film.lock (); if (film) { _channels = film->audio_channels (); try_to_load_analysis (); @@ -330,7 +330,7 @@ AudioDialog::film_change (ChangeType type, int p) void AudioDialog::content_change (ChangeType type, int p) { - if (type != CHANGE_TYPE_DONE) { + if (type != ChangeType::DONE) { return; } @@ -375,12 +375,12 @@ AudioDialog::setup_statistics () return; } - shared_ptr film = _film.lock (); + auto film = _film.lock (); if (!film) { return; } - pair const peak = _analysis->overall_sample_peak (); + auto const peak = _analysis->overall_sample_peak (); float const peak_dB = linear_to_db(peak.first.peak) + _analysis->gain_correction(_playlist); _sample_peak->SetLabel ( wxString::Format ( @@ -412,7 +412,7 @@ AudioDialog::setup_statistics () /* XXX: check whether it's ok to add dB gain to these quantities */ - if (static_cast(_analysis->integrated_loudness ())) { + if (static_cast(_analysis->integrated_loudness())) { _integrated_loudness->SetLabel ( wxString::Format ( _("Integrated loudness %.2f LUFS"), @@ -421,7 +421,7 @@ AudioDialog::setup_statistics () ); } - if (static_cast(_analysis->loudness_range ())) { + if (static_cast(_analysis->loudness_range())) { _loudness_range->SetLabel ( wxString::Format ( _("Loudness range %.2f LU"), @@ -455,7 +455,7 @@ AudioDialog::set_cursor (optional time, optional db) return; } - shared_ptr film = _film.lock(); + auto film = _film.lock(); DCPOMATIC_ASSERT (film); _cursor->SetLabel (wxString::Format (_("Cursor: %.1fdB at %s"), *db, time->timecode(film->video_frame_rate()))); } diff --git a/src/wx/closed_captions_dialog.cc b/src/wx/closed_captions_dialog.cc index c23c2902b..f2528a00f 100644 --- a/src/wx/closed_captions_dialog.cc +++ b/src/wx/closed_captions_dialog.cc @@ -239,7 +239,7 @@ ClosedCaptionsDialog::update_tracks (shared_ptr film) for (auto i: film->content()) { for (auto j: i->text) { - if (j->use() && j->type() == TEXT_CLOSED_CAPTION && j->dcp_track()) { + if (j->use() && j->type() == TextType::CLOSED_CAPTION && j->dcp_track()) { if (find(_tracks.begin(), _tracks.end(), j->dcp_track()) == _tracks.end()) { _tracks.push_back (*j->dcp_track()); } diff --git a/src/wx/content_panel.cc b/src/wx/content_panel.cc index 0530c9128..a06791d4d 100644 --- a/src/wx/content_panel.cc +++ b/src/wx/content_panel.cc @@ -78,7 +78,7 @@ ContentPanel::ContentPanel (wxNotebook* n, shared_ptr film, weak_ptr(TextType::COUNT); ++i) { _text_panel[i] = 0; } @@ -331,7 +331,7 @@ ContentPanel::check_selection () bool have_video = false; bool have_audio = false; - bool have_text[TEXT_COUNT] = { false, false }; + bool have_text[static_cast(TextType::COUNT)] = { false, false }; for (auto i: selected()) { if (i->video) { have_video = true; @@ -340,7 +340,7 @@ ContentPanel::check_selection () have_audio = true; } for (auto j: i->text) { - have_text[j->original_type()] = true; + have_text[static_cast(j->original_type())] = true; } } @@ -370,7 +370,7 @@ ContentPanel::check_selection () ++off; } - for (int i = 0; i < TEXT_COUNT; ++i) { + for (int i = 0; i < static_cast(TextType::COUNT); ++i) { if (have_text[i] && !_text_panel[i]) { _text_panel[i] = new TextPanel (this, static_cast(i)); _notebook->InsertPage (off, _text_panel[i], _text_panel[i]->name()); @@ -570,7 +570,7 @@ ContentPanel::setup_sensitivity () if (_audio_panel) { _audio_panel->Enable (_generally_sensitive && audio_selection.size() > 0); } - for (int i = 0; i < TEXT_COUNT; ++i) { + for (int i = 0; i < static_cast(TextType::COUNT); ++i) { if (_text_panel[i]) { _text_panel[i]->Enable (_generally_sensitive && selection.size() == 1 && !selection.front()->text.empty()); } @@ -790,7 +790,7 @@ ContentPanel::panels () const if (_audio_panel) { p.push_back (_audio_panel); } - for (int i = 0; i < TEXT_COUNT; ++i) { + for (int i = 0; i < static_cast(TextType::COUNT); ++i) { if (_text_panel[i]) { p.push_back (_text_panel[i]); } diff --git a/src/wx/content_panel.h b/src/wx/content_panel.h index 6a9ef3f4a..124fd6b94 100644 --- a/src/wx/content_panel.h +++ b/src/wx/content_panel.h @@ -136,7 +136,7 @@ private: wxButton* _timeline; VideoPanel* _video_panel; AudioPanel* _audio_panel; - TextPanel* _text_panel[TEXT_COUNT]; + TextPanel* _text_panel[static_cast(TextType::COUNT)]; TimingPanel* _timing_panel; ContentMenu* _menu; TimelineDialog* _timeline_dialog; diff --git a/src/wx/content_widget.h b/src/wx/content_widget.h index d38609cb4..1a9c85dde 100644 --- a/src/wx/content_widget.h +++ b/src/wx/content_widget.h @@ -195,14 +195,14 @@ private: void button_clicked () { U const v = boost::bind (_model_getter, _part(_content.front().get()).get())(); - for (typename List::iterator i = _content.begin (); i != _content.end(); ++i) { - boost::bind (_model_setter, _part(i->get()).get(), v) (); + for (auto const& i: _content) { + boost::bind (_model_setter, _part(i.get()).get(), v)(); } } void model_changed (ChangeType type, int property) { - if (type == CHANGE_TYPE_DONE && property == _property && !_ignore_model_changes) { + if (type == ChangeType::DONE && property == _property && !_ignore_model_changes) { update_from_model (); } } diff --git a/src/wx/controls.cc b/src/wx/controls.cc index 5364e1614..311343400 100644 --- a/src/wx/controls.cc +++ b/src/wx/controls.cc @@ -190,7 +190,7 @@ Controls::update_position () void Controls::eye_changed () { - _viewer->set_eyes (_eye->GetSelection() == 0 ? EYES_LEFT : EYES_RIGHT); + _viewer->set_eyes (_eye->GetSelection() == 0 ? Eyes::LEFT : Eyes::RIGHT); } void @@ -407,7 +407,7 @@ Controls::film () const void Controls::film_change (ChangeType type, Film::Property p) { - if (type == CHANGE_TYPE_DONE) { + if (type == ChangeType::DONE) { if (p == Film::CONTENT) { setup_sensitivity (); update_position_label (); diff --git a/src/wx/dcp_panel.cc b/src/wx/dcp_panel.cc index 047768f56..cf4d5d3fe 100644 --- a/src/wx/dcp_panel.cc +++ b/src/wx/dcp_panel.cc @@ -286,7 +286,7 @@ DCPPanel::resolution_changed () return; } - _film->set_resolution (_resolution->GetSelection() == 0 ? RESOLUTION_2K : RESOLUTION_4K); + _film->set_resolution (_resolution->GetSelection() == 0 ? Resolution::TWO_K : Resolution::FOUR_K); } void @@ -354,7 +354,7 @@ DCPPanel::film_changed (int p) checked_set (_encrypted, _film->encrypted ()); break; case Film::RESOLUTION: - checked_set (_resolution, _film->resolution() == RESOLUTION_2K ? 0 : 1); + checked_set (_resolution, _film->resolution() == Resolution::TWO_K ? 0 : 1); setup_container (); setup_dcp_name (); break; @@ -433,8 +433,8 @@ DCPPanel::film_changed (int p) film_changed (Film::AUDIO_CHANNELS); break; case Film::REEL_TYPE: - checked_set (_reel_type, _film->reel_type ()); - _reel_length->Enable (_film->reel_type() == REELTYPE_BY_LENGTH); + checked_set (_reel_type, static_cast(_film->reel_type())); + _reel_length->Enable (_film->reel_type() == ReelType::BY_LENGTH); break; case Film::REEL_LENGTH: checked_set (_reel_length, _film->reel_length() / 1000000000LL); @@ -586,7 +586,7 @@ DCPPanel::setup_sensitivity () _copy_isdcf_name_button->Enable (_generally_sensitive); _encrypted->Enable (_generally_sensitive); _reel_type->Enable (_generally_sensitive && _film && !_film->references_dcp_video() && !_film->references_dcp_audio()); - _reel_length->Enable (_generally_sensitive && _film && _film->reel_type() == REELTYPE_BY_LENGTH); + _reel_length->Enable (_generally_sensitive && _film && _film->reel_type() == ReelType::BY_LENGTH); _markers->Enable (_generally_sensitive && _film && !_film->interop()); _metadata->Enable (_generally_sensitive); _frame_rate_choice->Enable (_generally_sensitive && _film && !_film->references_dcp_video() && !_film->contains_atmos_content()); diff --git a/src/wx/export_video_file_dialog.cc b/src/wx/export_video_file_dialog.cc index f1b2d2622..30ea6ef47 100644 --- a/src/wx/export_video_file_dialog.cc +++ b/src/wx/export_video_file_dialog.cc @@ -49,8 +49,8 @@ wxString format_extensions[] = { }; ExportFormat formats[] = { - EXPORT_FORMAT_PRORES, - EXPORT_FORMAT_H264_AAC, + ExportFormat::PRORES, + ExportFormat::H264_AAC, }; ExportVideoFileDialog::ExportVideoFileDialog (wxWindow* parent, string name) diff --git a/src/wx/film_editor.cc b/src/wx/film_editor.cc index bb40dad9f..47a6358cc 100644 --- a/src/wx/film_editor.cc +++ b/src/wx/film_editor.cc @@ -73,7 +73,7 @@ FilmEditor::FilmEditor (wxWindow* parent, weak_ptr viewer) void FilmEditor::film_change (ChangeType type, Film::Property p) { - if (type != CHANGE_TYPE_DONE) { + if (type != ChangeType::DONE) { return; } @@ -95,7 +95,7 @@ FilmEditor::film_change (ChangeType type, Film::Property p) void FilmEditor::film_content_change (ChangeType type, int property) { - if (type != CHANGE_TYPE_DONE) { + if (type != ChangeType::DONE) { return; } diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index e8c3b8c71..f31553239 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -184,8 +184,8 @@ FilmViewer::set_film (shared_ptr film) _film->LengthChange.connect (boost::bind(&FilmViewer::film_length_change, this)); _player->Change.connect (boost::bind (&FilmViewer::player_change, this, _1, _2, _3)); - film_change (CHANGE_TYPE_DONE, Film::VIDEO_FRAME_RATE); - film_change (CHANGE_TYPE_DONE, Film::THREE_D); + film_change (ChangeType::DONE, Film::VIDEO_FRAME_RATE); + film_change (ChangeType::DONE, Film::THREE_D); film_length_change (); /* Keep about 1 second's worth of history samples */ @@ -376,7 +376,7 @@ FilmViewer::stop () void FilmViewer::player_change (ChangeType type, int property, bool frequent) { - if (type != CHANGE_TYPE_DONE || frequent) { + if (type != ChangeType::DONE || frequent) { return; } @@ -407,7 +407,7 @@ FilmViewer::player_change (ChangeType type, int property, bool frequent) void FilmViewer::film_change (ChangeType type, Film::Property p) { - if (type != CHANGE_TYPE_DONE) { + if (type != ChangeType::DONE) { return; } @@ -464,7 +464,7 @@ FilmViewer::set_coalesce_player_changes (bool c) if (!c) { for (auto i: _pending_player_changes) { - player_change (CHANGE_TYPE_DONE, i, false); + player_change (ChangeType::DONE, i, false); } _pending_player_changes.clear (); } @@ -710,7 +710,7 @@ FilmViewer::gets () const void FilmViewer::content_change (ChangeType type, int property) { - if (type != CHANGE_TYPE_DONE) { + if (type != ChangeType::DONE) { return; } diff --git a/src/wx/full_config_dialog.cc b/src/wx/full_config_dialog.cc index e17e0a57b..43c76fddb 100644 --- a/src/wx/full_config_dialog.cc +++ b/src/wx/full_config_dialog.cc @@ -586,7 +586,7 @@ private: Config* config = Config::instance (); checked_set (_upload, config->upload_after_make_dcp()); - checked_set (_tms_protocol, config->tms_protocol ()); + checked_set (_tms_protocol, static_cast(config->tms_protocol())); checked_set (_tms_ip, config->tms_ip ()); checked_set (_tms_path, config->tms_path ()); checked_set (_tms_user, config->tms_user ()); @@ -700,21 +700,21 @@ private: void config_changed () { - Config* config = Config::instance (); + auto config = Config::instance (); checked_set (_server, config->mail_server ()); checked_set (_port, config->mail_port ()); switch (config->mail_protocol()) { - case EMAIL_PROTOCOL_AUTO: + case EmailProtocol::AUTO: checked_set (_protocol, 0); break; - case EMAIL_PROTOCOL_PLAIN: + case EmailProtocol::PLAIN: checked_set (_protocol, 1); break; - case EMAIL_PROTOCOL_STARTTLS: + case EmailProtocol::STARTTLS: checked_set (_protocol, 2); break; - case EMAIL_PROTOCOL_SSL: + case EmailProtocol::SSL: checked_set (_protocol, 3); break; } @@ -736,16 +736,16 @@ private: { switch (_protocol->GetSelection()) { case 0: - Config::instance()->set_mail_protocol(EMAIL_PROTOCOL_AUTO); + Config::instance()->set_mail_protocol(EmailProtocol::AUTO); break; case 1: - Config::instance()->set_mail_protocol(EMAIL_PROTOCOL_PLAIN); + Config::instance()->set_mail_protocol(EmailProtocol::PLAIN); break; case 2: - Config::instance()->set_mail_protocol(EMAIL_PROTOCOL_STARTTLS); + Config::instance()->set_mail_protocol(EmailProtocol::STARTTLS); break; case 3: - Config::instance()->set_mail_protocol(EMAIL_PROTOCOL_SSL); + Config::instance()->set_mail_protocol(EmailProtocol::SSL); break; } } diff --git a/src/wx/hints_dialog.cc b/src/wx/hints_dialog.cc index 2c6bac14a..2e53d8104 100644 --- a/src/wx/hints_dialog.cc +++ b/src/wx/hints_dialog.cc @@ -87,20 +87,20 @@ HintsDialog::HintsDialog (wxWindow* parent, std::weak_ptr film, bool ok) _film_content_change_connection = locked_film->ContentChange.connect (boost::bind (&HintsDialog::film_content_change, this, _1)); } - film_change (CHANGE_TYPE_DONE); + film_change (ChangeType::DONE); } void HintsDialog::film_change (ChangeType type) { - if (type != CHANGE_TYPE_DONE) { + if (type != ChangeType::DONE) { return; } _text->Clear (); _current.clear (); - std::shared_ptr film = _film.lock (); + auto film = _film.lock (); if (!film) { return; } diff --git a/src/wx/smpte_metadata_dialog.cc b/src/wx/smpte_metadata_dialog.cc index 772250701..b8a1184e0 100644 --- a/src/wx/smpte_metadata_dialog.cc +++ b/src/wx/smpte_metadata_dialog.cc @@ -244,16 +244,16 @@ SMPTEMetadataDialog::SMPTEMetadataDialog (wxWindow* parent, weak_ptr weak_ _film_changed_connection = film()->Change.connect(boost::bind(&SMPTEMetadataDialog::film_changed, this, _1, _2)); - film_changed (CHANGE_TYPE_DONE, Film::NAME_LANGUAGE); - film_changed (CHANGE_TYPE_DONE, Film::RELEASE_TERRITORY); - film_changed (CHANGE_TYPE_DONE, Film::VERSION_NUMBER); - film_changed (CHANGE_TYPE_DONE, Film::STATUS); - film_changed (CHANGE_TYPE_DONE, Film::CHAIN); - film_changed (CHANGE_TYPE_DONE, Film::DISTRIBUTOR); - film_changed (CHANGE_TYPE_DONE, Film::FACILITY); - film_changed (CHANGE_TYPE_DONE, Film::CONTENT_VERSIONS); - film_changed (CHANGE_TYPE_DONE, Film::LUMINANCE); - film_changed (CHANGE_TYPE_DONE, Film::SUBTITLE_LANGUAGES); + film_changed (ChangeType::DONE, Film::NAME_LANGUAGE); + film_changed (ChangeType::DONE, Film::RELEASE_TERRITORY); + film_changed (ChangeType::DONE, Film::VERSION_NUMBER); + film_changed (ChangeType::DONE, Film::STATUS); + film_changed (ChangeType::DONE, Film::CHAIN); + film_changed (ChangeType::DONE, Film::DISTRIBUTOR); + film_changed (ChangeType::DONE, Film::FACILITY); + film_changed (ChangeType::DONE, Film::CONTENT_VERSIONS); + film_changed (ChangeType::DONE, Film::LUMINANCE); + film_changed (ChangeType::DONE, Film::SUBTITLE_LANGUAGES); setup_sensitivity (); } @@ -262,7 +262,7 @@ SMPTEMetadataDialog::SMPTEMetadataDialog (wxWindow* parent, weak_ptr weak_ void SMPTEMetadataDialog::film_changed (ChangeType type, Film::Property property) { - if (type != CHANGE_TYPE_DONE || film()->interop()) { + if (type != ChangeType::DONE || film()->interop()) { return; } diff --git a/src/wx/subtitle_appearance_dialog.cc b/src/wx/subtitle_appearance_dialog.cc index e21093798..ef3f20e7a 100644 --- a/src/wx/subtitle_appearance_dialog.cc +++ b/src/wx/subtitle_appearance_dialog.cc @@ -59,7 +59,7 @@ SubtitleAppearanceDialog::SubtitleAppearanceDialog (wxWindow* parent, shared_ptr , _content (content) , _caption (caption) { - shared_ptr ff = dynamic_pointer_cast (content); + auto ff = dynamic_pointer_cast (content); if (ff) { _stream = ff->subtitle_stream (); /* XXX: assuming that all FFmpeg streams have bitmap subs */ @@ -135,7 +135,7 @@ SubtitleAppearanceDialog::SubtitleAppearanceDialog (wxWindow* parent, shared_ptr _overall_sizer->Add (restore, 0, wxALL, DCPOMATIC_SIZER_X_GAP); } - wxSizer* buttons = CreateSeparatedButtonSizer (wxOK); + auto buttons = CreateSeparatedButtonSizer (wxOK); if (buttons) { _overall_sizer->Add (buttons, wxSizerFlags().Expand().DoubleBorder()); } @@ -174,7 +174,7 @@ SubtitleAppearanceDialog::SubtitleAppearanceDialog (wxWindow* parent, shared_ptr _effect->SetSelection (NONE); } - optional effect_colour = _caption->effect_colour(); + auto effect_colour = _caption->effect_colour(); _force_effect_colour->SetValue (static_cast(effect_colour)); if (effect_colour) { _effect_colour->SetColour (wxColour (effect_colour->r, effect_colour->g, effect_colour->b)); @@ -182,7 +182,7 @@ SubtitleAppearanceDialog::SubtitleAppearanceDialog (wxWindow* parent, shared_ptr _effect_colour->SetColour (wxColour (0, 0, 0)); } - optional fade_in = _caption->fade_in(); + auto fade_in = _caption->fade_in(); _force_fade_in->SetValue (static_cast(fade_in)); if (fade_in) { _fade_in->set (*fade_in, _content->active_video_frame_rate(film)); @@ -190,7 +190,7 @@ SubtitleAppearanceDialog::SubtitleAppearanceDialog (wxWindow* parent, shared_ptr _fade_in->set (ContentTime(), _content->active_video_frame_rate(film)); } - optional fade_out = _caption->fade_out(); + auto fade_out = _caption->fade_out(); _force_fade_out->SetValue (static_cast(fade_out)); if (fade_out) { _fade_out->set (*fade_out, _content->active_video_frame_rate(film)); @@ -214,7 +214,7 @@ SubtitleAppearanceDialog::SubtitleAppearanceDialog (wxWindow* parent, shared_ptr void SubtitleAppearanceDialog::content_change (ChangeType type) { - if (type == CHANGE_TYPE_DONE) { + if (type == ChangeType::DONE) { setup_sensitivity (); } } @@ -222,8 +222,8 @@ SubtitleAppearanceDialog::content_change (ChangeType type) wxCheckBox* SubtitleAppearanceDialog::set_to (wxWindow* w, int& r) { - wxSizer* s = new wxBoxSizer (wxHORIZONTAL); - wxCheckBox* set_to = new CheckBox (this, _("Set to")); + auto s = new wxBoxSizer (wxHORIZONTAL); + auto set_to = new CheckBox (this, _("Set to")); s->Add (set_to, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 8); s->Add (w, 0, wxALIGN_CENTER_VERTICAL); _table->Add (s, wxGBPosition (r, 1)); @@ -234,10 +234,10 @@ SubtitleAppearanceDialog::set_to (wxWindow* w, int& r) void SubtitleAppearanceDialog::apply () { - shared_ptr film = _film.lock (); + auto film = _film.lock (); if (_force_colour->GetValue ()) { - wxColour const c = _colour->GetColour (); + auto const c = _colour->GetColour (); _caption->set_colour (dcp::Colour (c.Red(), c.Green(), c.Blue())); } else { _caption->unset_colour (); @@ -258,7 +258,7 @@ SubtitleAppearanceDialog::apply () _caption->unset_effect (); } if (_force_effect_colour->GetValue ()) { - wxColour const ec = _effect_colour->GetColour (); + auto const ec = _effect_colour->GetColour (); _caption->set_effect_colour (dcp::Colour (ec.Red(), ec.Green(), ec.Blue())); } else { _caption->unset_effect_colour (); @@ -276,12 +276,12 @@ SubtitleAppearanceDialog::apply () _caption->set_outline_width (_outline_width->GetValue ()); if (_stream) { - for (map::const_iterator i = _pickers.begin(); i != _pickers.end(); ++i) { - _stream->set_colour (i->first, i->second->colour ()); + for (auto const& i: _pickers) { + _stream->set_colour (i.first, i.second->colour()); } } - shared_ptr fc = dynamic_pointer_cast (_content); + auto fc = dynamic_pointer_cast (_content); if (fc) { fc->signal_subtitle_stream_changed (); } @@ -290,8 +290,8 @@ SubtitleAppearanceDialog::apply () void SubtitleAppearanceDialog::restore () { - for (map::const_iterator i = _pickers.begin(); i != _pickers.end(); ++i) { - i->second->set (i->first); + for (auto const& i: _pickers) { + i.second->set (i.first); } } @@ -330,13 +330,13 @@ SubtitleAppearanceDialog::active_jobs_changed (optional last) void SubtitleAppearanceDialog::add_colours () { - map colours = _stream->colours (); - for (map::const_iterator i = colours.begin(); i != colours.end(); ++i) { - wxPanel* from = new wxPanel (_colours_panel, wxID_ANY); - from->SetBackgroundColour (wxColour (i->first.r, i->first.g, i->first.b, i->first.a)); + auto colours = _stream->colours (); + for (auto const& i: _stream->colours()) { + auto from = new wxPanel(_colours_panel, wxID_ANY); + from->SetBackgroundColour(wxColour(i.first.r, i.first.g, i.first.b, i.first.a)); _colour_table->Add (from, 1, wxEXPAND); - RGBAColourPicker* to = new RGBAColourPicker (_colours_panel, i->second); + auto to = new RGBAColourPicker(_colours_panel, i.second); _colour_table->Add (to, 1, wxEXPAND); - _pickers[i->first] = to; + _pickers[i.first] = to; } } diff --git a/src/wx/text_panel.cc b/src/wx/text_panel.cc index 521e55fc5..dec58f0cd 100644 --- a/src/wx/text_panel.cc +++ b/src/wx/text_panel.cc @@ -65,7 +65,7 @@ TextPanel::TextPanel (ContentPanel* p, TextType t) , _loading_analysis (false) { wxString refer = _("Use this DCP's subtitle as OV and make VF"); - if (t == TEXT_CLOSED_CAPTION) { + if (t == TextType::CLOSED_CAPTION) { refer = _("Use this DCP's closed caption as OV and make VF"); } @@ -145,7 +145,7 @@ void TextPanel::setup_visibility () { switch (current_type()) { - case TEXT_OPEN_SUBTITLE: + case TextType::OPEN_SUBTITLE: if (_dcp_track_label) { _dcp_track_label->Destroy (); _dcp_track_label = 0; @@ -161,7 +161,7 @@ TextPanel::setup_visibility () } break; - case TEXT_CLOSED_CAPTION: + case TextType::CLOSED_CAPTION: if (!_dcp_track_label) { _dcp_track_label = create_label (this, _("CCAP track"), true); add_label_to_sizer (_grid, _dcp_track_label, true, wxGBPosition(_ccap_track_row, 0)); @@ -348,7 +348,7 @@ TextPanel::dcp_track_changed () if (track) { for (auto i: _parent->selected_text()) { shared_ptr t = i->text_of_original_type(_original_type); - if (t && t->type() == TEXT_CLOSED_CAPTION) { + if (t && t->type() == TextType::CLOSED_CAPTION) { t->set_dcp_track(*track); } } @@ -409,10 +409,10 @@ TextPanel::film_content_changed (int property) } else if (property == TextContentProperty::TYPE) { if (text) { switch (text->type()) { - case TEXT_OPEN_SUBTITLE: + case TextType::OPEN_SUBTITLE: _type->SetSelection (0); break; - case TEXT_CLOSED_CAPTION: + case TextType::CLOSED_CAPTION: _type->SetSelection (1); break; default: @@ -474,12 +474,12 @@ TextPanel::current_type () const { switch (_type->GetSelection()) { case 0: - return TEXT_OPEN_SUBTITLE; + return TextType::OPEN_SUBTITLE; case 1: - return TEXT_CLOSED_CAPTION; + return TextType::CLOSED_CAPTION; } - return TEXT_UNKNOWN; + return TextType::UNKNOWN; } void @@ -558,10 +558,10 @@ TextPanel::setup_sensitivity () } switch (type) { - case TEXT_OPEN_SUBTITLE: + case TextType::OPEN_SUBTITLE: _type->SetSelection (0); break; - case TEXT_CLOSED_CAPTION: + case TextType::CLOSED_CAPTION: if (_type->GetCount() > 1) { _type->SetSelection (1); } @@ -574,35 +574,35 @@ TextPanel::setup_sensitivity () _use->Enable (!reference && any_subs > 0); bool const use = _use->GetValue (); if (_outline_subtitles) { - _outline_subtitles->Enable (!_loading_analysis && any_subs && use && type == TEXT_OPEN_SUBTITLE); + _outline_subtitles->Enable (!_loading_analysis && any_subs && use && type == TextType::OPEN_SUBTITLE); } _type->Enable (!reference && any_subs > 0 && use); - _burn->Enable (!reference && any_subs > 0 && use && type == TEXT_OPEN_SUBTITLE); - _x_offset->Enable (!reference && any_subs > 0 && use && type == TEXT_OPEN_SUBTITLE); - _y_offset->Enable (!reference && any_subs > 0 && use && type == TEXT_OPEN_SUBTITLE); - _x_scale->Enable (!reference && any_subs > 0 && use && type == TEXT_OPEN_SUBTITLE); - _y_scale->Enable (!reference && any_subs > 0 && use && type == TEXT_OPEN_SUBTITLE); - _line_spacing->Enable (!reference && use && type == TEXT_OPEN_SUBTITLE && dcp_subs < any_subs); + _burn->Enable (!reference && any_subs > 0 && use && type == TextType::OPEN_SUBTITLE); + _x_offset->Enable (!reference && any_subs > 0 && use && type == TextType::OPEN_SUBTITLE); + _y_offset->Enable (!reference && any_subs > 0 && use && type == TextType::OPEN_SUBTITLE); + _x_scale->Enable (!reference && any_subs > 0 && use && type == TextType::OPEN_SUBTITLE); + _y_scale->Enable (!reference && any_subs > 0 && use && type == TextType::OPEN_SUBTITLE); + _line_spacing->Enable (!reference && use && type == TextType::OPEN_SUBTITLE && dcp_subs < any_subs); _stream->Enable (!reference && ffmpeg_subs == 1); /* Ideally we would check here to see if the FFmpeg content has "string" subs (i.e. not bitmaps) */ _text_view_button->Enable (!reference && any_subs > 0 && ffmpeg_subs == 0); - _fonts_dialog_button->Enable (!reference && any_subs > 0 && ffmpeg_subs == 0 && type == TEXT_OPEN_SUBTITLE); - _appearance_dialog_button->Enable (!reference && any_subs > 0 && use && type == TEXT_OPEN_SUBTITLE); + _fonts_dialog_button->Enable (!reference && any_subs > 0 && ffmpeg_subs == 0 && type == TextType::OPEN_SUBTITLE); + _appearance_dialog_button->Enable (!reference && any_subs > 0 && use && type == TextType::OPEN_SUBTITLE); } void TextPanel::stream_changed () { - FFmpegContentList fc = _parent->selected_ffmpeg (); + auto fc = _parent->selected_ffmpeg (); if (fc.size() != 1) { return; } - shared_ptr fcs = fc.front (); + auto fcs = fc.front (); - vector > a = fcs->subtitle_streams (); - vector >::iterator i = a.begin (); - string const s = string_client_data (_stream->GetClientObject (_stream->GetSelection ())); + auto a = fcs->subtitle_streams (); + auto i = a.begin (); + auto const s = string_client_data (_stream->GetClientObject (_stream->GetSelection ())); while (i != a.end() && (*i)->identifier () != s) { ++i; } @@ -631,7 +631,7 @@ TextPanel::y_offset_changed () void TextPanel::x_scale_changed () { - ContentList c = _parent->selected_text (); + auto c = _parent->selected_text (); if (c.size() == 1) { c.front()->text_of_original_type(_original_type)->set_x_scale (_x_scale->GetValue() / 100.0); } @@ -694,10 +694,10 @@ TextPanel::fonts_dialog_clicked () { if (_fonts_dialog) { _fonts_dialog->Destroy (); - _fonts_dialog = 0; + _fonts_dialog = nullptr; } - ContentList c = _parent->selected_text (); + auto c = _parent->selected_text (); DCPOMATIC_ASSERT (c.size() == 1); _fonts_dialog = new FontsDialog (this, c.front(), c.front()->text_of_original_type(_original_type)); @@ -707,12 +707,12 @@ TextPanel::fonts_dialog_clicked () void TextPanel::reference_clicked () { - ContentList c = _parent->selected (); + auto c = _parent->selected (); if (c.size() != 1) { return; } - shared_ptr d = dynamic_pointer_cast (c.front ()); + auto d = dynamic_pointer_cast (c.front ()); if (!d) { return; } @@ -723,10 +723,10 @@ TextPanel::reference_clicked () void TextPanel::appearance_dialog_clicked () { - ContentList c = _parent->selected_text (); + auto c = _parent->selected_text (); DCPOMATIC_ASSERT (c.size() == 1); - SubtitleAppearanceDialog* d = new SubtitleAppearanceDialog (this, _parent->film(), c.front(), c.front()->text_of_original_type(_original_type)); + auto d = new SubtitleAppearanceDialog (this, _parent->film(), c.front(), c.front()->text_of_original_type(_original_type)); if (d->ShowModal () == wxID_OK) { d->apply (); } @@ -759,14 +759,14 @@ TextPanel::try_to_load_analysis () setup_sensitivity (); _analysis.reset (); - shared_ptr content = _analysis_content.lock (); + auto content = _analysis_content.lock (); if (!content) { _loading_analysis = false; setup_sensitivity (); return; } - boost::filesystem::path const path = _parent->film()->subtitle_analysis_path(content); + auto const path = _parent->film()->subtitle_analysis_path(content); if (!boost::filesystem::exists(path)) { for (auto i: JobManager::instance()->get()) { @@ -800,15 +800,15 @@ TextPanel::try_to_load_analysis () void TextPanel::update_outline_subtitles_in_viewer () { - shared_ptr fv = _parent->film_viewer().lock(); + auto fv = _parent->film_viewer().lock(); if (!fv) { return; } if (_analysis) { - optional > rect = _analysis->bounding_box (); + auto rect = _analysis->bounding_box (); if (rect) { - shared_ptr content = _analysis_content.lock (); + auto content = _analysis_content.lock (); DCPOMATIC_ASSERT (content); rect->x += content->text.front()->x_offset(); rect->y += content->text.front()->y_offset(); @@ -835,7 +835,7 @@ TextPanel::clear_outline_subtitles () void TextPanel::analysis_finished () { - shared_ptr content = _analysis_content.lock (); + auto content = _analysis_content.lock (); if (!content) { _loading_analysis = false; setup_sensitivity (); diff --git a/src/wx/timeline.cc b/src/wx/timeline.cc index 3294676fc..89f223956 100644 --- a/src/wx/timeline.cc +++ b/src/wx/timeline.cc @@ -112,7 +112,7 @@ Timeline::Timeline (wxWindow* parent, ContentPanel* cp, shared_ptr film, w _main_canvas->Bind (wxEVT_SCROLLWIN_PAGEDOWN, boost::bind (&Timeline::scrolled, this, _1)); _main_canvas->Bind (wxEVT_SCROLLWIN_THUMBTRACK, boost::bind (&Timeline::scrolled, this, _1)); - film_change (CHANGE_TYPE_DONE, Film::CONTENT); + film_change (ChangeType::DONE, Film::CONTENT); SetMinSize (wxSize (640, 4 * pixels_per_track() + 96)); @@ -227,7 +227,7 @@ Timeline::paint_main () void Timeline::film_change (ChangeType type, Film::Property p) { - if (type != CHANGE_TYPE_DONE) { + if (type != ChangeType::DONE) { return; } @@ -277,7 +277,7 @@ Timeline::recreate_views () void Timeline::film_content_change (ChangeType type, int property, bool frequent) { - if (type != CHANGE_TYPE_DONE) { + if (type != ChangeType::DONE) { return; } @@ -403,7 +403,7 @@ Timeline::assign_tracks () } /* Video on tracks 0 and maybe 1 (left and right eye) */ - if (cv->content()->video->frame_type() == VIDEO_FRAME_TYPE_3D_RIGHT) { + if (cv->content()->video->frame_type() == VideoFrameType::THREE_D_RIGHT) { cv->set_track (1); _tracks = max (_tracks, 2); have_3d = true; diff --git a/src/wx/timeline_content_view.cc b/src/wx/timeline_content_view.cc index 8258a81f9..bb84d6147 100644 --- a/src/wx/timeline_content_view.cc +++ b/src/wx/timeline_content_view.cc @@ -44,10 +44,10 @@ TimelineContentView::bbox () const { DCPOMATIC_ASSERT (_track); - shared_ptr film = _timeline.film (); - shared_ptr content = _content.lock (); + auto film = _timeline.film (); + auto content = _content.lock (); if (!film || !content) { - return dcpomatic::Rect (); + return {}; } return dcpomatic::Rect ( @@ -86,7 +86,7 @@ TimelineContentView::set_track (int t) void TimelineContentView::unset_track () { - _track = boost::optional (); + _track = boost::optional(); } boost::optional @@ -100,8 +100,8 @@ TimelineContentView::do_paint (wxGraphicsContext* gc, list { DCPOMATIC_ASSERT (_track); - shared_ptr film = _timeline.film (); - shared_ptr cont = content (); + auto film = _timeline.film (); + auto cont = content (); if (!film || !cont) { return; } @@ -119,7 +119,7 @@ TimelineContentView::do_paint (wxGraphicsContext* gc, list } /* Outline */ - wxGraphicsPath path = gc->CreatePath (); + auto path = gc->CreatePath (); path.MoveToPoint (time_x (position) + 2, y_pos (_track.get()) + 4); path.AddLineToPoint (time_x (position + len) - 1, y_pos (_track.get()) + 4); path.AddLineToPoint (time_x (position + len) - 1, y_pos (_track.get() + 1) - 4); @@ -139,12 +139,12 @@ TimelineContentView::do_paint (wxGraphicsContext* gc, list /* Overlaps */ gc->SetBrush (*wxTheBrushList->FindOrCreateBrush (foreground_colour(), wxBRUSHSTYLE_CROSSDIAG_HATCH)); - for (list >::const_iterator i = overlaps.begin(); i != overlaps.end(); ++i) { - gc->DrawRectangle (i->x, i->y + 4, i->width, i->height - 8); + for (auto const& i: overlaps) { + gc->DrawRectangle (i.x, i.y + 4, i.width, i.height - 8); } /* Label text */ - wxString lab = label (); + auto lab = label (); wxDouble lab_width; wxDouble lab_height; wxDouble lab_descent; @@ -166,7 +166,7 @@ TimelineContentView::y_pos (int t) const void TimelineContentView::content_change (ChangeType type, int p) { - if (type != CHANGE_TYPE_DONE) { + if (type != ChangeType::DONE) { return; } diff --git a/src/wx/timeline_dialog.cc b/src/wx/timeline_dialog.cc index 563c31f70..f15bf7bfc 100644 --- a/src/wx/timeline_dialog.cc +++ b/src/wx/timeline_dialog.cc @@ -57,7 +57,7 @@ TimelineDialog::TimelineDialog (ContentPanel* cp, shared_ptr film, weak_pt , _film (film) , _timeline (this, cp, film, viewer) { - wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL); + auto sizer = new wxBoxSizer (wxVERTICAL); wxBitmap select (bitmap_path("select"), wxBITMAP_TYPE_PNG); wxBitmap zoom (bitmap_path("zoom"), wxBITMAP_TYPE_PNG); @@ -91,7 +91,7 @@ TimelineDialog::TimelineDialog (ContentPanel* cp, shared_ptr film, weak_pt sizer->SetSizeHints (this); _toolbar->ToggleTool ((int) Timeline::SNAP, _timeline.snap ()); - film_change (CHANGE_TYPE_DONE, Film::SEQUENCE); + film_change (ChangeType::DONE, Film::SEQUENCE); _film_changed_connection = film->Change.connect (bind (&TimelineDialog::film_change, this, _1, _2)); } @@ -99,11 +99,11 @@ TimelineDialog::TimelineDialog (ContentPanel* cp, shared_ptr film, weak_pt void TimelineDialog::film_change (ChangeType type, Film::Property p) { - if (type != CHANGE_TYPE_DONE) { + if (type != ChangeType::DONE) { return; } - shared_ptr film = _film.lock (); + auto film = _film.lock (); if (!film) { return; } @@ -127,7 +127,7 @@ TimelineDialog::tool_clicked (wxCommandEvent& ev) if (t == Timeline::SNAP) { _timeline.set_snap (_toolbar->GetToolState ((int) t)); } else if (t == Timeline::SEQUENCE) { - shared_ptr film = _film.lock (); + auto film = _film.lock (); if (film) { film->set_sequence (_toolbar->GetToolState ((int) t)); } diff --git a/src/wx/video_view.cc b/src/wx/video_view.cc index 42a7fe58b..3e21e709d 100644 --- a/src/wx/video_view.cc +++ b/src/wx/video_view.cc @@ -33,7 +33,7 @@ VideoView::VideoView (FilmViewer* viewer) : _viewer (viewer) , _state_timer ("viewer") , _video_frame_rate (0) - , _eyes (EYES_LEFT) + , _eyes (Eyes::LEFT) , _three_d (false) , _dropped (0) , _errored (0) @@ -84,7 +84,7 @@ VideoView::get_next_frame (bool non_blocking) _player_video.first && _three_d && _eyes != _player_video.first->eyes() && - _player_video.first->eyes() != EYES_BOTH + _player_video.first->eyes() != Eyes::BOTH ); if (_player_video.first && _player_video.first->error()) { @@ -109,8 +109,8 @@ VideoView::time_until_next_frame () const return optional(); } - dcpomatic::DCPTime const next = position() + one_video_frame(); - dcpomatic::DCPTime const time = _viewer->audio_time().get_value_or(position()); + auto const next = position() + one_video_frame(); + auto const time = _viewer->audio_time().get_value_or(position()); if (next < time) { return 0; } @@ -128,7 +128,7 @@ VideoView::start () bool VideoView::reset_metadata (shared_ptr film, dcp::Size player_video_container_size) { - pair, dcpomatic::DCPTime> pv = player_video (); + auto pv = player_video (); if (!pv.first) { return false; } diff --git a/test/4k_test.cc b/test/4k_test.cc index 6c6dea827..38b43e9cd 100644 --- a/test/4k_test.cc +++ b/test/4k_test.cc @@ -45,7 +45,7 @@ BOOST_AUTO_TEST_CASE (fourk_test) LogSwitcher ls (film->log()); film->set_name ("4k_test"); auto c = make_shared("test/data/test.mp4"); - film->set_resolution (RESOLUTION_4K); + film->set_resolution (Resolution::FOUR_K); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("FTR")); film->set_container (Ratio::from_id ("185")); film->examine_and_add_content (c); diff --git a/test/client_server_test.cc b/test/client_server_test.cc index eb066ce0f..3dceb31b0 100644 --- a/test/client_server_test.cc +++ b/test/client_server_test.cc @@ -43,9 +43,10 @@ using std::list; using std::shared_ptr; +using std::weak_ptr; +using std::make_shared; using boost::thread; using boost::optional; -using std::weak_ptr; using dcp::ArrayData; void @@ -60,7 +61,7 @@ do_remote_encode (shared_ptr frame, EncodeServerDescription descriptio BOOST_AUTO_TEST_CASE (client_server_test_rgb) { - shared_ptr image (new Image (AV_PIX_FMT_RGB24, dcp::Size (1998, 1080), true)); + auto image = make_shared(AV_PIX_FMT_RGB24, dcp::Size (1998, 1080), true); uint8_t* p = image->data()[0]; for (int y = 0; y < 1080; ++y) { @@ -73,7 +74,7 @@ BOOST_AUTO_TEST_CASE (client_server_test_rgb) p += image->stride()[0]; } - shared_ptr sub_image (new Image (AV_PIX_FMT_BGRA, dcp::Size (100, 200), true)); + auto sub_image = make_shared(AV_PIX_FMT_BGRA, dcp::Size (100, 200), true); p = sub_image->data()[0]; for (int y = 0; y < 200; ++y) { uint8_t* q = p; @@ -86,42 +87,38 @@ BOOST_AUTO_TEST_CASE (client_server_test_rgb) p += sub_image->stride()[0]; } - LogSwitcher ls (shared_ptr(new FileLog("build/test/client_server_test_rgb.log"))); - - shared_ptr pvf ( - new PlayerVideo ( - shared_ptr (new RawImageProxy (image)), - Crop (), - optional (), - dcp::Size (1998, 1080), - dcp::Size (1998, 1080), - EYES_BOTH, - PART_WHOLE, - ColourConversion(), - VideoRange::FULL, - weak_ptr(), - optional(), - false - ) + LogSwitcher ls (make_shared("build/test/client_server_test_rgb.log")); + + auto pvf = std::make_shared( + make_shared(image), + Crop (), + optional (), + dcp::Size (1998, 1080), + dcp::Size (1998, 1080), + Eyes::BOTH, + Part::WHOLE, + ColourConversion(), + VideoRange::FULL, + weak_ptr(), + optional(), + false ); - pvf->set_text (PositionImage (sub_image, Position (50, 60))); + pvf->set_text (PositionImage(sub_image, Position(50, 60))); - shared_ptr frame ( - new DCPVideo ( - pvf, - 0, - 24, - 200000000, - RESOLUTION_2K - ) + auto frame = make_shared ( + pvf, + 0, + 24, + 200000000, + Resolution::TWO_K ); - ArrayData locally_encoded = frame->encode_locally (); + auto locally_encoded = frame->encode_locally (); - EncodeServer* server = new EncodeServer (true, 2); + auto server = new EncodeServer (true, 2); - thread* server_thread = new thread (boost::bind (&EncodeServer::run, server)); + auto server_thread = new thread (boost::bind(&EncodeServer::run, server)); /* Let the server get itself ready */ dcpomatic_sleep_seconds (1); @@ -134,12 +131,12 @@ BOOST_AUTO_TEST_CASE (client_server_test_rgb) threads.push_back (new thread (boost::bind (do_remote_encode, frame, description, locally_encoded))); } - for (list::iterator i = threads.begin(); i != threads.end(); ++i) { - (*i)->join (); + for (auto i: threads) { + i->join (); } - for (list::iterator i = threads.begin(); i != threads.end(); ++i) { - delete *i; + for (auto i: threads) { + delete i; } server->stop (); @@ -150,7 +147,7 @@ BOOST_AUTO_TEST_CASE (client_server_test_rgb) BOOST_AUTO_TEST_CASE (client_server_test_yuv) { - shared_ptr image (new Image (AV_PIX_FMT_YUV420P, dcp::Size (1998, 1080), true)); + auto image = make_shared(AV_PIX_FMT_YUV420P, dcp::Size (1998, 1080), true); for (int i = 0; i < image->planes(); ++i) { uint8_t* p = image->data()[i]; @@ -159,7 +156,7 @@ BOOST_AUTO_TEST_CASE (client_server_test_yuv) } } - shared_ptr sub_image (new Image (AV_PIX_FMT_BGRA, dcp::Size (100, 200), true)); + auto sub_image = make_shared(AV_PIX_FMT_BGRA, dcp::Size (100, 200), true); uint8_t* p = sub_image->data()[0]; for (int y = 0; y < 200; ++y) { uint8_t* q = p; @@ -172,42 +169,38 @@ BOOST_AUTO_TEST_CASE (client_server_test_yuv) p += sub_image->stride()[0]; } - LogSwitcher ls (shared_ptr(new FileLog("build/test/client_server_test_yuv.log"))); - - shared_ptr pvf ( - new PlayerVideo ( - shared_ptr (new RawImageProxy (image)), - Crop (), - optional (), - dcp::Size (1998, 1080), - dcp::Size (1998, 1080), - EYES_BOTH, - PART_WHOLE, - ColourConversion(), - VideoRange::FULL, - weak_ptr(), - optional(), - false - ) + LogSwitcher ls (make_shared("build/test/client_server_test_yuv.log")); + + auto pvf = std::make_shared( + std::make_shared(image), + Crop(), + optional(), + dcp::Size(1998, 1080), + dcp::Size(1998, 1080), + Eyes::BOTH, + Part::WHOLE, + ColourConversion(), + VideoRange::FULL, + weak_ptr(), + optional(), + false ); - pvf->set_text (PositionImage (sub_image, Position (50, 60))); + pvf->set_text (PositionImage(sub_image, Position(50, 60))); - shared_ptr frame ( - new DCPVideo ( - pvf, - 0, - 24, - 200000000, - RESOLUTION_2K - ) + auto frame = make_shared( + pvf, + 0, + 24, + 200000000, + Resolution::TWO_K ); - ArrayData locally_encoded = frame->encode_locally (); + auto locally_encoded = frame->encode_locally (); - EncodeServer* server = new EncodeServer (true, 2); + auto server = new EncodeServer (true, 2); - thread* server_thread = new thread (boost::bind (&EncodeServer::run, server)); + auto server_thread = new thread(boost::bind(&EncodeServer::run, server)); /* Let the server get itself ready */ dcpomatic_sleep_seconds (1); @@ -217,15 +210,15 @@ BOOST_AUTO_TEST_CASE (client_server_test_yuv) list threads; for (int i = 0; i < 8; ++i) { - threads.push_back (new thread (boost::bind (do_remote_encode, frame, description, locally_encoded))); + threads.push_back (new thread(boost::bind(do_remote_encode, frame, description, locally_encoded))); } - for (list::iterator i = threads.begin(); i != threads.end(); ++i) { - (*i)->join (); + for (auto i: threads) { + i->join (); } - for (list::iterator i = threads.begin(); i != threads.end(); ++i) { - delete *i; + for (auto i: threads) { + delete i; } server->stop (); @@ -236,7 +229,7 @@ BOOST_AUTO_TEST_CASE (client_server_test_yuv) BOOST_AUTO_TEST_CASE (client_server_test_j2k) { - shared_ptr image (new Image (AV_PIX_FMT_YUV420P, dcp::Size (1998, 1080), true)); + auto image = make_shared(AV_PIX_FMT_YUV420P, dcp::Size (1998, 1080), true); for (int i = 0; i < image->planes(); ++i) { uint8_t* p = image->data()[i]; @@ -245,69 +238,61 @@ BOOST_AUTO_TEST_CASE (client_server_test_j2k) } } - LogSwitcher ls (shared_ptr(new FileLog("build/test/client_server_test_j2k.log"))); - - shared_ptr raw_pvf ( - new PlayerVideo ( - shared_ptr (new RawImageProxy (image)), - Crop (), - optional (), - dcp::Size (1998, 1080), - dcp::Size (1998, 1080), - EYES_BOTH, - PART_WHOLE, - ColourConversion(), - VideoRange::FULL, - weak_ptr(), - optional(), - false - ) + LogSwitcher ls (make_shared("build/test/client_server_test_j2k.log")); + + auto raw_pvf = std::make_shared ( + std::make_shared(image), + Crop(), + optional(), + dcp::Size(1998, 1080), + dcp::Size(1998, 1080), + Eyes::BOTH, + Part::WHOLE, + ColourConversion(), + VideoRange::FULL, + weak_ptr(), + optional(), + false ); - shared_ptr raw_frame ( - new DCPVideo ( - raw_pvf, - 0, - 24, - 200000000, - RESOLUTION_2K - ) + auto raw_frame = make_shared ( + raw_pvf, + 0, + 24, + 200000000, + Resolution::TWO_K ); - ArrayData raw_locally_encoded = raw_frame->encode_locally (); - - shared_ptr j2k_pvf ( - new PlayerVideo ( - shared_ptr (new J2KImageProxy (raw_locally_encoded, dcp::Size (1998, 1080), AV_PIX_FMT_XYZ12LE)), - Crop (), - optional (), - dcp::Size (1998, 1080), - dcp::Size (1998, 1080), - EYES_BOTH, - PART_WHOLE, - PresetColourConversion::all().front().conversion, - VideoRange::FULL, - weak_ptr(), - optional(), - false - ) + auto raw_locally_encoded = raw_frame->encode_locally (); + + auto j2k_pvf = std::make_shared ( + std::make_shared(raw_locally_encoded, dcp::Size(1998, 1080), AV_PIX_FMT_XYZ12LE), + Crop(), + optional(), + dcp::Size(1998, 1080), + dcp::Size(1998, 1080), + Eyes::BOTH, + Part::WHOLE, + PresetColourConversion::all().front().conversion, + VideoRange::FULL, + weak_ptr(), + optional(), + false ); - shared_ptr j2k_frame ( - new DCPVideo ( - j2k_pvf, - 0, - 24, - 200000000, - RESOLUTION_2K - ) + auto j2k_frame = make_shared ( + j2k_pvf, + 0, + 24, + 200000000, + Resolution::TWO_K ); - ArrayData j2k_locally_encoded = j2k_frame->encode_locally (); + auto j2k_locally_encoded = j2k_frame->encode_locally (); - EncodeServer* server = new EncodeServer (true, 2); + auto server = new EncodeServer (true, 2); - thread* server_thread = new thread (boost::bind (&EncodeServer::run, server)); + auto server_thread = new thread (boost::bind (&EncodeServer::run, server)); /* Let the server get itself ready */ dcpomatic_sleep_seconds (1); @@ -317,15 +302,15 @@ BOOST_AUTO_TEST_CASE (client_server_test_j2k) list threads; for (int i = 0; i < 8; ++i) { - threads.push_back (new thread (boost::bind (do_remote_encode, j2k_frame, description, j2k_locally_encoded))); + threads.push_back (new thread(boost::bind(do_remote_encode, j2k_frame, description, j2k_locally_encoded))); } - for (list::iterator i = threads.begin(); i != threads.end(); ++i) { - (*i)->join (); + for (auto i: threads) { + i->join (); } - for (list::iterator i = threads.begin(); i != threads.end(); ++i) { - delete *i; + for (auto i: threads) { + delete i; } server->stop (); diff --git a/test/closed_caption_test.cc b/test/closed_caption_test.cc index 48fc8e05c..31824b443 100644 --- a/test/closed_caption_test.cc +++ b/test/closed_caption_test.cc @@ -39,7 +39,7 @@ BOOST_AUTO_TEST_CASE (closed_caption_test1) film->examine_and_add_content (content); BOOST_REQUIRE (!wait_for_jobs ()); - content->only_text()->set_type (TEXT_CLOSED_CAPTION); + content->only_text()->set_type (TextType::CLOSED_CAPTION); film->make_dcp (); BOOST_REQUIRE (!wait_for_jobs ()); @@ -68,11 +68,11 @@ BOOST_AUTO_TEST_CASE (closed_caption_test2) film->examine_and_add_content (content3); BOOST_REQUIRE (!wait_for_jobs ()); - content1->only_text()->set_type (TEXT_CLOSED_CAPTION); + content1->only_text()->set_type (TextType::CLOSED_CAPTION); content1->only_text()->set_dcp_track (DCPTextTrack("First track", "fr-FR")); - content2->only_text()->set_type (TEXT_CLOSED_CAPTION); + content2->only_text()->set_type (TextType::CLOSED_CAPTION); content2->only_text()->set_dcp_track (DCPTextTrack("Second track", "de-DE")); - content3->only_text()->set_type (TEXT_CLOSED_CAPTION); + content3->only_text()->set_type (TextType::CLOSED_CAPTION); content3->only_text()->set_dcp_track (DCPTextTrack("Third track", "it-IT")); film->make_dcp (); diff --git a/test/create_cli_test.cc b/test/create_cli_test.cc index 31c8ae877..9010dae21 100644 --- a/test/create_cli_test.cc +++ b/test/create_cli_test.cc @@ -130,18 +130,18 @@ BOOST_AUTO_TEST_CASE (create_cli_test) BOOST_CHECK_EQUAL (*cc.output_dir, "flaps"); BOOST_REQUIRE_EQUAL (cc.content.size(), 3U); BOOST_CHECK_EQUAL (cc.content[0].path, "fred"); - BOOST_CHECK_EQUAL (cc.content[0].frame_type, VIDEO_FRAME_TYPE_2D); + BOOST_CHECK_EQUAL (cc.content[0].frame_type, VideoFrameType::TWO_D); BOOST_CHECK_EQUAL (cc.content[1].path, "jim"); - BOOST_CHECK_EQUAL (cc.content[1].frame_type, VIDEO_FRAME_TYPE_2D); + BOOST_CHECK_EQUAL (cc.content[1].frame_type, VideoFrameType::TWO_D); BOOST_CHECK_EQUAL (cc.content[2].path, "sheila"); - BOOST_CHECK_EQUAL (cc.content[2].frame_type, VIDEO_FRAME_TYPE_2D); + BOOST_CHECK_EQUAL (cc.content[2].frame_type, VideoFrameType::TWO_D); cc = run ("dcpomatic2_create --left-eye left.mp4 --right-eye right.mp4"); BOOST_REQUIRE_EQUAL (cc.content.size(), 2U); BOOST_CHECK_EQUAL (cc.content[0].path, "left.mp4"); - BOOST_CHECK_EQUAL (cc.content[0].frame_type, VIDEO_FRAME_TYPE_3D_LEFT); + BOOST_CHECK_EQUAL (cc.content[0].frame_type, VideoFrameType::THREE_D_LEFT); BOOST_CHECK_EQUAL (cc.content[1].path, "right.mp4"); - BOOST_CHECK_EQUAL (cc.content[1].frame_type, VIDEO_FRAME_TYPE_3D_RIGHT); + BOOST_CHECK_EQUAL (cc.content[1].frame_type, VideoFrameType::THREE_D_RIGHT); BOOST_CHECK_EQUAL (cc.fourk, false); cc = run ("dcpomatic2_create --fourk foo.mp4"); diff --git a/test/digest_test.cc b/test/digest_test.cc index ba73461bf..bfa8e62f6 100644 --- a/test/digest_test.cc +++ b/test/digest_test.cc @@ -69,7 +69,7 @@ BOOST_AUTO_TEST_CASE (digest_test) film->examine_and_add_content (r); film->examine_and_add_content (g); film->examine_and_add_content (b); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); BOOST_REQUIRE (!wait_for_jobs()); BOOST_CHECK (Config::instance()->master_encoding_threads() > 1); diff --git a/test/ffmpeg_encoder_test.cc b/test/ffmpeg_encoder_test.cc index 1147b4d07..7a967b200 100644 --- a/test/ffmpeg_encoder_test.cc +++ b/test/ffmpeg_encoder_test.cc @@ -45,16 +45,16 @@ ffmpeg_content_test (int number, boost::filesystem::path content, ExportFormat f string name = "ffmpeg_encoder_"; string extension; switch (format) { - case EXPORT_FORMAT_H264_AAC: + case ExportFormat::H264_AAC: name += "h264"; extension = "mp4"; break; - case EXPORT_FORMAT_PRORES: + case ExportFormat::PRORES: name += "prores"; extension = "mov"; break; - case EXPORT_FORMAT_H264_PCM: - case EXPORT_FORMAT_SUBTITLES_DCP: + case ExportFormat::H264_PCM: + case ExportFormat::SUBTITLES_DCP: BOOST_REQUIRE (false); } @@ -78,25 +78,25 @@ ffmpeg_content_test (int number, boost::filesystem::path content, ExportFormat f /** Red / green / blue MP4 -> Prores */ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_prores_test1) { - ffmpeg_content_test (1, "test/data/test.mp4", EXPORT_FORMAT_PRORES); + ffmpeg_content_test (1, "test/data/test.mp4", ExportFormat::PRORES); } /** Dolby Aurora trailer VOB -> Prores */ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_prores_test2) { - ffmpeg_content_test (2, TestPaths::private_data() / "dolby_aurora.vob", EXPORT_FORMAT_PRORES); + ffmpeg_content_test (2, TestPaths::private_data() / "dolby_aurora.vob", ExportFormat::PRORES); } /** Sintel trailer -> Prores */ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_prores_test3) { - ffmpeg_content_test (3, TestPaths::private_data() / "Sintel_Trailer1.480p.DivX_Plus_HD.mkv", EXPORT_FORMAT_PRORES); + ffmpeg_content_test (3, TestPaths::private_data() / "Sintel_Trailer1.480p.DivX_Plus_HD.mkv", ExportFormat::PRORES); } /** Big Buck Bunny trailer -> Prores */ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_prores_test4) { - ffmpeg_content_test (4, TestPaths::private_data() / "big_buck_bunny_trailer_480p.mov", EXPORT_FORMAT_PRORES); + ffmpeg_content_test (4, TestPaths::private_data() / "big_buck_bunny_trailer_480p.mov", ExportFormat::PRORES); } /** Still image -> Prores */ @@ -115,7 +115,7 @@ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_prores_test5) film->write_metadata (); shared_ptr job (new TranscodeJob (film)); - FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test5.mov", EXPORT_FORMAT_PRORES, false, false, false, 23); + FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test5.mov", ExportFormat::PRORES, false, false, false, 23); encoder.go (); } @@ -136,7 +136,7 @@ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_prores_test6) film->write_metadata(); shared_ptr job (new TranscodeJob (film)); - FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test6.mov", EXPORT_FORMAT_PRORES, false, false, false, 23); + FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test6.mov", ExportFormat::PRORES, false, false, false, 23); encoder.go (); } @@ -160,14 +160,14 @@ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_prores_test7) s->only_text()->set_effect_colour (dcp::Colour (0, 255, 255)); shared_ptr job (new TranscodeJob (film)); - FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test7.mov", EXPORT_FORMAT_PRORES, false, false, false, 23); + FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test7.mov", ExportFormat::PRORES, false, false, false, 23); encoder.go (); } /** Red / green / blue MP4 -> H264 */ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_h264_test1) { - ffmpeg_content_test(1, "test/data/test.mp4", EXPORT_FORMAT_H264_AAC); + ffmpeg_content_test(1, "test/data/test.mp4", ExportFormat::H264_AAC); } /** Just subtitles -> H264 */ @@ -187,7 +187,7 @@ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_h264_test2) film->write_metadata(); shared_ptr job (new TranscodeJob (film)); - FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_h264_test2.mp4", EXPORT_FORMAT_H264_AAC, false, false, false, 23); + FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_h264_test2.mp4", ExportFormat::H264_AAC, false, false, false, 23); encoder.go (); } @@ -212,7 +212,7 @@ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_h264_test3) film->write_metadata(); shared_ptr job (new TranscodeJob (film)); - FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_h264_test3.mp4", EXPORT_FORMAT_H264_AAC, false, false, false, 23); + FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_h264_test3.mp4", ExportFormat::H264_AAC, false, false, false, 23); encoder.go (); } @@ -226,7 +226,7 @@ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_h264_test4) film->set_container(Ratio::from_id("185")); shared_ptr job(new TranscodeJob(film)); - FFmpegEncoder encoder(film, job, "build/test/ffmpeg_encoder_h264_test4.mp4", EXPORT_FORMAT_H264_AAC, false, false, false, 23); + FFmpegEncoder encoder(film, job, "build/test/ffmpeg_encoder_h264_test4.mp4", ExportFormat::H264_AAC, false, false, false, 23); encoder.go(); } @@ -280,7 +280,7 @@ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_h264_test5) Rs->audio->set_mapping (map); shared_ptr job (new TranscodeJob (film)); - FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_h264_test5.mp4", EXPORT_FORMAT_H264_AAC, true, false, false, 23); + FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_h264_test5.mp4", ExportFormat::H264_AAC, true, false, false, 23); encoder.go (); check_ffmpeg ("build/test/ffmpeg_encoder_h264_test5.mp4", "test/data/ffmpeg_encoder_h264_test5.mp4", 1); @@ -308,7 +308,7 @@ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_h264_test6) } shared_ptr job (new TranscodeJob (film2)); - FFmpegEncoder encoder (film2, job, "build/test/ffmpeg_encoder_h264_test6_vf.mp4", EXPORT_FORMAT_H264_AAC, true, false, false, 23); + FFmpegEncoder encoder (film2, job, "build/test/ffmpeg_encoder_h264_test6_vf.mp4", ExportFormat::H264_AAC, true, false, false, 23); encoder.go (); } @@ -321,9 +321,9 @@ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_h264_test7) shared_ptr R (shared_ptr(new ImageContent(TestPaths::private_data() / "bbc405.png"))); film->examine_and_add_content (R); BOOST_REQUIRE (!wait_for_jobs()); - L->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT); + L->video->set_frame_type (VideoFrameType::THREE_D_LEFT); L->set_position (film, DCPTime()); - R->video->set_frame_type (VIDEO_FRAME_TYPE_3D_RIGHT); + R->video->set_frame_type (VideoFrameType::THREE_D_RIGHT); R->set_position (film, DCPTime()); film->set_three_d (true); film->make_dcp (); @@ -335,7 +335,7 @@ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_h264_test7) BOOST_REQUIRE (!wait_for_jobs()); shared_ptr job (new TranscodeJob (film2)); - FFmpegEncoder encoder (film2, job, "build/test/ffmpeg_encoder_h264_test7.mp4", EXPORT_FORMAT_H264_AAC, true, false, false, 23); + FFmpegEncoder encoder (film2, job, "build/test/ffmpeg_encoder_h264_test7.mp4", ExportFormat::H264_AAC, true, false, false, 23); encoder.go (); } @@ -349,7 +349,7 @@ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_h264_test8) film->set_audio_channels (2); shared_ptr job(new TranscodeJob(film)); - FFmpegEncoder encoder(film, job, "build/test/ffmpeg_encoder_h264_test8.mp4", EXPORT_FORMAT_H264_AAC, true, false, false, 23); + FFmpegEncoder encoder(film, job, "build/test/ffmpeg_encoder_h264_test8.mp4", ExportFormat::H264_AAC, true, false, false, 23); encoder.go(); } @@ -370,6 +370,6 @@ BOOST_AUTO_TEST_CASE (ffmpeg_encoder_h264_test9) film->write_metadata (); shared_ptr job (new TranscodeJob (film)); - FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test9.mov", EXPORT_FORMAT_H264_AAC, false, false, false, 23); + FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test9.mov", ExportFormat::H264_AAC, false, false, false, 23); encoder.go (); } diff --git a/test/file_naming_test.cc b/test/file_naming_test.cc index 6fce51060..ef43316d2 100644 --- a/test/file_naming_test.cc +++ b/test/file_naming_test.cc @@ -82,7 +82,7 @@ BOOST_AUTO_TEST_CASE (file_naming_test) b->set_video_frame_rate (24); b->video->set_length (24); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); film->write_metadata (); film->make_dcp (); BOOST_REQUIRE (!wait_for_jobs()); @@ -139,7 +139,7 @@ BOOST_AUTO_TEST_CASE (file_naming_test2) b->set_video_frame_rate (24); b->video->set_length (24); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); film->make_dcp (); BOOST_REQUIRE (!wait_for_jobs()); diff --git a/test/hints_test.cc b/test/hints_test.cc index 1be36193a..2aec81693 100644 --- a/test/hints_test.cc +++ b/test/hints_test.cc @@ -85,7 +85,7 @@ check (TextType type, string name, optional expected_hint = optional film = new_test_film2 (name); shared_ptr content = content_factory("test/data/" + name + ".srt").front(); - content->text.front()->set_type (TEXT_OPEN_SUBTITLE); + content->text.front()->set_type (TextType::OPEN_SUBTITLE); for (int i = 1; i < 512; ++i) { shared_ptr font(new dcpomatic::Font(String::compose("font_%1", i))); font->set_file ("test/data/LiberationSans-Regular.ttf"); @@ -195,7 +195,7 @@ BOOST_AUTO_TEST_CASE (hint_closed_caption_xml_too_big) fclose (ccap); shared_ptr content = content_factory("build/test/" + name + ".srt").front(); - content->text.front()->set_type (TEXT_CLOSED_CAPTION); + content->text.front()->set_type (TextType::CLOSED_CAPTION); film->examine_and_add_content (content); BOOST_REQUIRE (!wait_for_jobs()); vector hints = get_hints (film); diff --git a/test/isdcf_name_test.cc b/test/isdcf_name_test.cc index 3465db750..dc2263206 100644 --- a/test/isdcf_name_test.cc +++ b/test/isdcf_name_test.cc @@ -68,7 +68,7 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test) film->set_container (Ratio::from_id ("239")); film->_isdcf_date = boost::gregorian::date (2014, boost::gregorian::Jul, 4); film->set_audio_channels (1); - film->set_resolution (RESOLUTION_4K); + film->set_resolution (Resolution::FOUR_K); film->set_subtitle_language (dcp::LanguageTag("fr-FR")); shared_ptr text = content_factory("test/data/subrip.srt").front(); BOOST_REQUIRE_EQUAL (text->text.size(), 1U); diff --git a/test/optimise_stills_test.cc b/test/optimise_stills_test.cc index d0f2aaa6b..cec864e0f 100644 --- a/test/optimise_stills_test.cc +++ b/test/optimise_stills_test.cc @@ -97,7 +97,7 @@ BOOST_AUTO_TEST_CASE (optimise_stills_test2) shared_ptr content = content_factory("test/data/flat_red.png").front (); film->examine_and_add_content (content); BOOST_REQUIRE (!wait_for_jobs ()); - content->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT_RIGHT); + content->video->set_frame_type (VideoFrameType::THREE_D_LEFT_RIGHT); film->set_three_d (true); film->make_dcp (); BOOST_REQUIRE (!wait_for_jobs ()); diff --git a/test/player_test.cc b/test/player_test.cc index 96f75f098..9194b84bb 100644 --- a/test/player_test.cc +++ b/test/player_test.cc @@ -312,7 +312,7 @@ BOOST_AUTO_TEST_CASE (player_ignore_video_and_audio_test) shared_ptr text = content_factory("test/data/subrip.srt").front(); film->examine_and_add_content (text); BOOST_REQUIRE (!wait_for_jobs()); - text->only_text()->set_type (TEXT_CLOSED_CAPTION); + text->only_text()->set_type (TextType::CLOSED_CAPTION); text->only_text()->set_use (true); shared_ptr player (new Player(film)); @@ -375,9 +375,9 @@ BOOST_AUTO_TEST_CASE (player_3d_test_1) film->examine_and_add_content (right); BOOST_REQUIRE (!wait_for_jobs()); - left->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT); + left->video->set_frame_type (VideoFrameType::THREE_D_LEFT); left->set_position (film, DCPTime()); - right->video->set_frame_type (VIDEO_FRAME_TYPE_3D_RIGHT); + right->video->set_frame_type (VideoFrameType::THREE_D_RIGHT); right->set_position (film, DCPTime()); film->set_three_d (true); @@ -404,9 +404,9 @@ BOOST_AUTO_TEST_CASE (player_3d_test_2) film->examine_and_add_content (right); BOOST_REQUIRE (!wait_for_jobs()); - left->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT); + left->video->set_frame_type (VideoFrameType::THREE_D_LEFT); left->set_position (film, DCPTime()); - right->video->set_frame_type (VIDEO_FRAME_TYPE_3D_RIGHT); + right->video->set_frame_type (VideoFrameType::THREE_D_RIGHT); right->set_position (film, DCPTime()); film->set_three_d (true); diff --git a/test/recover_test.cc b/test/recover_test.cc index 13cb37a07..bdbd6f273 100644 --- a/test/recover_test.cc +++ b/test/recover_test.cc @@ -36,8 +36,9 @@ #include using std::cout; -using std::string; +using std::make_shared; using std::shared_ptr; +using std::string; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; #endif @@ -85,15 +86,15 @@ BOOST_AUTO_TEST_CASE (recover_test_2d) BOOST_AUTO_TEST_CASE (recover_test_3d, * boost::unit_test::depends_on("recover_test_2d")) { - shared_ptr film = new_test_film ("recover_test_3d"); + auto film = new_test_film ("recover_test_3d"); film->set_interop (false); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("FTR")); film->set_container (Ratio::from_id ("185")); film->set_name ("recover_test"); film->set_three_d (true); - shared_ptr content (new ImageContent("test/data/3d_test")); - content->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT_RIGHT); + auto content = make_shared("test/data/3d_test"); + content->video->set_frame_type (VideoFrameType::THREE_D_LEFT_RIGHT); film->examine_and_add_content (content); BOOST_REQUIRE (!wait_for_jobs()); @@ -112,8 +113,8 @@ BOOST_AUTO_TEST_CASE (recover_test_3d, * boost::unit_test::depends_on("recover_t film->make_dcp (); BOOST_REQUIRE (!wait_for_jobs()); - shared_ptr A (new dcp::StereoPictureAsset ("build/test/recover_test_3d/original.mxf")); - shared_ptr B (new dcp::StereoPictureAsset (video)); + auto A = make_shared("build/test/recover_test_3d/original.mxf"); + auto B = make_shared(video); dcp::EqualityOptions eq; BOOST_CHECK (A->equals (B, eq, boost::bind (¬e, _1, _2))); @@ -122,7 +123,7 @@ BOOST_AUTO_TEST_CASE (recover_test_3d, * boost::unit_test::depends_on("recover_t BOOST_AUTO_TEST_CASE (recover_test_2d_encrypted, * boost::unit_test::depends_on("recover_test_3d")) { - shared_ptr film = new_test_film ("recover_test_2d_encrypted"); + auto film = new_test_film ("recover_test_2d_encrypted"); film->set_interop (false); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("FTR")); film->set_container (Ratio::from_id ("185")); @@ -130,7 +131,7 @@ BOOST_AUTO_TEST_CASE (recover_test_2d_encrypted, * boost::unit_test::depends_on( film->set_encrypted (true); film->_key = dcp::Key("eafcb91c9f5472edf01f3a2404c57258"); - shared_ptr content (new FFmpegContent("test/data/count300bd24.m2ts")); + auto content = make_shared("test/data/count300bd24.m2ts"); film->examine_and_add_content (content); BOOST_REQUIRE (!wait_for_jobs()); @@ -150,9 +151,9 @@ BOOST_AUTO_TEST_CASE (recover_test_2d_encrypted, * boost::unit_test::depends_on( film->make_dcp (); BOOST_REQUIRE (!wait_for_jobs()); - shared_ptr A (new dcp::MonoPictureAsset ("build/test/recover_test_2d_encrypted/original.mxf")); + auto A = make_shared("build/test/recover_test_2d_encrypted/original.mxf"); A->set_key (film->key ()); - shared_ptr B (new dcp::MonoPictureAsset (video)); + auto B = make_shared(video); B->set_key (film->key ()); dcp::EqualityOptions eq; diff --git a/test/reel_writer_test.cc b/test/reel_writer_test.cc index 1223a217a..9e567fb2a 100644 --- a/test/reel_writer_test.cc +++ b/test/reel_writer_test.cc @@ -50,50 +50,50 @@ static bool equal (dcp::FrameInfo a, ReelWriter const & writer, shared_ptr film = new_test_film2 ("write_frame_info_test"); + auto film = new_test_film2 ("write_frame_info_test"); dcpomatic::DCPTimePeriod const period (dcpomatic::DCPTime(0), dcpomatic::DCPTime(96000)); ReelWriter writer (film, period, shared_ptr(), 0, 1, false); /* Write the first one */ dcp::FrameInfo info1(0, 123, "12345678901234567890123456789012"); - writer.write_frame_info (0, EYES_LEFT, info1); + writer.write_frame_info (0, Eyes::LEFT, info1); { - shared_ptr file = film->info_file_handle(period, true); - BOOST_CHECK (equal(info1, writer, file, 0, EYES_LEFT)); + auto file = film->info_file_handle(period, true); + BOOST_CHECK (equal(info1, writer, file, 0, Eyes::LEFT)); } /* Write some more */ dcp::FrameInfo info2(596, 14921, "123acb789f1234ae782012n456339522"); - writer.write_frame_info (5, EYES_RIGHT, info2); + writer.write_frame_info (5, Eyes::RIGHT, info2); { - shared_ptr file = film->info_file_handle(period, true); - BOOST_CHECK (equal(info1, writer, file, 0, EYES_LEFT)); - BOOST_CHECK (equal(info2, writer, file, 5, EYES_RIGHT)); + auto file = film->info_file_handle(period, true); + BOOST_CHECK (equal(info1, writer, file, 0, Eyes::LEFT)); + BOOST_CHECK (equal(info2, writer, file, 5, Eyes::RIGHT)); } dcp::FrameInfo info3(12494, 99157123, "xxxxyyyyabc12356ffsfdsf456339522"); - writer.write_frame_info (10, EYES_LEFT, info3); + writer.write_frame_info (10, Eyes::LEFT, info3); { - shared_ptr file = film->info_file_handle(period, true); - BOOST_CHECK (equal(info1, writer, file, 0, EYES_LEFT)); - BOOST_CHECK (equal(info2, writer, file, 5, EYES_RIGHT)); - BOOST_CHECK (equal(info3, writer, file, 10, EYES_LEFT)); + auto file = film->info_file_handle(period, true); + BOOST_CHECK (equal(info1, writer, file, 0, Eyes::LEFT)); + BOOST_CHECK (equal(info2, writer, file, 5, Eyes::RIGHT)); + BOOST_CHECK (equal(info3, writer, file, 10, Eyes::LEFT)); } /* Overwrite one */ dcp::FrameInfo info4(55512494, 123599157123, "ABCDEFGyabc12356ffsfdsf4563395ZZ"); - writer.write_frame_info (5, EYES_RIGHT, info4); + writer.write_frame_info (5, Eyes::RIGHT, info4); { - shared_ptr file = film->info_file_handle(period, true); - BOOST_CHECK (equal(info1, writer, file, 0, EYES_LEFT)); - BOOST_CHECK (equal(info4, writer, file, 5, EYES_RIGHT)); - BOOST_CHECK (equal(info3, writer, file, 10, EYES_LEFT)); + auto file = film->info_file_handle(period, true); + BOOST_CHECK (equal(info1, writer, file, 0, Eyes::LEFT)); + BOOST_CHECK (equal(info4, writer, file, 5, Eyes::RIGHT)); + BOOST_CHECK (equal(info3, writer, file, 10, Eyes::LEFT)); } } @@ -103,11 +103,11 @@ BOOST_AUTO_TEST_CASE (write_frame_info_test) BOOST_AUTO_TEST_CASE (reel_reuse_video_test) { /* Make a DCP */ - shared_ptr film = new_test_film2 ("reel_reuse_video_test"); - shared_ptr video = content_factory("test/data/flat_red.png").front(); + auto film = new_test_film2 ("reel_reuse_video_test"); + auto video = content_factory("test/data/flat_red.png").front(); film->examine_and_add_content (video); BOOST_REQUIRE (!wait_for_jobs()); - shared_ptr audio = content_factory("test/data/white.wav").front(); + auto audio = content_factory("test/data/white.wav").front(); film->examine_and_add_content (audio); BOOST_REQUIRE (!wait_for_jobs()); film->make_dcp (); diff --git a/test/reels_test.cc b/test/reels_test.cc index cf8dc3e2e..402005339 100644 --- a/test/reels_test.cc +++ b/test/reels_test.cc @@ -41,28 +41,29 @@ using std::cout; using std::vector; using std::string; using std::shared_ptr; +using std::make_shared; using boost::function; using namespace dcpomatic; /** Test Film::reels() */ BOOST_AUTO_TEST_CASE (reels_test1) { - shared_ptr film = new_test_film ("reels_test1"); + auto film = new_test_film ("reels_test1"); film->set_container (Ratio::from_id ("185")); - shared_ptr A (new FFmpegContent("test/data/test.mp4")); + auto A = make_shared("test/data/test.mp4"); film->examine_and_add_content (A); - shared_ptr B (new FFmpegContent("test/data/test.mp4")); + auto B = make_shared("test/data/test.mp4"); film->examine_and_add_content (B); BOOST_REQUIRE (!wait_for_jobs()); BOOST_CHECK_EQUAL (A->full_length(film).get(), 288000); - film->set_reel_type (REELTYPE_SINGLE); - list r = film->reels (); + film->set_reel_type (ReelType::SINGLE); + auto r = film->reels (); BOOST_CHECK_EQUAL (r.size(), 1U); BOOST_CHECK_EQUAL (r.front().from.get(), 0); BOOST_CHECK_EQUAL (r.front().to.get(), 288000 * 2); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); r = film->reels (); BOOST_CHECK_EQUAL (r.size(), 2U); BOOST_CHECK_EQUAL (r.front().from.get(), 0); @@ -71,12 +72,12 @@ BOOST_AUTO_TEST_CASE (reels_test1) BOOST_CHECK_EQUAL (r.back().to.get(), 288000 * 2); film->set_j2k_bandwidth (100000000); - film->set_reel_type (REELTYPE_BY_LENGTH); + film->set_reel_type (ReelType::BY_LENGTH); /* This is just over 2.5s at 100Mbit/s; should correspond to 60 frames */ film->set_reel_length (31253154); r = film->reels (); BOOST_CHECK_EQUAL (r.size(), 3U); - list::const_iterator i = r.begin (); + auto i = r.begin (); BOOST_CHECK_EQUAL (i->from.get(), 0); BOOST_CHECK_EQUAL (i->to.get(), DCPTime::from_frames(60, 24).get()); ++i; @@ -92,7 +93,7 @@ BOOST_AUTO_TEST_CASE (reels_test1) */ BOOST_AUTO_TEST_CASE (reels_test2) { - shared_ptr film = new_test_film ("reels_test2"); + auto film = new_test_film ("reels_test2"); film->set_name ("reels_test2"); film->set_container (Ratio::from_id ("185")); film->set_interop (false); @@ -119,7 +120,7 @@ BOOST_AUTO_TEST_CASE (reels_test2) c->video->set_length (24); } - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); BOOST_CHECK_EQUAL (film->reels().size(), 3U); BOOST_REQUIRE (!wait_for_jobs()); @@ -132,15 +133,15 @@ BOOST_AUTO_TEST_CASE (reels_test2) film2->set_name ("reels_test2b"); film2->set_container (Ratio::from_id ("185")); film2->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); - film2->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film2->set_reel_type (ReelType::BY_VIDEO_CONTENT); - shared_ptr c (new DCPContent(film->dir(film->dcp_name()))); + auto c = make_shared(film->dir(film->dcp_name())); film2->examine_and_add_content (c); BOOST_REQUIRE (!wait_for_jobs ()); - list r = film2->reels (); + auto r = film2->reels (); BOOST_CHECK_EQUAL (r.size(), 3U); - list::const_iterator i = r.begin (); + auto i = r.begin (); BOOST_CHECK_EQUAL (i->from.get(), 0); BOOST_CHECK_EQUAL (i->to.get(), 96000); ++i; @@ -157,26 +158,26 @@ BOOST_AUTO_TEST_CASE (reels_test2) BOOST_REQUIRE (!wait_for_jobs()); } -/** Check that REELTYPE_BY_VIDEO_CONTENT adds an extra reel, if necessary, at the end +/** Check that ReelType::BY_VIDEO_CONTENT adds an extra reel, if necessary, at the end * of all the video content to mop up anything afterward. */ BOOST_AUTO_TEST_CASE (reels_test3) { - shared_ptr film = new_test_film ("reels_test3"); + auto film = new_test_film ("reels_test3"); film->set_name ("reels_test3"); film->set_container (Ratio::from_id ("185")); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); - shared_ptr dcp (new DCPContent("test/data/reels_test2")); + auto dcp = make_shared("test/data/reels_test2"); film->examine_and_add_content (dcp); - shared_ptr sub (new StringTextFileContent("test/data/subrip.srt")); + auto sub = make_shared("test/data/subrip.srt"); film->examine_and_add_content (sub); BOOST_REQUIRE (!wait_for_jobs()); - list reels = film->reels(); + auto reels = film->reels(); BOOST_REQUIRE_EQUAL (reels.size(), 4U); - list::const_iterator i = reels.begin (); + auto i = reels.begin (); BOOST_CHECK_EQUAL (i->from.get(), 0); BOOST_CHECK_EQUAL (i->to.get(), 96000); ++i; @@ -195,11 +196,11 @@ BOOST_AUTO_TEST_CASE (reels_test3) */ BOOST_AUTO_TEST_CASE (reels_test4) { - shared_ptr film = new_test_film ("reels_test4"); + auto film = new_test_film ("reels_test4"); film->set_name ("reels_test4"); film->set_container (Ratio::from_id ("185")); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); film->set_interop (false); /* 4 piece of 1s-long content */ @@ -215,9 +216,9 @@ BOOST_AUTO_TEST_CASE (reels_test4) film->examine_and_add_content (subs); BOOST_REQUIRE (!wait_for_jobs()); - list reels = film->reels(); + auto reels = film->reels(); BOOST_REQUIRE_EQUAL (reels.size(), 4U); - list::const_iterator i = reels.begin (); + auto i = reels.begin (); BOOST_CHECK_EQUAL (i->from.get(), 0); BOOST_CHECK_EQUAL (i->to.get(), 96000); ++i; @@ -238,7 +239,7 @@ BOOST_AUTO_TEST_CASE (reels_test4) BOOST_AUTO_TEST_CASE (reels_test5) { - shared_ptr film = new_test_film ("reels_test5"); + auto film = new_test_film ("reels_test5"); film->set_sequence (false); shared_ptr dcp (new DCPContent("test/data/reels_test4")); film->examine_and_add_content (dcp); @@ -248,9 +249,9 @@ BOOST_AUTO_TEST_CASE (reels_test5) dcp->set_position(film, DCPTime(2123)); { - list p = dcp->reels (film); + auto p = dcp->reels (film); BOOST_REQUIRE_EQUAL (p.size(), 4U); - list::const_iterator i = p.begin(); + auto i = p.begin(); BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 0), DCPTime(4000 + 96000))); BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 96000), DCPTime(4000 + 192000))); BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 192000), DCPTime(4000 + 288000))); @@ -259,9 +260,9 @@ BOOST_AUTO_TEST_CASE (reels_test5) { dcp->set_trim_start (ContentTime::from_seconds (0.5)); - list p = dcp->reels (film); + auto p = dcp->reels (film); BOOST_REQUIRE_EQUAL (p.size(), 4U); - list::const_iterator i = p.begin(); + auto i = p.begin(); BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 0), DCPTime(4000 + 48000))); BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 48000), DCPTime(4000 + 144000))); BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 144000), DCPTime(4000 + 240000))); @@ -270,9 +271,9 @@ BOOST_AUTO_TEST_CASE (reels_test5) { dcp->set_trim_end (ContentTime::from_seconds (0.5)); - list p = dcp->reels (film); + auto p = dcp->reels (film); BOOST_REQUIRE_EQUAL (p.size(), 4U); - list::const_iterator i = p.begin(); + auto i = p.begin(); BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 0), DCPTime(4000 + 48000))); BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 48000), DCPTime(4000 + 144000))); BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 144000), DCPTime(4000 + 240000))); @@ -281,9 +282,9 @@ BOOST_AUTO_TEST_CASE (reels_test5) { dcp->set_trim_start (ContentTime::from_seconds (1.5)); - list p = dcp->reels (film); + auto p = dcp->reels (film); BOOST_REQUIRE_EQUAL (p.size(), 3U); - list::const_iterator i = p.begin(); + auto i = p.begin(); BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 0), DCPTime(4000 + 48000))); BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 48000), DCPTime(4000 + 144000))); BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 144000), DCPTime(4000 + 192000))); @@ -293,7 +294,7 @@ BOOST_AUTO_TEST_CASE (reels_test5) /** Check reel split with a muxed video/audio source */ BOOST_AUTO_TEST_CASE (reels_test6) { - shared_ptr film = new_test_film ("reels_test6"); + auto film = new_test_film ("reels_test6"); film->set_name ("reels_test6"); film->set_container (Ratio::from_id ("185")); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); @@ -302,7 +303,7 @@ BOOST_AUTO_TEST_CASE (reels_test6) BOOST_REQUIRE (!wait_for_jobs ()); film->set_j2k_bandwidth (100000000); - film->set_reel_type (REELTYPE_BY_LENGTH); + film->set_reel_type (ReelType::BY_LENGTH); /* This is just over 2.5s at 100Mbit/s; should correspond to 60 frames */ film->set_reel_length (31253154); film->make_dcp (); @@ -310,24 +311,24 @@ BOOST_AUTO_TEST_CASE (reels_test6) } /** Check the case where the last bit of audio hangs over the end of the video - * and we are using REELTYPE_BY_VIDEO_CONTENT. + * and we are using ReelType::BY_VIDEO_CONTENT. */ BOOST_AUTO_TEST_CASE (reels_test7) { - shared_ptr film = new_test_film ("reels_test7"); + auto film = new_test_film ("reels_test7"); film->set_name ("reels_test7"); film->set_container (Ratio::from_id ("185")); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); - shared_ptr A = content_factory("test/data/flat_red.png").front(); + auto A = content_factory("test/data/flat_red.png").front(); film->examine_and_add_content (A); BOOST_REQUIRE (!wait_for_jobs ()); - shared_ptr B = content_factory("test/data/awkward_length.wav").front(); + auto B = content_factory("test/data/awkward_length.wav").front(); film->examine_and_add_content (B); BOOST_REQUIRE (!wait_for_jobs ()); film->set_video_frame_rate (24); A->video->set_length (2 * 24); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); BOOST_REQUIRE_EQUAL (film->reels().size(), 2U); BOOST_CHECK (film->reels().front() == DCPTimePeriod(DCPTime(0), DCPTime::from_frames(2 * 24, 24))); BOOST_CHECK (film->reels().back() == DCPTimePeriod(DCPTime::from_frames(2 * 24, 24), DCPTime::from_frames(3 * 24 + 1, 24))); @@ -343,7 +344,7 @@ BOOST_AUTO_TEST_CASE (reels_test8) film->set_name ("reels_test8"); film->set_container (Ratio::from_id ("185")); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); - shared_ptr A (new FFmpegContent("test/data/test2.mp4")); + auto A = make_shared("test/data/test2.mp4"); film->examine_and_add_content (A); BOOST_REQUIRE (!wait_for_jobs ()); @@ -371,7 +372,7 @@ BOOST_AUTO_TEST_CASE (reels_test9) B->set_reference_video(true); B->set_reference_audio(true); BOOST_REQUIRE(!wait_for_jobs()); - film2->set_reel_type(REELTYPE_BY_VIDEO_CONTENT); + film2->set_reel_type(ReelType::BY_VIDEO_CONTENT); film2->write_metadata(); film2->make_dcp(); BOOST_REQUIRE(!wait_for_jobs()); @@ -397,7 +398,7 @@ BOOST_AUTO_TEST_CASE (reels_test10) BOOST_REQUIRE (!wait_for_jobs()); B->video->set_length (5 * 24); - ov->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + ov->set_reel_type (ReelType::BY_VIDEO_CONTENT); ov->make_dcp (); BOOST_REQUIRE (!wait_for_jobs()); ov->write_metadata (); @@ -407,7 +408,7 @@ BOOST_AUTO_TEST_CASE (reels_test10) shared_ptr ov_dcp(new DCPContent(ov->dir(ov->dcp_name()))); vf->examine_and_add_content (ov_dcp); BOOST_REQUIRE (!wait_for_jobs()); - vf->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + vf->set_reel_type (ReelType::BY_VIDEO_CONTENT); ov_dcp->set_reference_video (true); ov_dcp->set_reference_audio (true); vf->examine_and_add_content (content_factory("test/data/15s.srt").front()); @@ -418,7 +419,7 @@ BOOST_AUTO_TEST_CASE (reels_test10) vf->write_metadata (); } -/** Another reels error; REELTYPE_BY_VIDEO_CONTENT when the first content is not +/** Another reels error; ReelType::BY_VIDEO_CONTENT when the first content is not * at time 0. */ BOOST_AUTO_TEST_CASE (reels_test11) @@ -431,7 +432,7 @@ BOOST_AUTO_TEST_CASE (reels_test11) A->video->set_length (240); A->set_video_frame_rate (24); A->set_position (film, DCPTime::from_seconds(1)); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); film->make_dcp (); BOOST_REQUIRE (!wait_for_jobs()); BOOST_CHECK_EQUAL (A->position().get(), DCPTime::from_seconds(1).get()); @@ -452,7 +453,7 @@ BOOST_AUTO_TEST_CASE (reels_test12) { shared_ptr film = new_test_film2 ("reels_test12"); film->set_video_frame_rate (24); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); film->set_sequence (false); shared_ptr A(new FFmpegContent("test/data/flat_red.png")); @@ -531,13 +532,13 @@ BOOST_AUTO_TEST_CASE (reels_should_not_be_short1) } /** Leaving less than 1 second's gap between two pieces of content with - * REELTYPE_BY_VIDEO_CONTENT should not make a <1s reel. + * ReelType::BY_VIDEO_CONTENT should not make a <1s reel. */ BOOST_AUTO_TEST_CASE (reels_should_not_be_short2) { shared_ptr film = new_test_film2 ("reels_should_not_be_short2"); film->set_video_frame_rate (24); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); shared_ptr A(new FFmpegContent("test/data/flat_red.png")); film->examine_and_add_content (A); @@ -560,14 +561,14 @@ BOOST_AUTO_TEST_CASE (reels_should_not_be_short2) BOOST_REQUIRE (notes.empty()); } -/** Setting REELTYPE_BY_LENGTH and using a small length value should not make +/** Setting ReelType::BY_LENGTH and using a small length value should not make * <1s reels. */ BOOST_AUTO_TEST_CASE (reels_should_not_be_short3) { shared_ptr film = new_test_film2 ("reels_should_not_be_short3"); film->set_video_frame_rate (24); - film->set_reel_type (REELTYPE_BY_LENGTH); + film->set_reel_type (ReelType::BY_LENGTH); film->set_reel_length (1024 * 1024 * 10); shared_ptr A(new FFmpegContent("test/data/flat_red.png")); @@ -584,14 +585,14 @@ BOOST_AUTO_TEST_CASE (reels_should_not_be_short3) BOOST_REQUIRE (notes.empty()); } -/** Having one piece of content less than 1s long in REELTYPE_BY_VIDEO_CONTENT +/** Having one piece of content less than 1s long in ReelType::BY_VIDEO_CONTENT * should not make a reel less than 1s long. */ BOOST_AUTO_TEST_CASE (reels_should_not_be_short4) { shared_ptr film = new_test_film2 ("reels_should_not_be_short4"); film->set_video_frame_rate (24); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); shared_ptr A(new FFmpegContent("test/data/flat_red.png")); film->examine_and_add_content (A); diff --git a/test/required_disk_space_test.cc b/test/required_disk_space_test.cc index a4be8b9b7..5510864d9 100644 --- a/test/required_disk_space_test.cc +++ b/test/required_disk_space_test.cc @@ -24,11 +24,12 @@ */ #include "lib/content_factory.h" -#include "lib/film.h" #include "lib/dcp_content.h" +#include "lib/film.h" #include "test.h" #include +using std::make_shared; using std::shared_ptr; using std::dynamic_pointer_cast; @@ -40,14 +41,14 @@ void check_within_n (int64_t a, int64_t b, int64_t n) BOOST_AUTO_TEST_CASE (required_disk_space_test) { - shared_ptr film = new_test_film ("required_disk_space_test"); + auto film = new_test_film ("required_disk_space_test"); film->set_j2k_bandwidth (100000000); film->set_audio_channels (6); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); - shared_ptr content_a = content_factory("test/data/flat_blue.png").front(); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); + auto content_a = content_factory("test/data/flat_blue.png").front(); BOOST_REQUIRE (content_a); film->examine_and_add_content (content_a); - shared_ptr content_b (new DCPContent("test/data/burnt_subtitle_test_dcp")); + auto content_b = make_shared("test/data/burnt_subtitle_test_dcp"); film->examine_and_add_content (content_b); BOOST_REQUIRE (!wait_for_jobs()); film->write_metadata (); diff --git a/test/shuffler_test.cc b/test/shuffler_test.cc index f6a2a358c..d1c5b8533 100644 --- a/test/shuffler_test.cc +++ b/test/shuffler_test.cc @@ -46,10 +46,10 @@ BOOST_AUTO_TEST_CASE (shuffler_test1) s.Video.connect (boost::bind (&receive, _1, _2)); for (int i = 0; i < 10; ++i) { - push (s, i, EYES_LEFT); - push (s, i, EYES_RIGHT); - check (i, EYES_LEFT, __LINE__); - check (i, EYES_RIGHT, __LINE__); + push (s, i, Eyes::LEFT); + push (s, i, Eyes::RIGHT); + check (i, Eyes::LEFT, __LINE__); + check (i, Eyes::RIGHT, __LINE__); } } @@ -60,14 +60,14 @@ BOOST_AUTO_TEST_CASE (shuffler_test2) s.Video.connect (boost::bind (&receive, _1, _2)); for (int i = 0; i < 10; i += 2) { - push (s, i, EYES_LEFT); - push (s, i + 1, EYES_LEFT); - push (s, i, EYES_RIGHT); - push (s, i + 1, EYES_RIGHT); - check (i, EYES_LEFT, __LINE__); - check (i, EYES_RIGHT, __LINE__); - check (i + 1, EYES_LEFT, __LINE__); - check (i + 1, EYES_RIGHT, __LINE__); + push (s, i, Eyes::LEFT); + push (s, i + 1, Eyes::LEFT); + push (s, i, Eyes::RIGHT); + push (s, i + 1, Eyes::RIGHT); + check (i, Eyes::LEFT, __LINE__); + check (i, Eyes::RIGHT, __LINE__); + check (i + 1, Eyes::LEFT, __LINE__); + check (i + 1, Eyes::RIGHT, __LINE__); } } @@ -77,25 +77,25 @@ BOOST_AUTO_TEST_CASE (shuffler_test3) Shuffler s; s.Video.connect (boost::bind (&receive, _1, _2)); - push (s, 0, EYES_LEFT); - check (0, EYES_LEFT, __LINE__); - push (s, 0, EYES_RIGHT); - check (0, EYES_RIGHT, __LINE__); - push (s, 1, EYES_LEFT); - check (1, EYES_LEFT, __LINE__); - push (s, 1, EYES_RIGHT); - check (1, EYES_RIGHT, __LINE__); - push (s, 2, EYES_RIGHT); - push (s, 3, EYES_LEFT); - push (s, 3, EYES_RIGHT); - push (s, 4, EYES_LEFT); - push (s, 4, EYES_RIGHT); + push (s, 0, Eyes::LEFT); + check (0, Eyes::LEFT, __LINE__); + push (s, 0, Eyes::RIGHT); + check (0, Eyes::RIGHT, __LINE__); + push (s, 1, Eyes::LEFT); + check (1, Eyes::LEFT, __LINE__); + push (s, 1, Eyes::RIGHT); + check (1, Eyes::RIGHT, __LINE__); + push (s, 2, Eyes::RIGHT); + push (s, 3, Eyes::LEFT); + push (s, 3, Eyes::RIGHT); + push (s, 4, Eyes::LEFT); + push (s, 4, Eyes::RIGHT); s.flush (); - check (2, EYES_RIGHT, __LINE__); - check (3, EYES_LEFT, __LINE__); - check (3, EYES_RIGHT, __LINE__); - check (4, EYES_LEFT, __LINE__); - check (4, EYES_RIGHT, __LINE__); + check (2, Eyes::RIGHT, __LINE__); + check (3, Eyes::LEFT, __LINE__); + check (3, Eyes::RIGHT, __LINE__); + check (4, Eyes::LEFT, __LINE__); + check (4, Eyes::RIGHT, __LINE__); } /** One missing right eye image */ @@ -104,25 +104,25 @@ BOOST_AUTO_TEST_CASE (shuffler_test4) Shuffler s; s.Video.connect (boost::bind (&receive, _1, _2)); - push (s, 0, EYES_LEFT); - check (0, EYES_LEFT, __LINE__); - push (s, 0, EYES_RIGHT); - check (0, EYES_RIGHT, __LINE__); - push (s, 1, EYES_LEFT); - check (1, EYES_LEFT, __LINE__); - push (s, 1, EYES_RIGHT); - check (1, EYES_RIGHT, __LINE__); - push (s, 2, EYES_LEFT); - push (s, 3, EYES_LEFT); - push (s, 3, EYES_RIGHT); - push (s, 4, EYES_LEFT); - push (s, 4, EYES_RIGHT); + push (s, 0, Eyes::LEFT); + check (0, Eyes::LEFT, __LINE__); + push (s, 0, Eyes::RIGHT); + check (0, Eyes::RIGHT, __LINE__); + push (s, 1, Eyes::LEFT); + check (1, Eyes::LEFT, __LINE__); + push (s, 1, Eyes::RIGHT); + check (1, Eyes::RIGHT, __LINE__); + push (s, 2, Eyes::LEFT); + push (s, 3, Eyes::LEFT); + push (s, 3, Eyes::RIGHT); + push (s, 4, Eyes::LEFT); + push (s, 4, Eyes::RIGHT); s.flush (); - check (2, EYES_LEFT, __LINE__); - check (3, EYES_LEFT, __LINE__); - check (3, EYES_RIGHT, __LINE__); - check (4, EYES_LEFT, __LINE__); - check (4, EYES_RIGHT, __LINE__); + check (2, Eyes::LEFT, __LINE__); + check (3, Eyes::LEFT, __LINE__); + check (3, Eyes::RIGHT, __LINE__); + check (4, Eyes::LEFT, __LINE__); + check (4, Eyes::RIGHT, __LINE__); } /** Only one eye */ @@ -132,20 +132,20 @@ BOOST_AUTO_TEST_CASE (shuffler_test5) s.Video.connect (boost::bind (&receive, _1, _2)); /* One left should come out straight away */ - push (s, 0, EYES_LEFT); - check (0, EYES_LEFT, __LINE__); + push (s, 0, Eyes::LEFT); + check (0, Eyes::LEFT, __LINE__); /* More lefts should be kept in the shuffler in the hope that some rights arrive */ for (int i = 0; i < s._max_size; ++i) { - push (s, i + 1, EYES_LEFT); + push (s, i + 1, Eyes::LEFT); } BOOST_CHECK (pending_cv.empty ()); /* If enough lefts come the shuffler should conclude that there's no rights and start giving out the lefts. */ - push (s, s._max_size + 1, EYES_LEFT); - check (1, EYES_LEFT, __LINE__); + push (s, s._max_size + 1, Eyes::LEFT); + check (1, Eyes::LEFT, __LINE__); } /** One complete frame (L+R) missing. @@ -156,18 +156,18 @@ BOOST_AUTO_TEST_CASE (shuffler_test6) Shuffler s; s.Video.connect (boost::bind (&receive, _1, _2)); - push (s, 0, EYES_LEFT); - check (0, EYES_LEFT, __LINE__); - push (s, 0, EYES_RIGHT); - check (0, EYES_RIGHT, __LINE__); + push (s, 0, Eyes::LEFT); + check (0, Eyes::LEFT, __LINE__); + push (s, 0, Eyes::RIGHT); + check (0, Eyes::RIGHT, __LINE__); - push (s, 2, EYES_LEFT); - push (s, 2, EYES_RIGHT); - check (2, EYES_LEFT, __LINE__); - check (2, EYES_RIGHT, __LINE__); + push (s, 2, Eyes::LEFT); + push (s, 2, Eyes::RIGHT); + check (2, Eyes::LEFT, __LINE__); + check (2, Eyes::RIGHT, __LINE__); - push (s, 3, EYES_LEFT); - check (3, EYES_LEFT, __LINE__); - push (s, 3, EYES_RIGHT); - check (3, EYES_RIGHT, __LINE__); + push (s, 3, Eyes::LEFT); + check (3, Eyes::LEFT, __LINE__); + push (s, 3, Eyes::RIGHT); + check (3, Eyes::RIGHT, __LINE__); } diff --git a/test/subtitle_reel_number_test.cc b/test/subtitle_reel_number_test.cc index d8c596c94..b19fd1cd0 100644 --- a/test/subtitle_reel_number_test.cc +++ b/test/subtitle_reel_number_test.cc @@ -48,7 +48,7 @@ BOOST_AUTO_TEST_CASE (subtitle_reel_number_test) BOOST_REQUIRE (!wait_for_jobs ()); content->only_text()->set_use (true); content->only_text()->set_burn (false); - film->set_reel_type (REELTYPE_BY_LENGTH); + film->set_reel_type (ReelType::BY_LENGTH); film->set_interop (true); film->set_reel_length (1024 * 1024 * 512); film->make_dcp (); @@ -57,13 +57,13 @@ BOOST_AUTO_TEST_CASE (subtitle_reel_number_test) dcp::DCP dcp ("build/test/subtitle_reel_number_test/" + film->dcp_name()); dcp.read (); BOOST_REQUIRE_EQUAL (dcp.cpls().size(), 1U); - shared_ptr cpl = dcp.cpls().front(); + auto cpl = dcp.cpls()[0]; BOOST_REQUIRE_EQUAL (cpl->reels().size(), 6U); int n = 1; for (auto i: cpl->reels()) { if (i->main_subtitle()) { - shared_ptr ass = dynamic_pointer_cast(i->main_subtitle()->asset()); + auto ass = dynamic_pointer_cast(i->main_subtitle()->asset()); BOOST_REQUIRE (ass); BOOST_CHECK_EQUAL (ass->reel_number(), dcp::raw_convert(n)); ++n; diff --git a/test/subtitle_reel_test.cc b/test/subtitle_reel_test.cc index 906477963..c910d4aec 100644 --- a/test/subtitle_reel_test.cc +++ b/test/subtitle_reel_test.cc @@ -36,19 +36,20 @@ using std::list; using std::string; -using boost::optional; using std::shared_ptr; +using std::make_shared; +using boost::optional; /* Check that timings are done correctly for multi-reel DCPs with PNG subs */ BOOST_AUTO_TEST_CASE (subtitle_reel_test) { - shared_ptr film = new_test_film2 ("subtitle_reel_test"); + auto film = new_test_film2 ("subtitle_reel_test"); film->set_interop (true); - shared_ptr red_a (new ImageContent("test/data/flat_red.png")); - shared_ptr red_b (new ImageContent("test/data/flat_red.png")); - shared_ptr sub_a (new DCPSubtitleContent("test/data/png_subs/subs.xml")); - shared_ptr sub_b (new DCPSubtitleContent("test/data/png_subs/subs.xml")); + auto red_a = make_shared("test/data/flat_red.png"); + auto red_b = make_shared("test/data/flat_red.png"); + auto sub_a = make_shared("test/data/png_subs/subs.xml"); + auto sub_b = make_shared("test/data/png_subs/subs.xml"); film->examine_and_add_content (red_a); film->examine_and_add_content (red_b); @@ -64,7 +65,7 @@ BOOST_AUTO_TEST_CASE (subtitle_reel_test) red_b->video->set_length (240); sub_b->set_position (film, dcpomatic::DCPTime::from_seconds(10)); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); film->make_dcp (); BOOST_REQUIRE (!wait_for_jobs()); @@ -101,18 +102,18 @@ BOOST_AUTO_TEST_CASE (subtitle_reel_test) */ BOOST_AUTO_TEST_CASE (subtitle_in_all_reels_test) { - shared_ptr film = new_test_film2 ("subtitle_in_all_reels_test"); + auto film = new_test_film2 ("subtitle_in_all_reels_test"); film->set_interop (false); film->set_sequence (false); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); for (int i = 0; i < 3; ++i) { - shared_ptr video = content_factory("test/data/flat_red.png").front(); + auto video = content_factory("test/data/flat_red.png").front(); film->examine_and_add_content (video); BOOST_REQUIRE (!wait_for_jobs()); video->video->set_length (15 * 24); video->set_position (film, dcpomatic::DCPTime::from_seconds(15 * i)); } - shared_ptr subs = content_factory("test/data/15s.srt").front(); + auto subs = content_factory("test/data/15s.srt").front(); film->examine_and_add_content (subs); BOOST_REQUIRE (!wait_for_jobs()); film->make_dcp (); @@ -121,7 +122,7 @@ BOOST_AUTO_TEST_CASE (subtitle_in_all_reels_test) dcp::DCP dcp ("build/test/subtitle_in_all_reels_test/" + film->dcp_name()); dcp.read (); BOOST_REQUIRE_EQUAL (dcp.cpls().size(), 1U); - shared_ptr cpl = dcp.cpls().front(); + auto cpl = dcp.cpls()[0]; BOOST_REQUIRE_EQUAL (cpl->reels().size(), 3U); for (auto i: cpl->reels()) { @@ -135,29 +136,29 @@ BOOST_AUTO_TEST_CASE (subtitle_in_all_reels_test) */ BOOST_AUTO_TEST_CASE (closed_captions_in_all_reels_test) { - shared_ptr film = new_test_film2 ("closed_captions_in_all_reels_test"); + auto film = new_test_film2 ("closed_captions_in_all_reels_test"); film->set_interop (false); film->set_sequence (false); - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); for (int i = 0; i < 3; ++i) { - shared_ptr video = content_factory("test/data/flat_red.png").front(); + auto video = content_factory("test/data/flat_red.png").front(); film->examine_and_add_content (video); BOOST_REQUIRE (!wait_for_jobs()); video->video->set_length (15 * 24); video->set_position (film, dcpomatic::DCPTime::from_seconds(15 * i)); } - shared_ptr ccap1 = content_factory("test/data/15s.srt").front(); + auto ccap1 = content_factory("test/data/15s.srt").front(); film->examine_and_add_content (ccap1); BOOST_REQUIRE (!wait_for_jobs()); - ccap1->text.front()->set_type (TEXT_CLOSED_CAPTION); + ccap1->text.front()->set_type (TextType::CLOSED_CAPTION); ccap1->text.front()->set_dcp_track (DCPTextTrack("Test", "de-DE")); - shared_ptr ccap2 = content_factory("test/data/15s.srt").front(); + auto ccap2 = content_factory("test/data/15s.srt").front(); film->examine_and_add_content (ccap2); BOOST_REQUIRE (!wait_for_jobs()); - ccap2->text.front()->set_type (TEXT_CLOSED_CAPTION); + ccap2->text.front()->set_type (TextType::CLOSED_CAPTION); ccap2->text.front()->set_dcp_track (DCPTextTrack("Other", "en-GB")); film->make_dcp (); @@ -166,13 +167,13 @@ BOOST_AUTO_TEST_CASE (closed_captions_in_all_reels_test) dcp::DCP dcp ("build/test/closed_captions_in_all_reels_test/" + film->dcp_name()); dcp.read (); BOOST_REQUIRE_EQUAL (dcp.cpls().size(), 1U); - shared_ptr cpl = dcp.cpls().front(); + auto cpl = dcp.cpls().front(); BOOST_REQUIRE_EQUAL (cpl->reels().size(), 3U); for (auto i: cpl->reels()) { BOOST_REQUIRE_EQUAL (i->closed_captions().size(), 2U); - optional first = i->closed_captions().front()->language(); - optional second = i->closed_captions().back()->language(); + auto first = i->closed_captions().front()->language(); + auto second = i->closed_captions().back()->language(); BOOST_REQUIRE (first); BOOST_REQUIRE (second); BOOST_CHECK ( diff --git a/test/test.cc b/test/test.cc index 3f646fd1f..b82af3e2f 100644 --- a/test/test.cc +++ b/test/test.cc @@ -798,7 +798,7 @@ dcp::operator<< (std::ostream& s, dcp::Size i) } std::ostream& -dcp::operator<< (std::ostream& s, Standard t) +dcp::operator<< (std::ostream& s, dcp::Standard t) { switch (t) { case Standard::INTEROP: @@ -811,3 +811,10 @@ dcp::operator<< (std::ostream& s, Standard t) return s; } +std::ostream& +operator<< (std::ostream&s, VideoFrameType f) +{ + s << video_frame_type_to_string(f); + return s; +} + diff --git a/test/test.h b/test/test.h index c188a614f..da00fe688 100644 --- a/test/test.h +++ b/test/test.h @@ -20,7 +20,7 @@ #include "lib/warnings.h" -#include +#include "lib/types.h" #include @@ -67,9 +67,12 @@ private: std::shared_ptr _old; }; + namespace dcp { std::ostream& operator<< (std::ostream& s, dcp::Size i); -std::ostream& operator<< (std::ostream& s, Standard t); +std::ostream& operator<< (std::ostream& s, dcp::Standard t); } + +std::ostream& operator<< (std::ostream& s, VideoFrameType f); diff --git a/test/threed_test.cc b/test/threed_test.cc index b12eb328d..78e656830 100644 --- a/test/threed_test.cc +++ b/test/threed_test.cc @@ -39,7 +39,7 @@ using std::cout; using std::shared_ptr; -/** Basic sanity check of 3D_LEFT_RIGHT */ +/** Basic sanity check of THREE_D_LEFT_RIGHT */ BOOST_AUTO_TEST_CASE (threed_test1) { shared_ptr film = new_test_film ("threed_test1"); @@ -48,7 +48,7 @@ BOOST_AUTO_TEST_CASE (threed_test1) film->examine_and_add_content (c); BOOST_REQUIRE (!wait_for_jobs()); - c->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT_RIGHT); + c->video->set_frame_type (VideoFrameType::THREE_D_LEFT_RIGHT); film->set_container (Ratio::from_id ("185")); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); @@ -59,7 +59,7 @@ BOOST_AUTO_TEST_CASE (threed_test1) BOOST_REQUIRE (!wait_for_jobs ()); } -/** Basic sanity check of 3D_ALTERNATE; at the moment this is just to make sure +/** Basic sanity check of THREE_D_ALTERNATE; at the moment this is just to make sure * that such a transcode completes without error. */ BOOST_AUTO_TEST_CASE (threed_test2) @@ -70,7 +70,7 @@ BOOST_AUTO_TEST_CASE (threed_test2) film->examine_and_add_content (c); BOOST_REQUIRE (!wait_for_jobs()); - c->video->set_frame_type (VIDEO_FRAME_TYPE_3D_ALTERNATE); + c->video->set_frame_type (VideoFrameType::THREE_D_ALTERNATE); film->set_container (Ratio::from_id ("185")); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); @@ -81,7 +81,7 @@ BOOST_AUTO_TEST_CASE (threed_test2) BOOST_REQUIRE (!wait_for_jobs ()); } -/** Basic sanity check of 3D_LEFT and 3D_RIGHT; at the moment this is just to make sure +/** Basic sanity check of THREE_D_LEFT and THREE_D_RIGHT; at the moment this is just to make sure * that such a transcode completes without error. */ BOOST_AUTO_TEST_CASE (threed_test3) @@ -93,8 +93,8 @@ BOOST_AUTO_TEST_CASE (threed_test3) film->examine_and_add_content (R); BOOST_REQUIRE (!wait_for_jobs()); - L->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT); - R->video->set_frame_type (VIDEO_FRAME_TYPE_3D_RIGHT); + L->video->set_frame_type (VideoFrameType::THREE_D_LEFT); + R->video->set_frame_type (VideoFrameType::THREE_D_RIGHT); film->set_three_d (true); film->make_dcp (); @@ -112,8 +112,8 @@ BOOST_AUTO_TEST_CASE (threed_test4) film->examine_and_add_content (R); BOOST_REQUIRE (!wait_for_jobs()); - L->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT); - R->video->set_frame_type (VIDEO_FRAME_TYPE_3D_RIGHT); + L->video->set_frame_type (VideoFrameType::THREE_D_LEFT); + R->video->set_frame_type (VideoFrameType::THREE_D_RIGHT); /* There doesn't seem much point in encoding the whole input, especially as we're only * checking for errors during the encode and not the result. Also decoding these files * (4K HQ Prores) is very slow. @@ -137,8 +137,8 @@ BOOST_AUTO_TEST_CASE (threed_test5) film->examine_and_add_content (R); BOOST_REQUIRE (!wait_for_jobs()); - L->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT); - R->video->set_frame_type (VIDEO_FRAME_TYPE_3D_RIGHT); + L->video->set_frame_type (VideoFrameType::THREE_D_LEFT); + R->video->set_frame_type (VideoFrameType::THREE_D_RIGHT); /* There doesn't seem much point in encoding the whole input, especially as we're only * checking for errors during the encode and not the result. */ @@ -161,8 +161,8 @@ BOOST_AUTO_TEST_CASE (threed_test6) film->examine_and_add_content (R); BOOST_REQUIRE (!wait_for_jobs()); - L->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT); - R->video->set_frame_type (VIDEO_FRAME_TYPE_3D_RIGHT); + L->video->set_frame_type (VideoFrameType::THREE_D_LEFT); + R->video->set_frame_type (VideoFrameType::THREE_D_RIGHT); film->set_three_d (true); film->make_dcp (); @@ -183,7 +183,7 @@ BOOST_AUTO_TEST_CASE (threed_test7) film->examine_and_add_content (c); BOOST_REQUIRE (!wait_for_jobs()); - c->video->set_frame_type (VIDEO_FRAME_TYPE_3D); + c->video->set_frame_type (VideoFrameType::THREE_D); film->set_three_d (true); film->make_dcp (); diff --git a/test/vf_test.cc b/test/vf_test.cc index aff9bdae9..b538f967c 100644 --- a/test/vf_test.cc +++ b/test/vf_test.cc @@ -56,20 +56,20 @@ BOOST_AUTO_TEST_CASE (vf_test1) BOOST_REQUIRE (!wait_for_jobs()); /* Multi-reel DCP can't be referenced if we are using a single reel for the project */ - film->set_reel_type (REELTYPE_SINGLE); + film->set_reel_type (ReelType::SINGLE); string why_not; BOOST_CHECK (!dcp->can_reference_video(film, why_not)); BOOST_CHECK (!dcp->can_reference_audio(film, why_not)); - BOOST_CHECK (!dcp->can_reference_text(film, TEXT_OPEN_SUBTITLE, why_not)); - BOOST_CHECK (!dcp->can_reference_text(film, TEXT_CLOSED_CAPTION, why_not)); + BOOST_CHECK (!dcp->can_reference_text(film, TextType::OPEN_SUBTITLE, why_not)); + BOOST_CHECK (!dcp->can_reference_text(film, TextType::CLOSED_CAPTION, why_not)); /* Multi-reel DCP can be referenced if we are using by-video-content */ - film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); BOOST_CHECK (dcp->can_reference_video(film, why_not)); BOOST_CHECK (dcp->can_reference_audio(film, why_not)); /* (but reels_test2 has no texts to reference) */ - BOOST_CHECK (!dcp->can_reference_text(film, TEXT_OPEN_SUBTITLE, why_not)); - BOOST_CHECK (!dcp->can_reference_text(film, TEXT_CLOSED_CAPTION, why_not)); + BOOST_CHECK (!dcp->can_reference_text(film, TextType::OPEN_SUBTITLE, why_not)); + BOOST_CHECK (!dcp->can_reference_text(film, TextType::CLOSED_CAPTION, why_not)); shared_ptr other (new FFmpegContent("test/data/test.mp4")); film->examine_and_add_content (other); @@ -85,8 +85,8 @@ BOOST_AUTO_TEST_CASE (vf_test1) BOOST_CHECK (dcp->can_reference_video(film, why_not)); BOOST_CHECK (dcp->can_reference_audio(film, why_not)); /* (reels_test2 has no texts to reference) */ - BOOST_CHECK (!dcp->can_reference_text(film, TEXT_OPEN_SUBTITLE, why_not)); - BOOST_CHECK (!dcp->can_reference_text(film, TEXT_CLOSED_CAPTION, why_not)); + BOOST_CHECK (!dcp->can_reference_text(film, TextType::OPEN_SUBTITLE, why_not)); + BOOST_CHECK (!dcp->can_reference_text(film, TextType::CLOSED_CAPTION, why_not)); } /** Make a OV with video and audio and a VF referencing the OV and adding subs */ @@ -110,7 +110,7 @@ BOOST_AUTO_TEST_CASE (vf_test2) shared_ptr vf = new_test_film ("vf_test2_vf"); vf->set_name ("vf_test2_vf"); vf->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); - vf->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + vf->set_reel_type (ReelType::BY_VIDEO_CONTENT); shared_ptr dcp (new DCPContent(ov->dir (ov->dcp_name ()))); BOOST_REQUIRE (dcp); vf->examine_and_add_content (dcp); @@ -168,7 +168,7 @@ BOOST_AUTO_TEST_CASE (vf_test3) shared_ptr vf = new_test_film ("vf_test3_vf"); vf->set_name ("vf_test3_vf"); vf->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); - vf->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + vf->set_reel_type (ReelType::BY_VIDEO_CONTENT); shared_ptr dcp (new DCPContent(ov->dir(ov->dcp_name()))); BOOST_REQUIRE (dcp); dcp->set_trim_start (ContentTime::from_seconds (1)); @@ -214,7 +214,7 @@ BOOST_AUTO_TEST_CASE (vf_test4) shared_ptr vf = new_test_film ("vf_test4_vf"); vf->set_name ("vf_test4_vf"); vf->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); - vf->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + vf->set_reel_type (ReelType::BY_VIDEO_CONTENT); vf->set_sequence (false); shared_ptr dcp (new DCPContent(ov->dir(ov->dcp_name()))); BOOST_REQUIRE (dcp); @@ -257,7 +257,7 @@ BOOST_AUTO_TEST_CASE (vf_test5) /* Make the OV */ shared_ptr ov = new_test_film ("vf_test5_ov"); ov->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); - ov->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + ov->set_reel_type (ReelType::BY_VIDEO_CONTENT); for (int i = 0; i < 3; ++i) { shared_ptr video = content_factory("test/data/flat_red.png").front(); ov->examine_and_add_content (video); @@ -273,7 +273,7 @@ BOOST_AUTO_TEST_CASE (vf_test5) shared_ptr vf = new_test_film ("vf_test5_vf"); vf->set_name ("vf_test5_vf"); vf->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); - vf->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + vf->set_reel_type (ReelType::BY_VIDEO_CONTENT); vf->set_sequence (false); shared_ptr dcp (new DCPContent(ov->dir(ov->dcp_name()))); BOOST_REQUIRE (dcp); @@ -306,7 +306,7 @@ BOOST_AUTO_TEST_CASE (vf_test6) /* Make the OV */ shared_ptr ov = new_test_film ("vf_test6_ov"); ov->set_dcp_content_type (DCPContentType::from_isdcf_name("TST")); - ov->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + ov->set_reel_type (ReelType::BY_VIDEO_CONTENT); shared_ptr video = content_factory("test/data/flat_red.png").front(); ov->examine_and_add_content (video); BOOST_REQUIRE (!wait_for_jobs()); @@ -318,7 +318,7 @@ BOOST_AUTO_TEST_CASE (vf_test6) shared_ptr vf = new_test_film ("vf_test6_vf"); vf->set_name ("vf_test6_vf"); vf->set_dcp_content_type (DCPContentType::from_isdcf_name("TST")); - vf->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + vf->set_reel_type (ReelType::BY_VIDEO_CONTENT); vf->set_sequence (false); shared_ptr dcp (new DCPContent(ov->dir(ov->dcp_name()))); BOOST_REQUIRE (dcp); @@ -361,7 +361,7 @@ BOOST_AUTO_TEST_CASE (vf_test7) shared_ptr ov2_dcp (new DCPContent(ov1->dir(ov1->dcp_name()))); vf->examine_and_add_content (ov2_dcp); BOOST_REQUIRE (!wait_for_jobs()); - vf->set_reel_type (REELTYPE_BY_VIDEO_CONTENT); + vf->set_reel_type (ReelType::BY_VIDEO_CONTENT); ov1_dcp->set_reference_video (true); ov2_dcp->set_reference_video (true); ov1_dcp->set_position (vf, DCPTime::from_seconds(1)); diff --git a/test/video_level_test.cc b/test/video_level_test.cc index 632551fa4..2461bb9b3 100644 --- a/test/video_level_test.cc +++ b/test/video_level_test.cc @@ -56,6 +56,7 @@ using std::max; using std::pair; using std::string; using std::dynamic_pointer_cast; +using std::make_shared; using boost::optional; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; @@ -67,7 +68,7 @@ static shared_ptr grey_image (dcp::Size size, uint8_t pixel) { - shared_ptr grey(new Image(AV_PIX_FMT_RGB24, size, true)); + auto grey = make_shared(AV_PIX_FMT_RGB24, size, true); for (int y = 0; y < size.height; ++y) { uint8_t* p = grey->data()[0] + y * grey->stride()[0]; for (int x = 0; x < size.width; ++x) { @@ -414,14 +415,14 @@ V_movie_range (shared_ptr film) shared_ptr job (new TranscodeJob(film)); job->set_encoder ( shared_ptr( - new FFmpegEncoder (film, job, film->file("export.mov"), EXPORT_FORMAT_PRORES, true, false, false, 23) + new FFmpegEncoder (film, job, film->file("export.mov"), ExportFormat::PRORES, true, false, false, 23) ) ); JobManager::instance()->add (job); BOOST_REQUIRE (!wait_for_jobs()); /* This is a bit of a hack; add the exported file into the project so we can decode it */ - shared_ptr content(new FFmpegContent(film->file("export.mov"))); + auto content = make_shared(film->file("export.mov")); film->examine_and_add_content (content); BOOST_REQUIRE (!wait_for_jobs());