cellDmuxPamf: fix stream cache not being consumed in some cases
Some checks are pending
Generate Translation Template / Generate Translation Template (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (/rpcs3/.ci/build-linux-aarch64.sh, gcc, rpcs3/rpcs3-ci-jammy-aarch64:1.9, ubuntu-24.04-arm) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (/rpcs3/.ci/build-linux.sh, gcc, rpcs3/rpcs3-ci-jammy:1.9, ubuntu-24.04) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1, rpcs3/rpcs3-binaries-linux-arm64, /rpcs3/.ci/build-linux-aarch64.sh, clang, rpcs3/rpcs3-ci-jammy-aarch64:1.9, ubuntu-24.04-arm) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (d812f1254a1157c80fd402f94446310560f54e5f, rpcs3/rpcs3-binaries-linux, /rpcs3/.ci/build-linux.sh, clang, rpcs3/rpcs3-ci-jammy:1.9, ubuntu-24.04) (push) Waiting to run
Build RPCS3 / RPCS3 Mac ${{ matrix.name }} (0, 51ae32f468089a8169aaf1567de355ff4a3e0842, rpcs3/rpcs3-binaries-mac, Intel) (push) Waiting to run
Build RPCS3 / RPCS3 Mac ${{ matrix.name }} (1, 8e21bdbc40711a3fccd18fbf17b742348b0f4281, rpcs3/rpcs3-binaries-mac-arm64, Apple Silicon) (push) Waiting to run
Build RPCS3 / RPCS3 Windows (push) Waiting to run
Build RPCS3 / RPCS3 Windows Clang ${{ matrix.arch }} (aarch64, clang, clangarm64, ARM64, windows-11-arm) (push) Waiting to run
Build RPCS3 / RPCS3 Windows Clang ${{ matrix.arch }} (x86_64, clang, clang64, X64, windows-2025) (push) Waiting to run
Build RPCS3 / RPCS3 FreeBSD (push) Waiting to run

This commit is contained in:
capriots 2026-03-07 16:30:38 +01:00 committed by Elad
parent 4828d4d2d6
commit 2573cc5fd0

View file

@ -354,9 +354,10 @@ u32 dmux_pamf_base::video_stream<avc>::parse_stream(std::span<const u8> stream)
{
au_chunk.data = { au_chunk_begin, stream_it };
std::copy_n(cache.begin(), cache_idx, std::back_inserter(au_chunk.cached_data));
cache.erase(cache.begin(), cache.begin() + cache_idx);
}
cache.erase(cache.begin(), cache.begin() + cache_idx);
// Cache the end of the stream if an access unit wasn't completed. There could be the beginning of a delimiter in the last three bytes
if (current_au.state != access_unit::state::complete)
{
@ -499,9 +500,10 @@ u32 dmux_pamf_base::audio_stream<ac3>::parse_stream(std::span<const u8> stream)
{
au_chunk.data = { au_chunk_begin, stream_it };
std::copy_n(cache.begin(), cache_idx, std::back_inserter(au_chunk.cached_data));
cache.erase(cache.begin(), cache.begin() + cache_idx);
}
cache.erase(cache.begin(), cache.begin() + cache_idx);
// Cache the end of the stream if an access unit wasn't completed. There could be the beginning of a delimiter in the last three bytes
if (current_au.state != access_unit::state::complete && current_au.state != access_unit::state::size_mismatch)
{