- if (core::needs_rearranging(\r
- view, config_.audio_layout, config_.num_out_channels()))\r
- {\r
- std::vector<int32_t> resulting_audio_data;\r
- resulting_audio_data.resize(\r
- sample_frame_count * config_.num_out_channels());\r
-\r
- auto dest_view = core::make_multichannel_view<int32_t>(\r
- resulting_audio_data.begin(), \r
- resulting_audio_data.end(),\r
- config_.audio_layout,\r
- config_.num_out_channels());\r
-\r
- core::rearrange_or_rearrange_and_mix(\r
- view, dest_view, core::default_mix_config_repository());\r
-\r
- if (config_.audio_layout.num_channels == 1) // mono\r
- boost::copy( // duplicate L to R\r
- dest_view.channel(0),\r
- dest_view.channel(1).begin());\r
-\r
- audio_container_.push_back(std::move(resulting_audio_data));\r
- }\r
- else\r
- {\r
- audio_container_.push_back(\r
- std::vector<int32_t>(view.raw_begin(), view.raw_end()));\r
- }\r
+ audio_container_.push_back(core::get_rearranged_and_mixed(\r
+ view,\r
+ config_.audio_layout,\r
+ config_.num_out_channels()));\r