From a43beeb352a330b42a1ae7fee9ca75e6be90953b Mon Sep 17 00:00:00 2001 From: Sergio Date: Wed, 9 Sep 2026 16:43:12 +0000 Subject: [PATCH] triaje: las 15 de ffmpeg, medidas sobre el artefacto sellado MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit De 140 pendientes a 125. Todas caen por el mismo criterio ya establecido (--disable-autodetect ⇒ sólo entra lo que se pide, y no se pide nada), pero el veredicto NO se firmó de memoria: se midió con nm/strings sobre store/…-ffmpeg/usr/lib/libavcodec.so.61.19.100, que es el artefacto que la distro publica hoy. LO QUE LA MEDICIÓN CAMBIA. La lectura fácil era «sin libaom/libvpx/x265 la distro no reproduce AV1/VP9/HEVC», y es FALSA: los decoders nativos están compilados (aparecen «AV1 decoder», los bsf vp9_*, hevc y theora). Lo que falta es CODIFICAR. El artefacto trae 34 encoders y ninguno de vídeo moderno: AAC, FLAC, Opus, MPEG4, mjpeg, ffv1, prores, H.263, jpeg2000. O sea: la distro decodifica lo de hoy y codifica lo de ayer. Y esa frase tampoco alcanza sola, porque la codificación H.264 del escritorio NO pasa por ffmpeg: obs-studio enlaza x264 —que SÍ está en el catálogo, recipes/x264.toml— por su propio plugin obs-x264. Antes de anunciar «no se puede grabar vídeo» convenía mirar quién codifica de verdad. ⚠ openapv NO es una perilla que no encendimos: es DESFASE DE VERSIÓN. Sale de la expresión de nixpkgs para ffmpeg 8.x y nuestra receta pinea 7.1, cuyo `configure` no nombra apv en ningún sitio (verificado en el tarball). Queda 'opcional' y no 'nix-ismo' a propósito: el día que ffmpeg suba de major vuelve a ser una pregunta legítima, y mandarla al descarte del sembrador la haría invisible. ⚠ ocl-icd y opencl-headers tienen el hueco una capa MÁS ABAJO: mesa va con -Dllvm=disabled -Dgallium-rusticl=false ⇒ la distro no publica NINGÚN runtime de OpenCL. Un ICD loader sin ICD no filtra nada; encender --enable-opencl en ffmpeg no compraría capacidad. CAPACIDADES AUSENTES, dichas en voz alta y no descubiertas después: libbluray no se navegan discos Blu-ray (menús, títulos, BD-J); los ficheros sueltos se leen libopenmpt no suena música de módulos (MOD/XM/S3M/IT) amf-headers / libvdpau codificación y decodificación por hardware de AMD y NVIDIA: piden driver propietario, que la distro no trae ⇒ discutible sólo si eso cambia El resto no cuesta nada: libtheora es el encoder de un formato de 2004 (su decoder es nativo), xvidcore es REDUNDANTE con el «MPEG4 encoder» nativo que ya está, vid.stab agrega dos filtros de estabilización y zimg sólo el filtro zscale (el escalado lo hace libswscale, compilada). Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01LCt3ettR4Z7b6wPCBmbvEV --- docs/state/frontera-triaje.toml | 60 ++++++++++++++++----------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/docs/state/frontera-triaje.toml b/docs/state/frontera-triaje.toml index d99f21d8..2c23fd84 100644 --- a/docs/state/frontera-triaje.toml +++ b/docs/state/frontera-triaje.toml @@ -52,9 +52,9 @@ perfiles = ["base", "cli", "escritorio-sway"] piden = ["gnupg"] [candidato."amf-headers"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-amf, la codificación por hardware de AMD: necesita el driver propietario, que la distro no trae" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -821,9 +821,9 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["libtiff"] [candidato."libaom"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libaom. ⚠ Lo que se pierde es CODIFICAR AV1, no reproducirlo: el decoder nativo está en el artefacto sellado («AV1 decoder», medido con strings sobre libavcodec.so.61.19.100)" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -870,9 +870,9 @@ perfiles = ["escritorio-gnome"] piden = ["appstream"] [candidato."libbluray"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libbluray. ⚠ CAPACIDAD AUSENTE dicha en voz alta: la distro no navega discos Blu-ray (menús, títulos, BD-J). Los ficheros sueltos se leen igual" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -1117,9 +1117,9 @@ perfiles = ["escritorio-gnome"] piden = ["gnome-shell"] [candidato."libopenmpt"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libopenmpt: música de módulos (MOD/XM/S3M/IT). Capacidad ausente sin consumidor en el catálogo" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -1282,9 +1282,9 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["pango", "qtbase"] [candidato."libtheora"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libtheora, o sea el ENCODER; el decoder de Theora es nativo y está en el artefacto sellado (medido). Formato de 2004 sin nadie que lo pida" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -1317,9 +1317,9 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["mesa"] [candidato."libvdpau"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-vdpau, la aceleración por hardware de NVIDIA. Sin driver propietario en la distro no hay a quién hablarle" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -1338,9 +1338,9 @@ perfiles = ["escritorio-kde"] piden = ["obs-studio"] [candidato."libvpx"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libvpx. Igual que libaom: se pierde CODIFICAR VP8/VP9, no reproducirlos — los decoders nativos están (los bsf vp9_* aparecen en el artefacto sellado)" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -1711,16 +1711,16 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["ffmpeg", "obs-studio"] [candidato."ocl-icd"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-opencl, y el hueco está una capa MÁS ABAJO: mesa se construye con -Dllvm=disabled -Dgallium-rusticl=false ⇒ la distro no publica NINGÚN runtime de OpenCL. Un ICD loader sin ICD no filtra nada" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] [candidato."openapv"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "⚠ NO es una perilla que no encendimos: es DESFASE DE VERSIÓN. El candidato sale de la expresión de nixpkgs para ffmpeg 8.x; nuestra receta pinea 7.1 y su `configure` no nombra apv/openapv en ningún sitio (verificado en el tarball sellado). Vuelve a ser pregunta legítima el día que ffmpeg suba de major" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -1732,9 +1732,9 @@ perfiles = ["escritorio-kde"] piden = ["opencv"] [candidato."opencl-headers"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "mismo caso que ocl-icd: son las cabeceras de OpenCL y la distro no publica runtime (mesa va -Dllvm=disabled -Dgallium-rusticl=false), además de que ffmpeg iría con --disable-autodetect" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -2199,9 +2199,9 @@ perfiles = ["escritorio-kde"] piden = ["zxing-cpp"] [candidato."svt-av1"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libsvtav1: el tercer encoder de AV1 que no tenemos. Reproducir AV1 no lo necesita (decoder nativo, medido en el artefacto)" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -2364,9 +2364,9 @@ perfiles = ["escritorio-kde"] piden = ["jansson"] [candidato."vid.stab"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libvidstab (configure:291), que sólo habilita dos filtros de estabilización de vídeo: vidstabdetect y vidstabtransform" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -2406,9 +2406,9 @@ perfiles = ["escritorio-kde"] piden = ["obs-studio"] [candidato."x265"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libx265. ⚠ Se pierde CODIFICAR HEVC; el decoder nativo está en el artefacto sellado. Y la codificación H.264 del escritorio no pasa por acá: obs-studio enlaza x264 —que SÍ está en el catálogo— por su propio plugin obs-x264" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -2482,9 +2482,9 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-sway"] piden = ["girara", "gjs", "libadwaita", "mutter"] [candidato."xvidcore"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libxvid, un encoder MPEG-4 ASP que además es REDUNDANTE: el artefacto sellado ya trae «MPEG4 encoder» nativo (medido)" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"] @@ -2513,9 +2513,9 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["libass"] [candidato."zimg"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (ffmpeg); mirá si es una feature opcional" +porque = "ffmpeg va con --disable-autodetect y la receta no pasa el --enable-* que la encendería (mismo criterio ya aplicado a srt/speex/soxr). Es --enable-libzimg, que sólo agrega el filtro `zscale`. El escalado de la distro lo hace libswscale, que va compilada" perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"] piden = ["ffmpeg"]