Resumen

  • RFC 9639 define FLAC como un formato capaz de reconstruir exactamente las muestras PCM enteras entregadas al codificador.
  • Los CRC de trama, el MD5 de audio, la huella externa, la firma de origen, los metadatos y la prueba de reproducción tienen objetos y autoridades distintos.
  • El recibo completo enlaza custodia, entrada del codificador, flujo y contenedor, PCM decodificado, canales, etiquetas, implementaciones, límites de recursos y efecto final.

Un proveedor entregó un archivo «sin pérdida». La expresión empezó describiendo la compresión y terminó usándose como certificado de que la grabación era original, completa y auténtica.

El salto no estaba respaldado. RFC 9639 estandariza el Free Lossless Audio Codec y hace verificable una relación técnica: las muestras PCM enteras pueden reconstruirse exactamente desde el flujo codificado. Si la entrada era la toma equivocada, ya estaba remuestreada o llevaba los canales invertidos, FLAC conserva fielmente ese estado.

Una propiedad fuerte con un perímetro estrecho

La palabra adquiere rigor cuando se nombran los extremos. ¿Qué PCM recibió el codificador? ¿Con qué frecuencia, profundidad, número y orden de canales? ¿Qué versión y parámetros se usaron? ¿Qué decodificador produjo qué secuencia? ¿Cómo se comparó con una copia independiente de la entrada?

Sin esas respuestas, el resultado verde solo afirma que un cálculo interno coincidió. No identifica la actuación, el propietario, la fecha, el micrófono ni la cadena de custodia. Tampoco demuestra lo que salió de los altavoces.

Las verificaciones no se acumulan en una sola verdad

FLAC usa CRC-8 en la cabecera y CRC-16 al final de cada trama. STREAMINFO puede incluir un MD5 de los datos de audio sin codificar. Una huella externa puede identificar todos los bytes del archivo o del contenedor. Cada mecanismo observa otra superficie.

Una trama válida no prueba que la secuencia esté completa. El MD5 del PCM no cubre necesariamente índices, imágenes o tiempos del contenedor. Una huella externa identifica el objeto, pero no confirma que el texto «artista» sea verdadero. Y STREAMINFO admite valores desconocidos: cero para ciertos tamaños, cero para el total de muestras y dieciséis bytes cero para un MD5 desconocido.

RFC 6151 añade el límite adversarial. MD5 no debe servir cuando se necesita resistencia a colisiones; su uso como control integrado de errores responde a otra amenaza. En FLAC no es una firma digital ni una prueba de autoría. La procedencia requiere una identidad externa confiable y, cuando corresponda, una firma cuyo objeto se haya definido.

Las etiquetas pueden mentir sin alterar una muestra

Los comentarios Vorbis y los bloques de imagen son contenedores de afirmaciones. Resultan útiles para título, intérprete, fecha, licencia y portada, pero el códec no comprueba su contenido. Preservar exactamente una etiqueta falsa solo demuestra que la falsedad no cambió.

Los canales muestran una variante más sutil. FLAC fija órdenes predeterminados, mientras un comentario puede transportar una máscara WAVEFORMATEXTENSIBLE para una disposición diferente. La máscara no reordena los datos: el escritor debe colocarlos correctamente y el lector interpretarlos igual. Además, depender de ese comentario deja el archivo fuera del subconjunto transmisible.

Por eso la verificación multicanal necesita señales o documentos de producción que unan cada índice con su altavoz, más una prueba del enrutamiento real. Dos salidas acústicas distintas pueden provenir de muestras idénticas.

Dos relojes dentro del mismo objeto

Un flujo FLAC puede aparecer en Ogg o convivir con estructuras de Matroska o MP4. Esas capas pueden repetir duración, frecuencia, canales o límites de muestra. La divergencia no se soluciona eligiendo en silencio el valor que más conviene.

El recibo conserva ambas lecturas, identifica el analizador, declara la regla de prioridad y observa el comportamiento de aplicaciones concretas. Un MD5 correcto no arbitra la línea temporal del contenedor; una tabla de muestras del contenedor no garantiza el PCM reconstruido.

El subconjunto transmisible tampoco es un pasaporte universal. Reduce combinaciones para favorecer la compatibilidad, pero RFC 9639 advierte que algunos decodificadores antiguos o deficientes solo cubren funciones comunes. La interoperabilidad se prueba con nombres, versiones, características, resultados y errores, no con la existencia del estándar.

La seguridad de procesamiento merece su propia columna. Una trama de apenas 49 bytes puede expandirse a más de 2 MiB de PCM y los metadatos pueden contener cantidades enormes de campos o caracteres. Decodificar correctamente no equivale a aceptar entrada no confiable sin límites de memoria, tiempo y salida.

Cómo redactar el recibo

Primero identifique el objeto recibido, su custodio y una huella externa. Registre el PCM previo al codificador y cualquier transformación. Conserve versión, compilación y parámetros de codificación. Distinga los bytes del flujo de los del contenedor.

Después publique los desconocidos de STREAMINFO, los CRC de trama, el MD5 de audio y la comparación PCM como resultados separados. Reconcilie canales, frecuencia, profundidad, duración y tiempo del contenedor sin borrar contradicciones. Vincule cada etiqueta con su fuente. Ejecute una matriz de decodificadores bajo techos de recursos explícitos y adjunte evidencia de reproducción si esa es la promesa.

El recibo final evita la frase omnipotente. La custodia identifica, el codificador transforma, el flujo transporta, las sumas detectan cambios acotados, el decodificador reconstruye, los metadatos describen y el sistema de reproducción produce un resultado.

Fuentes