mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-04-20 19:44:46 +00:00
Fixed linux build
This commit is contained in:
parent
d7f78e6720
commit
af2df7d889
3 changed files with 17 additions and 9 deletions
|
@ -454,8 +454,8 @@ int PS4_SYSV_ABI sceAjmBatchStartBuffer(u32 context, u8* p_batch, u32 batch_size
|
|||
case Identifier::AjmIdentInputRunBuf: {
|
||||
auto& buffer = AjmBufferExtract<AjmChunkBuffer>(p_current);
|
||||
u8* p_begin = reinterpret_cast<u8*>(buffer.p_address);
|
||||
job.input.buffer.append_range(
|
||||
std::vector<u8>(p_begin, p_begin + buffer.header.size));
|
||||
job.input.buffer.insert(job.input.buffer.end(), p_begin,
|
||||
p_begin + buffer.header.size);
|
||||
break;
|
||||
}
|
||||
case Identifier::AjmIdentInputControlBuf: {
|
||||
|
|
|
@ -76,7 +76,7 @@ void AjmAt9Decoder::Decode(const AjmJobInput* input, AjmJobOutput* output) {
|
|||
if (in_buf.empty() || out_buf.empty()) {
|
||||
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 true;
|
||||
|
@ -120,13 +120,17 @@ void AjmAt9Decoder::Decode(const AjmJobInput* input, AjmJobOutput* output) {
|
|||
written = write_output({pcm_buffer.data() + start, nsamples});
|
||||
gapless.skipped_samples = gapless.skip_samples;
|
||||
total_decoded_samples += nsamples;
|
||||
gapless_decoded_samples += nsamples;
|
||||
if (gapless.total_samples != 0) {
|
||||
gapless_decoded_samples += nsamples;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
written =
|
||||
write_output({pcm_buffer.data(), std::min(pcm_buffer.size(), samples_remain)});
|
||||
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;
|
||||
|
@ -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) {
|
||||
ResetCodec();
|
||||
}
|
||||
|
|
|
@ -148,12 +148,16 @@ void AjmMp3Decoder::Decode(const AjmJobInput* input, AjmJobOutput* output) {
|
|||
write_output({reinterpret_cast<s16*>(frame->data[0]), nsamples});
|
||||
gapless.skipped_samples = gapless.skip_samples;
|
||||
total_decoded_samples += nsamples;
|
||||
gapless_decoded_samples += nsamples;
|
||||
if (gapless.total_samples != 0) {
|
||||
gapless_decoded_samples += nsamples;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
write_output({reinterpret_cast<s16*>(frame->data[0]), size >> 1});
|
||||
total_decoded_samples += frame_samples;
|
||||
gapless_decoded_samples += frame_samples;
|
||||
if (gapless.total_samples != 0) {
|
||||
gapless_decoded_samples += frame_samples;
|
||||
}
|
||||
}
|
||||
av_frame_free(&frame);
|
||||
if (output->p_stream) {
|
||||
|
@ -166,7 +170,7 @@ void AjmMp3Decoder::Decode(const AjmJobInput* input, AjmJobOutput* output) {
|
|||
}
|
||||
}
|
||||
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) {
|
||||
gapless.skipped_samples = 0;
|
||||
gapless_decoded_samples = 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue