diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-07-24 23:37:23 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-07-24 23:37:23 +0100 |
| commit | ccd81cefeebba6a05b0a848d378dccb5a3ced086 (patch) | |
| tree | 9c65cd83405544671e62da7c0737a15db4e27db4 /src/lib | |
| parent | 240bed409d133f80f5830898033ff9377b5c408f (diff) | |
Fix length of still-image DCPs.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/film_state.h | 2 | ||||
| -rw-r--r-- | src/lib/make_dcp_job.cc | 12 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/film_state.h b/src/lib/film_state.h index beac5fc2c..3a547ed1d 100644 --- a/src/lib/film_state.h +++ b/src/lib/film_state.h @@ -139,7 +139,7 @@ public: std::vector<int> thumbs; /** Size, in pixels, of the source (ignoring cropping) */ Size size; - /** Length in frames */ + /** Length of the source in frames */ int length; /** Number of audio channels */ int audio_channels; diff --git a/src/lib/make_dcp_job.cc b/src/lib/make_dcp_job.cc index 3de5e8d5d..a6d0c2d10 100644 --- a/src/lib/make_dcp_job.cc +++ b/src/lib/make_dcp_job.cc @@ -31,6 +31,7 @@ extern "C" { #include "dcp_content_type.h" #include "exceptions.h" #include "options.h" +#include "imagemagick_decoder.h" using namespace std; using namespace boost; @@ -73,7 +74,16 @@ MakeDCPJob::run () /* Remove any old DCP */ filesystem::remove_all (dcp_path); - int const frames = _fs->dcp_frames ? _fs->dcp_frames : _fs->length; + int frames = 0; + switch (_fs->content_type ()) { + case VIDEO: + frames = _fs->dcp_frames ? _fs->dcp_frames : _fs->length; + break; + case STILL: + frames = _fs->still_duration * ImageMagickDecoder::static_frames_per_second (); + break; + } + libdcp::DCP dcp (_fs->dir (_fs->name), _fs->name, _fs->dcp_content_type->libdcp_type (), rint (_fs->frames_per_second), frames); dcp.Progress.connect (sigc::mem_fun (*this, &MakeDCPJob::dcp_progress)); |
