mirror of
https://github.com/xenia-project/xenia.git
synced 2025-12-06 07:12:03 +01:00
[APU][Janky] Fixed issues with incorrect frames on streamed data
This requires a lot more research and test data!
This commit is contained in:
parent
dae508500a
commit
ba66373d8c
|
|
@ -446,8 +446,12 @@ void XmaContext::Decode(XMA_CONTEXT_DATA* data) {
|
||||||
reuse_input_buffer = TrySetupNextLoop(data, true);
|
reuse_input_buffer = TrySetupNextLoop(data, true);
|
||||||
}
|
}
|
||||||
if (!reuse_input_buffer) {
|
if (!reuse_input_buffer) {
|
||||||
|
if (current_input_packet_count == 1) {
|
||||||
|
SwapInputBuffer(data);
|
||||||
|
} else {
|
||||||
is_stream_done_ = true;
|
is_stream_done_ = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -584,8 +588,12 @@ void XmaContext::Decode(XMA_CONTEXT_DATA* data) {
|
||||||
reuse_input_buffer = TrySetupNextLoop(data, true);
|
reuse_input_buffer = TrySetupNextLoop(data, true);
|
||||||
}
|
}
|
||||||
if (!reuse_input_buffer) {
|
if (!reuse_input_buffer) {
|
||||||
|
if (current_input_packet_count == 1) {
|
||||||
|
SwapInputBuffer(data);
|
||||||
|
} else {
|
||||||
is_stream_done_ = true;
|
is_stream_done_ = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -678,7 +686,11 @@ void XmaContext::Decode(XMA_CONTEXT_DATA* data) {
|
||||||
reuse_input_buffer = TrySetupNextLoop(data, true);
|
reuse_input_buffer = TrySetupNextLoop(data, true);
|
||||||
}
|
}
|
||||||
if (!reuse_input_buffer) {
|
if (!reuse_input_buffer) {
|
||||||
|
if (current_input_packet_count == 1) {
|
||||||
|
SwapInputBuffer(data);
|
||||||
|
} else {
|
||||||
is_stream_done_ = true;
|
is_stream_done_ = true;
|
||||||
|
}
|
||||||
if (output_rb.write_offset() == output_rb.read_offset()) {
|
if (output_rb.write_offset() == output_rb.read_offset()) {
|
||||||
data->output_buffer_valid = 0;
|
data->output_buffer_valid = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -699,8 +711,12 @@ void XmaContext::Decode(XMA_CONTEXT_DATA* data) {
|
||||||
reuse_input_buffer = TrySetupNextLoop(data, true);
|
reuse_input_buffer = TrySetupNextLoop(data, true);
|
||||||
}
|
}
|
||||||
if (!reuse_input_buffer) {
|
if (!reuse_input_buffer) {
|
||||||
|
if (current_input_packet_count == 1) {
|
||||||
|
SwapInputBuffer(data);
|
||||||
|
} else {
|
||||||
is_stream_done_ = true;
|
is_stream_done_ = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
offset =
|
offset =
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue