mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-04-20 11:35:45 +00:00
fixed number of remaining samples calculation
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / windows-qt (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / macos-qt (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-qt (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / windows-qt (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / macos-qt (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-qt (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
should fix the small crackling sounds that play every now and again
This commit is contained in:
parent
18a4bd2014
commit
f818f3e69f
2 changed files with 7 additions and 5 deletions
|
@ -107,16 +107,17 @@ void AjmAt9Decoder::Decode(const AjmJobInput* input, AjmJobOutput* output) {
|
|||
ASSERT_MSG(ret == At9Status::ERR_SUCCESS, "Atrac9Decode failed ret = {:#x}", ret);
|
||||
in_buf = in_buf.subspan(bytes_used);
|
||||
superframe_bytes_remain -= bytes_used;
|
||||
const size_t samples_remain = gapless.total_samples != 0
|
||||
? gapless.total_samples - gapless_decoded_samples
|
||||
: std::numeric_limits<size_t>::max();
|
||||
const size_t samples_remain =
|
||||
gapless.total_samples != 0
|
||||
? (gapless.total_samples - gapless_decoded_samples) * codec_info.channels
|
||||
: std::numeric_limits<size_t>::max();
|
||||
bool written = false;
|
||||
if (gapless.skipped_samples < gapless.skip_samples) {
|
||||
gapless.skipped_samples += codec_info.frameSamples;
|
||||
if (gapless.skipped_samples > gapless.skip_samples) {
|
||||
const u32 nsamples = gapless.skipped_samples - gapless.skip_samples;
|
||||
const auto start = codec_info.frameSamples - nsamples;
|
||||
written = write_output({pcm_buffer.data() + start, nsamples});
|
||||
written = write_output({pcm_buffer.data() + start, nsamples * codec_info.channels});
|
||||
gapless.skipped_samples = gapless.skip_samples;
|
||||
total_decoded_samples += nsamples;
|
||||
if (gapless.total_samples != 0) {
|
||||
|
|
|
@ -145,7 +145,8 @@ void AjmMp3Decoder::Decode(const AjmJobInput* input, AjmJobOutput* output) {
|
|||
if (gapless.skipped_samples > gapless.skip_samples) {
|
||||
const u32 nsamples = gapless.skipped_samples - gapless.skip_samples;
|
||||
const auto start = frame->nb_samples - nsamples;
|
||||
write_output({reinterpret_cast<s16*>(frame->data[0]), nsamples});
|
||||
write_output({reinterpret_cast<s16*>(frame->data[0]),
|
||||
nsamples * frame->ch_layout.nb_channels});
|
||||
gapless.skipped_samples = gapless.skip_samples;
|
||||
total_decoded_samples += nsamples;
|
||||
if (gapless.total_samples != 0) {
|
||||
|
|
Loading…
Add table
Reference in a new issue