Aller au contenu
PS5PCEM
FonctionneAudio et vidéo

AvPlayer

SceAvPlayer décode les conteneurs de films avec FFmpeg vers des images NV12 possédées par le titre et du PCM stéréo à 48 kHz. La lecture se termine lorsque la durée de la source est dépassée, même si le titre ne lit jamais l'un des flux.

Notes du dépôt jusqu’au 10 octobre 2026

Des tampons que le titre possède

Le lecteur utilise les rappels d'allocation du titre et les rappels de fichiers du titre. FFmpeg sonde le conteneur et décode la vidéo en NV12 à la résolution de la source, et l'audio en stéréo 16 bits signé entrelacé à 48 kHz. La vidéo et l'audio ont des verrous distincts et des processus de décodeur distincts. Les horodatages partagent une seule horloge monotone.

La pause, la recherche, la boucle et la fin de flux sont conservées. L'ABI du décodeur logiciel rapporte le pas aligné, la hauteur d'allocation et le recadrage visible. Les appels d'information de flux étendu et hérité existent tous les deux. Le temps courant, le mode trick à vitesse normale, la désactivation de flux et une horloge média bornée couvrent le middleware Unity qu'embarque Asterix.

Terminer un film que le titre ne lit qu'à moitié

Un titre peut prendre les images et mixer son propre son, ou l'inverse. Attendre que chaque flux ait été lu maintient ce lecteur en vie pour le reste du processus. Jurassic Park Classic Games Collection restait sur son introduction pour cette raison : l'horloge était à quatre-vingt-dix secondes au-delà d'un extrait de trois secondes, parce que le flux audio non lu ne se terminait jamais.

La durée vient de la source. Lorsque l'horloge la dépasse, la lecture se termine même si un flux a été ignoré. Tant qu'un flux délivre encore, la position rapportée reste dans les images réellement remises, de sorte qu'une machine lente n'est pas coupée trop tôt. Une fois que le flux s'est réellement terminé, l'horloge peut aller jusqu'à la durée. Les sources en boucle et les sources de longueur inconnue sont laissées de côté.

Présentation

Les films d'introduction observés se jouent à peu près à leur fréquence d'images native dans les builds ReleaseFast. La dernière image valide est conservée pendant que Unity change d'extrait, au lieu de présenter une surface de décodeur effacée comme une couleur unie. Une source 1920×1080 peut être mise à l'échelle dans la cible de scanout enregistrée par le titre.

La piste haptique est cadencée et silencieuse. AvPlayer ne pilote pas de manette. Les pixels atteignent l'écran par les shaders du titre ou par VideoOut, et non par un second compositeur à l'intérieur du lecteur.

Ce qui est en place

  • Décodage FFmpeg vers de la vidéo NV12 et du PCM stéréo à 48 kHz, dans des tampons possédés par le titre.
  • Informations de flux étendues et héritées, pause, recherche, boucle, et une horloge média partagée.
  • Fin de la lecture à la durée de la source lorsque le titre laisse un flux non lu.
  • Conservation de la dernière image valide à travers un changement d'extrait.

Ce qui manque encore

  • Les haptiques sont du silence. La vibration de la manette n'est pas émulée.
  • Les sources en boucle et de longueur inconnue ne sont pas coupées par la règle de durée.
  • Un rappel de fichier manquant, ou un conteneur que FFmpeg ne peut pas sonder, fait échouer cet actif.

Mécanismes liés

Ce que ces pages décrivent

Le texte suit les notes d’architecture et les rapports d’octobre 2026 du dépôt PS5PCEM. Un test ciblé qui passe n’est ni une nouvelle cadence d’images ni une nouvelle partie terminée.

Toutes les technologies