projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
FIXME: Remove all use of add_child() from xmlpp.
[dcpomatic.git]
/
src
/
lib
/
video_mxf_content.cc
diff --git
a/src/lib/video_mxf_content.cc
b/src/lib/video_mxf_content.cc
index d86fc4cf6e296ead657f49b98f9ab275a49f463c..546e1445b2110a1191f436a09a25f69e2b03a698 100644
(file)
--- a/
src/lib/video_mxf_content.cc
+++ b/
src/lib/video_mxf_content.cc
@@
-1,5
+1,5
@@
/*
/*
- Copyright (C) 2016 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2016
-2021
Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
This file is part of DCP-o-matic.
@@
-18,12
+18,14
@@
*/
*/
+
#include "video_mxf_examiner.h"
#include "video_mxf_content.h"
#include "video_content.h"
#include "job.h"
#include "film.h"
#include "compose.hpp"
#include "video_mxf_examiner.h"
#include "video_mxf_content.h"
#include "video_content.h"
#include "job.h"
#include "film.h"
#include "compose.hpp"
+#include <asdcp/KM_log.h>
#include <dcp/mono_picture_asset.h>
#include <dcp/stereo_picture_asset.h>
#include <dcp/exceptions.h>
#include <dcp/mono_picture_asset.h>
#include <dcp/stereo_picture_asset.h>
#include <dcp/exceptions.h>
@@
-31,99
+33,120
@@
#include "i18n.h"
#include "i18n.h"
+
using std::list;
using std::string;
using std::list;
using std::string;
-using boost::shared_ptr;
+using std::shared_ptr;
+using std::make_shared;
+using namespace dcpomatic;
+
-VideoMXFContent::VideoMXFContent (
shared_ptr<const Film> film,
boost::filesystem::path path)
- : Content (
film,
path)
+VideoMXFContent::VideoMXFContent (boost::filesystem::path path)
+ : Content (path)
{
}
{
}
-VideoMXFContent::VideoMXFContent (shared_ptr<const Film> film, cxml::ConstNodePtr node, int version)
- : Content (film, node)
+
+VideoMXFContent::VideoMXFContent (cxml::ConstNodePtr node, int version)
+ : Content (node)
{
{
- video = VideoContent::from_xml (this, node, version);
+ video = VideoContent::from_xml (this, node, version
, VideoRange::FULL
);
}
}
+
bool
VideoMXFContent::valid_mxf (boost::filesystem::path path)
{
bool
VideoMXFContent::valid_mxf (boost::filesystem::path path)
{
+ Kumu::DefaultLogSink().UnsetFilterFlag(Kumu::LOG_ALLOW_ALL);
+
try {
try {
-
shared_ptr<dcp::MonoPictureAsset> mp (new dcp::MonoPictureAsset (path)
);
+
dcp::MonoPictureAsset mp (path
);
return true;
} catch (dcp::MXFFileError& e) {
return true;
} catch (dcp::MXFFileError& e) {
- } catch (dcp::
DCP
ReadError& e) {
+ } catch (dcp::ReadError& e) {
}
try {
}
try {
- shared_ptr<dcp::StereoPictureAsset> sp (new dcp::StereoPictureAsset (path));
+ Kumu::DefaultLogSink().SetFilterFlag(0);
+ dcp::StereoPictureAsset sp (path);
return true;
} catch (dcp::MXFFileError& e) {
return true;
} catch (dcp::MXFFileError& e) {
- } catch (dcp::
DCP
ReadError& e) {
+ } catch (dcp::ReadError& e) {
}
}
+ Kumu::DefaultLogSink().SetFilterFlag(Kumu::LOG_ALLOW_ALL);
+
return false;
}
return false;
}
+
void
void
-VideoMXFContent::examine (shared_ptr<Job> job)
+VideoMXFContent::examine (shared_ptr<
const Film> film, shared_ptr<
Job> job)
{
job->set_progress_unknown ();
{
job->set_progress_unknown ();
- Content::examine (job);
+ Content::examine (
film,
job);
video.reset (new VideoContent (this));
video.reset (new VideoContent (this));
- shared_ptr<VideoMXFExaminer> examiner (new VideoMXFExaminer (shared_from_this ()));
- video->take_from_examiner (examiner);
+ auto examiner = make_shared<VideoMXFExaminer>(shared_from_this());
+ video->take_from_examiner(film, examiner);
+ video->unset_colour_conversion ();
}
}
+
string
VideoMXFContent::summary () const
{
return String::compose (_("%1 [video]"), path_summary());
}
string
VideoMXFContent::summary () const
{
return String::compose (_("%1 [video]"), path_summary());
}
+
string
VideoMXFContent::technical_summary () const
{
string
VideoMXFContent::technical_summary () const
{
- return Content::technical_summary() + " - " + video->technical_summary
();
+ return Content::technical_summary() + " - " + video->technical_summary();
}
}
+
string
VideoMXFContent::identifier () const
{
return Content::identifier() + "_" + video->identifier();
}
string
VideoMXFContent::identifier () const
{
return Content::identifier() + "_" + video->identifier();
}
+
void
void
-VideoMXFContent::as_xml
(xmlpp::Node* node
) const
+VideoMXFContent::as_xml
(xmlpp::Element* element, bool with_paths
) const
{
{
-
node->add_child("Type")->add_child_text (
"VideoMXF");
- Content::as_xml
(node
);
- video->as_xml
(node
);
+
cxml::add_text_child(element, "Type",
"VideoMXF");
+ Content::as_xml
(element, with_paths
);
+ video->as_xml
(element
);
}
}
+
DCPTime
DCPTime
-VideoMXFContent::full_length () const
+VideoMXFContent::full_length (
shared_ptr<const Film> film
) const
{
{
- FrameRateChange const frc (
active_video_frame_rate(), film()->video_frame_rate
());
- return DCPTime::from_frames (llrint
(video->length_after_3d_combine() * frc.factor()), film()
->video_frame_rate());
+ FrameRateChange const frc (
film, shared_from_this
());
+ return DCPTime::from_frames (llrint
(video->length_after_3d_combine() * frc.factor()), film
->video_frame_rate());
}
}
-void
-VideoMXFContent::add_properties (list<UserProperty>& p) const
+
+DCPTime
+VideoMXFContent::approximate_length () const
{
{
-
video->add_properties (p
);
+
return DCPTime::from_frames (video->length_after_3d_combine(), 24
);
}
}
+
void
void
-VideoMXFContent::
set_default_colour_conversion ()
+VideoMXFContent::
add_properties (shared_ptr<const Film> film, list<UserProperty>& p) const
{
{
- video->unset_colour_conversion ();
+ Content::add_properties (film, p);
+ video->add_properties (p);
}
}