mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-05 13:20:11 +00:00
fix(avplayer): add decode-ahead buffers for application video output
When an application requests only 2 video buffers and holds one during playback, decode-ahead frames allow the decoder to stay ahead and prevent stalls under SyncModeNone. Co-Authored-By: saulo benigno <[email protected]>
This commit is contained in:
1 parent
9651ec9a92
commit
c2fa7fd97f
1 file changed
+3
-2
@@ -32,6 +32,7 @@ constexpr std::uint32_t VideoBufferAlignment = 0x100;
|
||||
constexpr std::uint32_t AudioBufferAlignment = 0x10;
|
||||
constexpr std::uint32_t AudioChunkSamples = 1024;
|
||||
constexpr std::uint32_t AudioMaxChannels = 8;
|
||||
constexpr std::uint32_t VideoDecodeAheadFrames = 4;
|
||||
constexpr std::size_t VideoPacketLimit = 30;
|
||||
constexpr std::size_t AudioPacketLimit = 8;
|
||||
constexpr std::size_t AudioOnlyPacketLimit = 30;
|
||||
@@ -604,8 +605,8 @@ private:
|
||||
pitch = AlignUp(static_cast<std::uint32_t>(decoder.context->width), VideoPitchAlignment);
|
||||
bufferHeight = AlignUp(static_cast<std::uint32_t>(decoder.context->height), VideoHeightAlignment);
|
||||
decoder.bufferSize = pitch * bufferHeight * 3 / 2;
|
||||
count = settings.videoBuffers;
|
||||
decoder.retained = count > 3 ? count - 3 : 0;
|
||||
count = settings.videoBuffers + VideoDecodeAheadFrames;
|
||||
decoder.retained = settings.videoBuffers > 3 ? settings.videoBuffers - 3 : 0;
|
||||
texture = true;
|
||||
alignment = VideoBufferAlignment;
|
||||
} else {
|
||||
|
||||
Reference in new issue
Block a user