mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-04 16:32:39 +00:00
Fixed linux build
This commit is contained in:
parent
d7f78e6720
commit
af2df7d889
@ -454,8 +454,8 @@ int PS4_SYSV_ABI sceAjmBatchStartBuffer(u32 context, u8* p_batch, u32 batch_size
|
|||||||
case Identifier::AjmIdentInputRunBuf: {
|
case Identifier::AjmIdentInputRunBuf: {
|
||||||
auto& buffer = AjmBufferExtract<AjmChunkBuffer>(p_current);
|
auto& buffer = AjmBufferExtract<AjmChunkBuffer>(p_current);
|
||||||
u8* p_begin = reinterpret_cast<u8*>(buffer.p_address);
|
u8* p_begin = reinterpret_cast<u8*>(buffer.p_address);
|
||||||
job.input.buffer.append_range(
|
job.input.buffer.insert(job.input.buffer.end(), p_begin,
|
||||||
std::vector<u8>(p_begin, p_begin + buffer.header.size));
|
p_begin + buffer.header.size);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Identifier::AjmIdentInputControlBuf: {
|
case Identifier::AjmIdentInputControlBuf: {
|
||||||
|
@ -76,7 +76,7 @@ void AjmAt9Decoder::Decode(const AjmJobInput* input, AjmJobOutput* output) {
|
|||||||
if (in_buf.empty() || out_buf.empty()) {
|
if (in_buf.empty() || out_buf.empty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (gapless.total_samples != 0 && gapless.total_samples < gapless_decoded_samples) {
|
if (gapless.total_samples && gapless.total_samples < gapless_decoded_samples) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -120,13 +120,17 @@ void AjmAt9Decoder::Decode(const AjmJobInput* input, AjmJobOutput* output) {
|
|||||||
written = write_output({pcm_buffer.data() + start, nsamples});
|
written = write_output({pcm_buffer.data() + start, nsamples});
|
||||||
gapless.skipped_samples = gapless.skip_samples;
|
gapless.skipped_samples = gapless.skip_samples;
|
||||||
total_decoded_samples += nsamples;
|
total_decoded_samples += nsamples;
|
||||||
gapless_decoded_samples += nsamples;
|
if (gapless.total_samples != 0) {
|
||||||
|
gapless_decoded_samples += nsamples;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
written =
|
written =
|
||||||
write_output({pcm_buffer.data(), std::min(pcm_buffer.size(), samples_remain)});
|
write_output({pcm_buffer.data(), std::min(pcm_buffer.size(), samples_remain)});
|
||||||
total_decoded_samples += codec_info.frameSamples;
|
total_decoded_samples += codec_info.frameSamples;
|
||||||
gapless_decoded_samples += codec_info.frameSamples;
|
if (gapless.total_samples != 0) {
|
||||||
|
gapless_decoded_samples += codec_info.frameSamples;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
num_frames += 1;
|
num_frames += 1;
|
||||||
@ -152,7 +156,7 @@ void AjmAt9Decoder::Decode(const AjmJobInput* input, AjmJobOutput* output) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gapless_decoded_samples >= gapless.total_samples) {
|
if (gapless.total_samples != 0 && gapless_decoded_samples >= gapless.total_samples) {
|
||||||
if (flags.gapless_loop) {
|
if (flags.gapless_loop) {
|
||||||
ResetCodec();
|
ResetCodec();
|
||||||
}
|
}
|
||||||
|
@ -148,12 +148,16 @@ void AjmMp3Decoder::Decode(const AjmJobInput* input, AjmJobOutput* output) {
|
|||||||
write_output({reinterpret_cast<s16*>(frame->data[0]), nsamples});
|
write_output({reinterpret_cast<s16*>(frame->data[0]), nsamples});
|
||||||
gapless.skipped_samples = gapless.skip_samples;
|
gapless.skipped_samples = gapless.skip_samples;
|
||||||
total_decoded_samples += nsamples;
|
total_decoded_samples += nsamples;
|
||||||
gapless_decoded_samples += nsamples;
|
if (gapless.total_samples != 0) {
|
||||||
|
gapless_decoded_samples += nsamples;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
write_output({reinterpret_cast<s16*>(frame->data[0]), size >> 1});
|
write_output({reinterpret_cast<s16*>(frame->data[0]), size >> 1});
|
||||||
total_decoded_samples += frame_samples;
|
total_decoded_samples += frame_samples;
|
||||||
gapless_decoded_samples += frame_samples;
|
if (gapless.total_samples != 0) {
|
||||||
|
gapless_decoded_samples += frame_samples;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
av_frame_free(&frame);
|
av_frame_free(&frame);
|
||||||
if (output->p_stream) {
|
if (output->p_stream) {
|
||||||
@ -166,7 +170,7 @@ void AjmMp3Decoder::Decode(const AjmJobInput* input, AjmJobOutput* output) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
av_packet_free(&pkt);
|
av_packet_free(&pkt);
|
||||||
if (gapless_decoded_samples >= gapless.total_samples) {
|
if (gapless.total_samples != 0 && gapless_decoded_samples >= gapless.total_samples) {
|
||||||
if (flags.gapless_loop) {
|
if (flags.gapless_loop) {
|
||||||
gapless.skipped_samples = 0;
|
gapless.skipped_samples = 0;
|
||||||
gapless_decoded_samples = 0;
|
gapless_decoded_samples = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user