projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Stop player analysing audio even if it is configured automatically to happen.
[dcpomatic.git]
/
src
/
lib
/
film.cc
diff --git
a/src/lib/film.cc
b/src/lib/film.cc
index 36221fb9a5ed39f5ed74130498ecce976ad10700..0c6a553861d1ea2d09e272aa2f1fe84b8f6e7852 100644
(file)
--- a/
src/lib/film.cc
+++ b/
src/lib/film.cc
@@
-19,7
+19,7
@@
*/
/** @file src/film.cc
*/
/** @file src/film.cc
- * @brief A representation of some audio
and video
content, and details of
+ * @brief A representation of some audio
, video and subtitle
content, and details of
* how they should be presented in a DCP.
*/
* how they should be presented in a DCP.
*/
@@
-27,6
+27,7
@@
#include "job.h"
#include "util.h"
#include "job_manager.h"
#include "job.h"
#include "util.h"
#include "job_manager.h"
+#include "dcp_encoder.h"
#include "transcode_job.h"
#include "upload_job.h"
#include "null_log.h"
#include "transcode_job.h"
#include "upload_job.h"
#include "null_log.h"
@@
-308,7
+309,7
@@
Film::make_dcp ()
}
if (name().empty()) {
}
if (name().empty()) {
-
throw MissingSettingError (_("name")
);
+
set_name ("DCP"
);
}
BOOST_FOREACH (shared_ptr<const Content> i, content ()) {
}
BOOST_FOREACH (shared_ptr<const Content> i, content ()) {
@@
-341,7
+342,9
@@
Film::make_dcp ()
}
LOG_GENERAL ("J2K bandwidth %1", j2k_bandwidth());
}
LOG_GENERAL ("J2K bandwidth %1", j2k_bandwidth());
- JobManager::instance()->add (shared_ptr<Job> (new TranscodeJob (shared_from_this())));
+ shared_ptr<TranscodeJob> tj (new TranscodeJob (shared_from_this()));
+ tj->set_encoder (shared_ptr<Encoder> (new DCPEncoder (shared_from_this(), tj)));
+ JobManager::instance()->add (tj);
}
/** Start a job to send our DCP to the configured TMS */
}
/** Start a job to send our DCP to the configured TMS */
@@
-511,7
+514,7
@@
Film::read_metadata (optional<boost::filesystem::path> path)
}
/** Given a directory name, return its full path within the Film's directory.
}
/** Given a directory name, return its full path within the Film's directory.
- * @param d directory name within the Fil
n
's directory.
+ * @param d directory name within the Fil
m
's directory.
* @param create true to create the directory (and its parents) if they do not exist.
*/
boost::filesystem::path
* @param create true to create the directory (and its parents) if they do not exist.
*/
boost::filesystem::path
@@
-1024,24
+1027,27
@@
Film::content () const
return _playlist->content ();
}
return _playlist->content ();
}
+/** @param content Content to add.
+ * @param disable_audio_analysis true to never do automatic audio analysis, even if it is enabled in configuration.
+ */
void
void
-Film::examine_and_add_content (shared_ptr<Content> c)
+Film::examine_and_add_content (shared_ptr<Content> c
ontent, bool disable_audio_analysis
)
{
{
- if (dynamic_pointer_cast<FFmpegContent> (c) && _directory) {
- run_ffprobe (c->path(0), file ("ffprobe.log"), _log);
+ if (dynamic_pointer_cast<FFmpegContent> (c
ontent
) && _directory) {
+ run_ffprobe (c
ontent
->path(0), file ("ffprobe.log"), _log);
}
}
- shared_ptr<Job> j (new ExamineContentJob (shared_from_this(), c));
+ shared_ptr<Job> j (new ExamineContentJob (shared_from_this(), c
ontent
));
_job_connections.push_back (
_job_connections.push_back (
- j->Finished.connect (bind (&Film::maybe_add_content, this, weak_ptr<Job>
(j), weak_ptr<Content> (c)
))
+ j->Finished.connect (bind (&Film::maybe_add_content, this, weak_ptr<Job>
(j), weak_ptr<Content>(content), disable_audio_analysis
))
);
JobManager::instance()->add (j);
}
void
);
JobManager::instance()->add (j);
}
void
-Film::maybe_add_content (weak_ptr<Job> j, weak_ptr<Content> c)
+Film::maybe_add_content (weak_ptr<Job> j, weak_ptr<Content> c
, bool disable_audio_analysis
)
{
shared_ptr<Job> job = j.lock ();
if (!job || !job->finished_ok ()) {
{
shared_ptr<Job> job = j.lock ();
if (!job || !job->finished_ok ()) {
@@
-1055,7
+1061,7
@@
Film::maybe_add_content (weak_ptr<Job> j, weak_ptr<Content> c)
add_content (content);
add_content (content);
- if (Config::instance()->automatic_audio_analysis() && content->audio) {
+ if (Config::instance()->automatic_audio_analysis() && content->audio
&& !disable_audio_analysis
) {
shared_ptr<Playlist> playlist (new Playlist);
playlist->add (content);
boost::signals2::connection c;
shared_ptr<Playlist> playlist (new Playlist);
playlist->add (content);
boost::signals2::connection c;
@@
-1110,7
+1116,7
@@
Film::move_content_later (shared_ptr<Content> c)
DCPTime
Film::length () const
{
DCPTime
Film::length () const
{
- return _playlist->length
(
);
+ return _playlist->length
().ceil(video_frame_rate()
);
}
int
}
int
@@
-1453,7
+1459,7
@@
list<DCPTimePeriod>
Film::reels () const
{
list<DCPTimePeriod> p;
Film::reels () const
{
list<DCPTimePeriod> p;
- DCPTime const len = length()
.ceil (video_frame_rate ())
;
+ DCPTime const len = length();
switch (reel_type ()) {
case REELTYPE_SINGLE:
switch (reel_type ()) {
case REELTYPE_SINGLE: