4.0 KiB
libSceAvPlayer technical debt
Silent stubs
- libSceAvPlayer:
sceAvPlayerSetLogCallbackaccepts a callback that is never called, as the player produces no log messages, andsceAvPlayerSetAvailableBandwidthhas no effect, as it governs HLS sources, whichsceAvPlayerAddSourcedoes not implement. - sceAvPlayerSetTrickSpeed (libSceAvPlayer) with a negative speed runs the clock backwards but delivers no frames; when a forward speed is set again, playback resumes from the rewound time.
Unknown function info
-
AvPlayer loop warnings are queued when the first audio or video frame of a loop is delivered, following KytyPS5's playback boundary tracking. The console's exact callback timing is unverified. Decode-ahead does not announce a loop while the caller is consuming the previous pass.
-
sceAvPlayerAddSource (libSceAvPlayer) - requests up to 4 additional decode-ahead video framebuffers from the memory replacement beyond
num_output_video_framebufferswhen memory is available; the console's internal buffering behaviour is unknown -
sceAvPlayerInit / sceAvPlayerInitEx (libSceAvPlayer) - behaviour without a memory replacement unknown; frame and sample buffers then come from the guest heap
-
sceAvPlayerInitEx (libSceAvPlayer) - the PS5 init data layout (
this_size0x230: auto start at 0x74, nine 0x30-byte thread parameter blocks from 0x78, output video frame buffer count at 0x228) follows KytyPS5, prosper, SharpProspero and sharpemu, which agree on it. PPSA25063 fills the same fields, writes auto start 0 and starts playback withsceAvPlayerStart; a title that sets auto start has not been seen. A smallerthis_sizeis read with the PS4 offsets. The thread parameters are ignored -
AvPlayer auto start (libSceAvPlayer) - the auto start that
sceAvPlayerAddSourcequeues for a player with auto start or without an event callback starts the player only while it is still ready: a title that starts the player itself before the auto start runs keeps its playback and the frames it holds. Not confirmed on a title. -
Paused initial video (libSceAvPlayer) keeps the first picture available when audio has already established the playback epoch before the caller pauses. Further pictures of that epoch stay blocked, as after a paused jump. The console's exact initial preparation ordering has not been measured.
Functional
- sceAvPlayerGetVideoData / sceAvPlayerGetVideoDataEx (libSceAvPlayer) - delivers a video frame up to 0.75 × frame duration ahead of its timestamp in default sync mode to accommodate presentation loops that poll slightly before the refresh boundary; the console's exact presentation tolerance is unverified.
- sceAvPlayerGetVideoData (libSceAvPlayer) in sync mode
SCE_AVPLAYER_AV_SYNC_MODE_NONEskips queued frames that the audio clock has already passed while the title pulls audio, so a title that requests video slower than the film's frame rate keeps the picture with the sound. Whether the console hands out every frame in this mode is unknown. PPSA12544 requests 7-19 frames per second for a 30 fps cinematic