From af2df7d889d54291ab1386ad3dbd21ffaea364cb Mon Sep 17 00:00:00 2001 From: Vladislav Mikhalin Date: Sat, 2 Nov 2024 09:55:41 +0300 Subject: [PATCH] Fixed linux build --- src/core/libraries/ajm/ajm.cpp | 4 ++-- src/core/libraries/ajm/ajm_at9.cpp | 12 ++++++++---- src/core/libraries/ajm/ajm_mp3.cpp | 10 +++++++--- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/core/libraries/ajm/ajm.cpp b/src/core/libraries/ajm/ajm.cpp index c31a3c4c0..b29ed7203 100644 --- a/src/core/libraries/ajm/ajm.cpp +++ b/src/core/libraries/ajm/ajm.cpp @@ -454,8 +454,8 @@ int PS4_SYSV_ABI sceAjmBatchStartBuffer(u32 context, u8* p_batch, u32 batch_size case Identifier::AjmIdentInputRunBuf: { auto& buffer = AjmBufferExtract(p_current); u8* p_begin = reinterpret_cast(buffer.p_address); - job.input.buffer.append_range( - std::vector(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: { diff --git a/src/core/libraries/ajm/ajm_at9.cpp b/src/core/libraries/ajm/ajm_at9.cpp index 59e45bf57..50c0e9444 100644 --- a/src/core/libraries/ajm/ajm_at9.cpp +++ b/src/core/libraries/ajm/ajm_at9.cpp @@ -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(); } diff --git a/src/core/libraries/ajm/ajm_mp3.cpp b/src/core/libraries/ajm/ajm_mp3.cpp index 0a43883b5..71b3fd3b9 100644 --- a/src/core/libraries/ajm/ajm_mp3.cpp +++ b/src/core/libraries/ajm/ajm_mp3.cpp @@ -148,12 +148,16 @@ void AjmMp3Decoder::Decode(const AjmJobInput* input, AjmJobOutput* output) { write_output({reinterpret_cast(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(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;