diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-04-21 23:33:33 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-04-21 23:56:58 +0200 |
| commit | 4873cbc567d2c97c6587ab624e4c53abcd23cf23 (patch) | |
| tree | 6b3341998b91b6c5dcd904b0bf37f60d8051453f /src/lib | |
| parent | 5f3a88d3ab1e9c1a13d7e61fc37a0c4cef8df9a5 (diff) | |
Add code to copy the data and hook it up to a menu item.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/copy_dcp_details_to_film.cc | 73 | ||||
| -rw-r--r-- | src/lib/copy_dcp_details_to_film.h | 26 | ||||
| -rw-r--r-- | src/lib/wscript | 1 |
3 files changed, 100 insertions, 0 deletions
diff --git a/src/lib/copy_dcp_details_to_film.cc b/src/lib/copy_dcp_details_to_film.cc new file mode 100644 index 000000000..a009735fb --- /dev/null +++ b/src/lib/copy_dcp_details_to_film.cc @@ -0,0 +1,73 @@ +/* + Copyright (C) 2020 Carl Hetherington <cth@carlh.net> + + 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 <http://www.gnu.org/licenses/>. + +*/ + +#include "copy_dcp_details_to_film.h" +#include "dcp_content.h" +#include "film.h" +#include "types.h" +#include "video_content.h" +#include "audio_content.h" +#include "ratio.h" +#include "dcp_content_type.h" +#include <boost/shared_ptr.hpp> +#include <map> + +using std::map; +using std::string; +using boost::shared_ptr; + +void +copy_dcp_details_to_film (shared_ptr<const DCPContent> dcp, shared_ptr<Film> film) +{ + string 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::INTEROP); + film->set_three_d (dcp->three_d()); + + if (dcp->video) { + film->set_container (Ratio::nearest_from_ratio(dcp->video->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()); + } + + map<dcp::Marker, dcpomatic::ContentTime> dcp_markers; + map<dcp::Marker, dcpomatic::DCPTime> film_markers; + film->clear_markers (); + for (map<dcp::Marker, dcpomatic::ContentTime>::const_iterator i = dcp_markers.begin(); i != dcp_markers.end(); ++i) { + film->set_marker (i->first, dcpomatic::DCPTime(i->second.get())); + } + + film->set_ratings (dcp->ratings()); + film->set_content_version (dcp->content_version()); +} + + diff --git a/src/lib/copy_dcp_details_to_film.h b/src/lib/copy_dcp_details_to_film.h new file mode 100644 index 000000000..38eb7fcc9 --- /dev/null +++ b/src/lib/copy_dcp_details_to_film.h @@ -0,0 +1,26 @@ +/* + Copyright (C) 2020 Carl Hetherington <cth@carlh.net> + + 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 <http://www.gnu.org/licenses/>. + +*/ + +#include <boost/shared_ptr.hpp> + +class DCPContent; +class Film; + +extern void copy_dcp_details_to_film (boost::shared_ptr<const DCPContent> dcp, boost::shared_ptr<Film> film); diff --git a/src/lib/wscript b/src/lib/wscript index 67bcf8d8b..17f96d61e 100644 --- a/src/lib/wscript +++ b/src/lib/wscript @@ -52,6 +52,7 @@ sources = """ config.cc content.cc content_factory.cc + copy_dcp_details_to_film.cc create_cli.cc cross_common.cc crypto.cc |
