summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/reel_writer.cc3
-rw-r--r--src/lib/writer.cc7
2 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc
index e8db82fbb..f9a110ed1 100644
--- a/src/lib/reel_writer.cc
+++ b/src/lib/reel_writer.cc
@@ -179,8 +179,7 @@ ReelWriter::ReelWriter (
_sound_asset = make_shared<dcp::SoundAsset> (
dcp::Fraction(film()->video_frame_rate(), 1),
film()->audio_frame_rate(),
- /* Always make 16-channel sound assets for SMPTE; libdcp will pad unused channels for us */
- standard == dcp::Standard::SMPTE ? MAX_DCP_AUDIO_CHANNELS : film()->audio_channels(),
+ audio_channels_to_write_to_mxf(film()),
lang ? *lang : dcp::LanguageTag("en-US"),
standard
);
diff --git a/src/lib/writer.cc b/src/lib/writer.cc
index 71e9d579d..573e9da26 100644
--- a/src/lib/writer.cc
+++ b/src/lib/writer.cc
@@ -653,9 +653,12 @@ Writer::finish (boost::filesystem::path output_dcp)
field = dcp::MCASoundField::FIVE_POINT_ONE;
}
- dcp::MainSoundConfiguration msc(field, MAX_DCP_AUDIO_CHANNELS);
+ auto const audio_channels = audio_channels_to_write_to_mxf(film());
+ dcp::MainSoundConfiguration msc(field, audio_channels);
for (auto i: film()->mapped_audio_channels()) {
- msc.set_mapping(i, static_cast<dcp::Channel>(i));
+ if (i < audio_channels) {
+ msc.set_mapping(i, static_cast<dcp::Channel>(i));
+ }
}
cpl->set_main_sound_configuration(msc);