AvPlayer
SceAvPlayer descodifica contenedores de película con FFmpeg hacia fotogramas NV12 que posee el título y PCM estéreo de 48 kHz. La reproducción termina cuando pasa la duración de la fuente, aunque el título nunca lea uno de los flujos.
Notas del repositorio hasta el 10 de octubre de 2026
Búferes que posee el título
El reproductor usa los callbacks de asignación del título y los callbacks de archivo del título. FFmpeg sondea el contenedor y descodifica el vídeo a NV12 a la resolución de la fuente y el audio a estéreo intercalado de 16 bits con signo a 48 kHz. El vídeo y el audio tienen bloqueos distintos y procesos de descodificador distintos. Las marcas de tiempo comparten un reloj monotónico.
Se conservan la pausa, la búsqueda, el bucle y el fin de flujo. La ABI del descodificador de software informa del pitch alineado, la altura de asignación y el recorte visible. Existen tanto la llamada de información de flujo extendida como la heredada. La hora actual, el modo trick a velocidad normal, la desactivación de flujo y un reloj de medios acotado cubren el middleware de Unity que trae Asterix.
Terminar una película que el título solo lee a medias
Un título puede quedarse con las imágenes y mezclar su propio sonido, o al revés. Esperar hasta que se haya leído cada flujo mantiene ese reproductor vivo durante el resto del proceso. Jurassic Park Classic Games Collection se quedó en su intro por esta razón: el reloj iba noventa segundos más allá de un clip de tres segundos porque el flujo de audio no leído nunca terminaba.
La duración viene de la fuente. Cuando el reloj la supera, la reproducción termina aunque un flujo se hubiera ignorado. Mientras un flujo todavía entrega, la posición informada se mantiene dentro de los fotogramas realmente entregados, de modo que una máquina lenta no se corta antes de tiempo. Una vez que el flujo ha terminado de verdad, el reloj puede avanzar hasta la duración. Las fuentes en bucle y las de longitud desconocida no se tocan.
Presentación
Las películas de intro observadas se reproducen aproximadamente a su tasa de fotogramas nativa en compilaciones ReleaseFast. La última imagen válida se conserva mientras Unity cambia de clip, en lugar de presentar una superficie de descodificador limpiada como un color sólido. Una fuente de 1920×1080 puede escalarse al destino de scanout que registró el título.
La pista háptica se temporiza y permanece en silencio. AvPlayer no acciona un mando. Los píxeles llegan a la pantalla a través de los shaders del título o de VideoOut, no a través de un segundo compositor dentro del reproductor.
Qué está implementado
- Descodificación con FFmpeg a vídeo NV12 y PCM estéreo de 48 kHz, en búferes que posee el título.
- Información de flujo extendida y heredada, pausa, búsqueda, bucle y un reloj de medios compartido.
- Fin de la reproducción al llegar a la duración de la fuente cuando el título deja un flujo sin leer.
- Conservación del último fotograma válido a través de un cambio de clip.
Qué falta todavía
- La háptica es silencio. La vibración del mando no se emula.
- Las fuentes en bucle y las de longitud desconocida no las corta la regla de duración.
- Un callback de archivo ausente, o un contenedor que FFmpeg no puede sondear, hace fallar ese recurso.
Mecanismos relacionados
Qué describen estas páginas