diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-07-08 23:23:07 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-07-08 23:23:07 +0100 |
| commit | f1fab174c7db85a1641bca2830ea75829982723f (patch) | |
| tree | 80f64c7f5daf22f129b5e286487a704c6c069e14 /src/lib/util.cc | |
| parent | 2b4110534a7e3b2a2905c9f25226ba5c1ba4a167 (diff) | |
| parent | 50e6acde52c7eaa3afa239bc14f08eced3787bd9 (diff) | |
Merge branch 'staging'
Diffstat (limited to 'src/lib/util.cc')
| -rw-r--r-- | src/lib/util.cc | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/lib/util.cc b/src/lib/util.cc index 4cf57368a..83980f828 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -61,6 +61,7 @@ extern "C" { #include "filter.h" #include "sound_processor.h" #include "config.h" +#include "film.h" #ifdef DVDOMATIC_WINDOWS #include "stack.hpp" #endif @@ -962,8 +963,9 @@ audio_channel_name (int c) return channels[c]; } -AudioMapping::AudioMapping (int c) - : _source_channels (c) +AudioMapping::AudioMapping (shared_ptr<const Film> f) + : _source_channels (f->audio_stream() ? f->audio_stream()->channels() : 0) + , _minimum_channels (f->minimum_audio_channels ()) { } @@ -1001,8 +1003,11 @@ AudioMapping::dcp_to_source (libdcp::Channel c) const return static_cast<int> (c); } +/** @return minimum number of DCP channels that we can allow in this + DCP, given the nature of the source. +*/ int -AudioMapping::dcp_channels () const +AudioMapping::minimum_dcp_channels () const { if (_source_channels == 1) { /* The source is mono, so to put the mono channel into @@ -1014,6 +1019,15 @@ AudioMapping::dcp_channels () const return _source_channels; } +/** @return number of channels that there should be in the DCP, including + * any silent padded ones. + */ +int +AudioMapping::dcp_channels () const +{ + return max (_source_channels, _minimum_channels); +} + FrameRateConversion::FrameRateConversion (float source, int dcp) : skip (false) , repeat (false) |
