diff options
| -rw-r--r-- | src/audio_core/renderer/command/command_buffer.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/audio_core/renderer/command/command_buffer.cpp b/src/audio_core/renderer/command/command_buffer.cpp index 2ef879ee1..8c6fe97e7 100644 --- a/src/audio_core/renderer/command/command_buffer.cpp +++ b/src/audio_core/renderer/command/command_buffer.cpp | |||
| @@ -460,21 +460,23 @@ void CommandBuffer::GenerateDeviceSinkCommand(const s32 node_id, const s16 buffe | |||
| 460 | 460 | ||
| 461 | cmd.session_id = session_id; | 461 | cmd.session_id = session_id; |
| 462 | 462 | ||
| 463 | cmd.input_count = parameter.input_count; | ||
| 464 | s16 max_input{0}; | ||
| 465 | for (u32 i = 0; i < parameter.input_count; i++) { | ||
| 466 | cmd.inputs[i] = buffer_offset + parameter.inputs[i]; | ||
| 467 | max_input = std::max(max_input, cmd.inputs[i]); | ||
| 468 | } | ||
| 469 | |||
| 463 | if (state.upsampler_info != nullptr) { | 470 | if (state.upsampler_info != nullptr) { |
| 464 | const auto size_{state.upsampler_info->sample_count * parameter.input_count}; | 471 | const auto size_{state.upsampler_info->sample_count * parameter.input_count}; |
| 465 | const auto size_bytes{size_ * sizeof(s32)}; | 472 | const auto size_bytes{size_ * sizeof(s32)}; |
| 466 | const auto addr{memory_pool->Translate(state.upsampler_info->samples_pos, size_bytes)}; | 473 | const auto addr{memory_pool->Translate(state.upsampler_info->samples_pos, size_bytes)}; |
| 467 | cmd.sample_buffer = {reinterpret_cast<s32*>(addr), | 474 | cmd.sample_buffer = {reinterpret_cast<s32*>(addr), |
| 468 | parameter.input_count * state.upsampler_info->sample_count}; | 475 | (max_input + 1) * state.upsampler_info->sample_count}; |
| 469 | } else { | 476 | } else { |
| 470 | cmd.sample_buffer = samples_buffer; | 477 | cmd.sample_buffer = samples_buffer; |
| 471 | } | 478 | } |
| 472 | 479 | ||
| 473 | cmd.input_count = parameter.input_count; | ||
| 474 | for (u32 i = 0; i < parameter.input_count; i++) { | ||
| 475 | cmd.inputs[i] = buffer_offset + parameter.inputs[i]; | ||
| 476 | } | ||
| 477 | |||
| 478 | GenerateEnd<DeviceSinkCommand>(cmd); | 480 | GenerateEnd<DeviceSinkCommand>(cmd); |
| 479 | } | 481 | } |
| 480 | 482 | ||