*/
/** @file src/examine_content_job.h
- * @brief A class to run through content at high speed to find its length.
+ * @brief A class to obtain the length and MD5 digest of a content file.
*/
#include "job.h"
/** @class ExamineContentJob
- * @brief A class to run through content at high speed to find its length.
+ * @brief A class to obtain the length and MD5 digest of a content file.
*/
class ExamineContentJob : public Job
{
char buffer[128];
gethostname (buffer, sizeof (buffer));
log()->log (String::compose ("Starting to make DCP on %1", buffer));
- log()->log (String::compose ("Content is %1; type %2", content_path(), (content_type() == STILL ? "still" : "video")));
- log()->log (String::compose ("Content length %1", length().get()));
- log()->log (String::compose ("Content digest %1", content_digest()));
- log()->log (String::compose ("%1 threads", Config::instance()->num_local_encoding_threads()));
- log()->log (String::compose ("J2K bandwidth %1", j2k_bandwidth()));
}
-
+
+ log()->log (String::compose ("Content is %1; type %2", content_path(), (content_type() == STILL ? "still" : "video")));
+ log()->log (String::compose ("Content length %1", length().get()));
+ log()->log (String::compose ("Content digest %1", content_digest()));
+ log()->log (String::compose ("%1 threads", Config::instance()->num_local_encoding_threads()));
+ log()->log (String::compose ("J2K bandwidth %1", j2k_bandwidth()));
+#ifdef DVDOMATIC_DEBUG
+ log()->log ("DVD-o-matic built in debug mode.");
+#else
+ log()->log ("DVD-o-matic built in optimised mode.");
+#endif
+#ifdef LIBDCP_DEBUG
+ log()->log ("libdcp built in debug mode.");
+#else
+ log()->log ("libdcp built in optimised mode.");
+#endif
+
if (format() == 0) {
throw MissingSettingError ("format");
}
class ExternalAudioStream;
/** @class Film
- * @brief A representation of a video with sound.
+ * @brief A representation of a video, maybe with sound.
*
- * A representation of a piece of video (with sound), including naming,
+ * A representation of a piece of video (maybe with sound), including naming,
* the source content file, and how it should be presented in a DCP.
*/
class Film : public boost::enable_shared_from_this<Film>
std::string dci_name () const;
std::string dcp_name () const;
+ /** @return true if our state has changed since we last saved it */
bool dirty () const {
return _dirty;
}
void set_dci_date_today ();
+ /** Identifiers for the parts of our state;
+ used for signalling changes.
+ */
enum Property {
NONE,
NAME,
return _subtitle_scale;
}
- /** @return index of colour LUT to use when converting RGB to XYZ.
- * 0: sRGB
- * 1: Rec 709
- */
int colour_lut () const {
boost::mutex::scoped_lock lm (_state_mutex);
return _colour_lut;
}
- /** @return bandwidth for J2K files in bits per second */
int j2k_bandwidth () const {
boost::mutex::scoped_lock lm (_state_mutex);
return _j2k_bandwidth;
* or an absolute path.
*/
std::string _content;
+ /** If this is true, we will believe the length specified by the content
+ * file's header; if false, we will run through the whole content file
+ * the first time we see it in order to obtain the length.
+ */
bool _trust_content_header;
/** The type of content that this Film represents (feature, trailer etc.) */
DCPContentType const * _dcp_content_type;
int _subtitle_offset;
/** scale factor to apply to subtitles */
float _subtitle_scale;
- /** index of colour LUT to use when converting RGB to XYZ
- * (see colour_lut ())
+ /** index of colour LUT to use when converting RGB to XYZ.
+ * 0: sRGB
+ * 1: Rec 709
*/
int _colour_lut;
/** bandwidth for J2K files in bits per second */