Commit Graph
14 Commits
Author SHA1 Message Date
boykopovar 024dddc6f4 fix(avplayer): restore extended start position parameters 2026-10-21 21:53:05 +03:00
Dragost 3b40961d5d fix(libSceAvPlayer): allow presenting video frames within sync tolerance 2026-10-21 11:32:33 +02:00
gohansharma79-svg b0a7695b57 fix(avplayer): deliver the first paused picture after audio starts 2026-10-19 03:46:40 +05:30
mrfelekandClaude Opus 5.5 cfa5b9b47c feat(libSceAvPlayer): accept VP9 video and Opus audio streams
Sources whose streams are VP9 or Opus were dropped by IsStreamSupported, so
a WebM movie added with sceAvPlayerAddSource had no streams and the player
reported an error. The bundled FFmpeg already decodes both; their frames go
through the existing NV12 and PCM output paths.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BywPXoZACVi8ALV4JKvuPZ
2026-10-17 17:32:35 +02:00
Leonardo Baldazzi 742aeb4211 fix(avplayer): preserve caller-paced delivery in no-sync mode 2026-10-16 22:35:36 +02:00
Leonardo Baldazzi bd9d10b4ce fix: correct audio-video playback timing and sync 2026-10-16 22:35:30 +02:00
Seif Allah Karoui 86de982f25 fix(avplayer): defer loop warnings until frame delivery
Queue demux loop epochs and report each once when audio or video first delivers that pass. Discard pending loop boundaries on seek and restart. Add playback regressions and record unverified console callback timing.

AI-assisted: yes (Codex).
2026-10-14 14:38:36 +01:00
xXPBSXxandClaude Sonnet 5.5 a671dc4edf fix(avplayer): resume the presentation clock when the source restarts after a pause
Clock::Reset left the paused flag set by Clock::Pause, so a Start issued
from the paused state (stop and restart of the source) kept the clock
frozen at the start position. Only the frame at that position was
delivered; later frames were held back by the default A/V sync.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 19:36:06 +02:00
Santhosh Kumar 17827dd9ab fix(filesystem): reject invalid parent traversal on Windows 2026-10-12 01:25:02 +05:30
FaffuandClaude Opus 5.5 068da6a99f fix(avplayer): skip late video frames in no-sync mode while audio drives the clock
In SCE_AVPLAYER_AV_SYNC_MODE_NONE every decoded frame was handed out in
order, so a title that requests video slower than the film's frame rate
fell behind its audio (about 52 s by the end of the PPSA12544 intro).
While the title pulls audio, frames the audio clock has already passed are
now skipped; frames that are not late are handed out as before.

Fixes #1635

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 09:42:20 +02:00
MerijnandClaude Opus 5.5 736ba56d85 fix(avplayer): deliver the frame at a jump while paused
A paused player returned no video at all. Unity's video player prepares
a clip by starting it, pausing, jumping to the start and polling
sceAvPlayerGetVideoDataEx until the frame at the jump arrives, and only
then resumes; PPSA12544 waited there forever on a black screen in its
intro cinematic. While paused, the first frame after a jump is now
delivered (the paused clock rebased to it); other frames are still held
until the player resumes. The guest test pauses, jumps and expects that
one frame and nothing after it.

AI-assisted: yes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 15:20:51 +02:00
hamb3r cf10b5e609 fix(avplayer): make decode-ahead buffers optional 2026-10-05 04:58:00 +03:00
hamb3randsaulo benigno c2fa7fd97f 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 <saulobenigno@gmail.com>
2026-10-05 03:10:07 +03:00
Dean Galvin b62d02c2af feat(avplayer): decode H.264 and AAC with FFmpeg
Replace the decoder-less AvPlayer with a player that demuxes MP4 sources
with FFmpeg (opened by path or through the title's file replacement),
decodes H.264 and AAC on their own threads, and hands out NV12 frames and
interleaved 16-bit PCM in buffers from the title's allocators, presented
on a media clock that audio drives when it is enabled.

Both libSceAvPlayer and libSceAvPlayer.native are built from the same
sources and link the shared ffmpeg target. The struct size checks stay,
next to the types in SceTypes.hpp. ChangeStream and GetStreamInfoEx are
implemented; Init without allocators, StartEx, SetAvailableBandwidth,
SetLogCallback and negative trick speeds succeed as before and are listed
in TechnicalDebt. HLS sources throw.

guest_avplayer plays an embedded 6 KB MP4 (H.264 plus two AAC tracks).
2026-10-03 08:10:55 +13:00