X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fplayer.cc;h=9f859969341fa65a1eacc22d0c3da9b7002387c0;hb=ea6240f349a27e1e8f4f03ee69640e3a2939d958;hp=f4e181daf302ad1163476ab9cd2c35e13ffd309b;hpb=a3241f40b061480a0907699a5857075388216643;p=dcpomatic.git diff --git a/src/lib/player.cc b/src/lib/player.cc index f4e181daf..9f8599693 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -144,7 +144,6 @@ Player::pass () { if (!_have_valid_pieces) { setup_pieces (); - _have_valid_pieces = true; } Time earliest_t = TIME_MAX; @@ -345,10 +344,18 @@ Player::process_audio (weak_ptr weak_piece, shared_ptr dcp_mapped (new AudioBuffers (_film->audio_channels(), audio->frames())); dcp_mapped->make_silent (); - list > map = content->audio_mapping().content_to_dcp (); - for (list >::iterator i = map.begin(); i != map.end(); ++i) { - if (i->first < audio->channels() && i->second < dcp_mapped->channels()) { - dcp_mapped->accumulate_channel (audio.get(), i->first, i->second); + + AudioMapping map = content->audio_mapping (); + for (int i = 0; i < map.content_channels(); ++i) { + for (int j = 0; j < _film->audio_channels(); ++j) { + if (map.get (i, static_cast (j)) > 0) { + dcp_mapped->accumulate_channel ( + audio.get(), + i, + static_cast (j), + map.get (i, static_cast (j)) + ); + } } } @@ -376,16 +383,16 @@ void Player::flush () { TimedAudioBuffers