mirror of
https://github.com/xenia-project/xenia.git
synced 2025-12-06 07:12:03 +01:00
[APU] Resolved context stuck with is_stream_done_ flag and no space left
This commit is contained in:
parent
b7bc0425ba
commit
39c509b57f
|
|
@ -368,6 +368,13 @@ void XmaContext::Decode(XMA_CONTEXT_DATA* data) {
|
||||||
current_input_buffer, data->output_buffer_ptr,
|
current_input_buffer, data->output_buffer_ptr,
|
||||||
data->output_buffer_block_count);
|
data->output_buffer_block_count);
|
||||||
|
|
||||||
|
if (is_stream_done_) {
|
||||||
|
is_stream_done_ = false;
|
||||||
|
packets_skip_ = 0;
|
||||||
|
SwapInputBuffer(data);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
size_t input_buffer_0_size =
|
size_t input_buffer_0_size =
|
||||||
data->input_buffer_0_packet_count * kBytesPerPacket;
|
data->input_buffer_0_packet_count * kBytesPerPacket;
|
||||||
size_t input_buffer_1_size =
|
size_t input_buffer_1_size =
|
||||||
|
|
@ -414,13 +421,6 @@ void XmaContext::Decode(XMA_CONTEXT_DATA* data) {
|
||||||
// Out of data.
|
// Out of data.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_stream_done_) {
|
|
||||||
is_stream_done_ = false;
|
|
||||||
packets_skip_ = 0;
|
|
||||||
SwapInputBuffer(data);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Setup the input buffer if we are at loop_end.
|
// Setup the input buffer if we are at loop_end.
|
||||||
// The input buffer must not be swapped out until all loops are processed.
|
// The input buffer must not be swapped out until all loops are processed.
|
||||||
reuse_input_buffer = TrySetupNextLoop(data, false);
|
reuse_input_buffer = TrySetupNextLoop(data, false);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue