[APU][Janky] Fixed issues with incorrect frames on streamed data
This requires a lot more research and test data!
This commit is contained in:
@@ -446,7 +446,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) {
|
||||||
is_stream_done_ = true;
|
if (current_input_packet_count == 1) {
|
||||||
|
SwapInputBuffer(data);
|
||||||
|
} else {
|
||||||
|
is_stream_done_ = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -584,7 +588,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) {
|
||||||
is_stream_done_ = true;
|
if (current_input_packet_count == 1) {
|
||||||
|
SwapInputBuffer(data);
|
||||||
|
} else {
|
||||||
|
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) {
|
||||||
is_stream_done_ = true;
|
if (current_input_packet_count == 1) {
|
||||||
|
SwapInputBuffer(data);
|
||||||
|
} else {
|
||||||
|
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,7 +711,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) {
|
||||||
is_stream_done_ = true;
|
if (current_input_packet_count == 1) {
|
||||||
|
SwapInputBuffer(data);
|
||||||
|
} else {
|
||||||
|
is_stream_done_ = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user