#include "user_property.h"
#include <libcxml/cxml.h>
#include <boost/filesystem.hpp>
#include "user_property.h"
#include <libcxml/cxml.h>
#include <boost/filesystem.hpp>
{
public:
explicit Content ();
Content (dcpomatic::DCPTime);
Content (boost::filesystem::path);
Content (cxml::ConstNodePtr);
{
public:
explicit Content ();
Content (dcpomatic::DCPTime);
Content (boost::filesystem::path);
Content (cxml::ConstNodePtr);
/** Examine the content to establish digest, frame rates and any other
* useful metadata.
* @param job Job to use to report progress, or 0.
/** Examine the content to establish digest, frame rates and any other
* useful metadata.
* @param job Job to use to report progress, or 0.
boost::signals2::signal<void (ChangeType, std::weak_ptr<Content>, int, bool)> Change;
std::shared_ptr<VideoContent> video;
std::shared_ptr<AudioContent> audio;
boost::signals2::signal<void (ChangeType, std::weak_ptr<Content>, int, bool)> Change;
std::shared_ptr<VideoContent> video;
std::shared_ptr<AudioContent> audio;
std::shared_ptr<AtmosContent> atmos;
std::shared_ptr<TextContent> only_text () const;
std::shared_ptr<TextContent> text_of_original_type (TextType type) const;
std::shared_ptr<AtmosContent> atmos;
std::shared_ptr<TextContent> only_text () const;
std::shared_ptr<TextContent> text_of_original_type (TextType type) const;
friend struct best_dcp_frame_rate_test_single;
friend struct best_dcp_frame_rate_test_double;
friend struct audio_sampling_rate_test;
friend struct best_dcp_frame_rate_test_single;
friend struct best_dcp_frame_rate_test_double;
friend struct audio_sampling_rate_test;