/* Copyright (C) 2020-2021 Carl Hetherington This file is part of DCP-o-matic. DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with DCP-o-matic. If not, see . */ #include "audio_content.h" #include "copy_dcp_details_to_film.h" #include "dcp_content.h" #include "dcp_content_type.h" #include "film.h" #include "ratio.h" #include "video_content.h" #include using std::map; using std::shared_ptr; using std::string; using std::vector; void copy_dcp_settings_to_film(shared_ptr dcp, shared_ptr film) { auto name = dcp->name (); name = name.substr (0, name.find("_")); film->set_name (name); film->set_use_isdcf_name (true); if (dcp->content_kind()) { 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_interop (dcp->standard() == dcp::Standard::INTEROP); film->set_three_d (dcp->three_d()); if (dcp->video) { if (auto size = dcp->video->size()) { film->set_container(Ratio::nearest_from_ratio(size->ratio())); } film->set_resolution (dcp->resolution()); DCPOMATIC_ASSERT (dcp->video_frame_rate()); film->set_video_frame_rate (*dcp->video_frame_rate()); } if (dcp->audio) { film->set_audio_channels (dcp->audio->stream()->channels()); } film->set_ratings (dcp->ratings()); film->set_content_versions (dcp->content_versions()); } void copy_dcp_markers_to_film(shared_ptr dcp, shared_ptr film) { film->clear_markers (); for (auto const& i: dcp->markers()) { film->set_marker(i.first, dcpomatic::DCPTime(i.second.get())); } }