El formato de archivo MP3 consta de cuadros. Cada cuadro comienza con once "1" bits y también un par de bytes de metadatos que controlan la velocidad de bits y definen algunos otros atributos. Cada cuadro es independiente, se diseñó de esta manera para admitir la transmisión.
Los marcos pueden tener un CRC: una comprobación de errores. Es opcional.
Es probable que el sistema operativo vuelva a intentar la lectura si encuentra sectores defectuosos en un CD (el hardware del CD tiene su propio error al verificar el mechansim antes de que el codificador MP3 vea algo). Suponiendo que el decodificador no funciona desde un búfer, el decodificador no recibirá datos nuevos durante este proceso y tendrá que detenerse. Si el sistema operativo no puede leer los datos, puede informar un error al sistema operativo, que eventualmente se informará al proceso que aloja el codificador de MP3. Depende del software lo que sucede exactamente aquí.
Pueden suceder un par de cosas posibles si los datos del CD se leen incorrectamente y aún llegan al decodificador (esto probablemente no sucedería en una PC pero podría en el estéreo de un automóvil u otro dispositivo que no sea PC):
Un decodificador de MP3 busca esos once 1 bits para encontrar el inicio de un cuadro; si no los encuentra, probablemente dejará de decodificar hasta el próximo cuadro.
Si los datos del encabezado son incorrectos, puede reproducir la trama con una tasa de bits incorrecta ya que el byte indica qué tasa de bits puede ser incorrecta.
Si se establece el bit CRC de encabezado y el CRC no coincide, el decodificador probablemente arrojará el marco y no lo reproducirá. La mayoría de los archivos MP3 no tienen el bit CRC establecido.
Si la carga útil (datos después del encabezado) es incorrecta, el decodificador de MP3 intentará reproducirla.
El trabajo de un decodificador es tomar los datos comprimidos y generar datos sin comprimir para pasar a un nivel "superior". Ese nivel superior en realidad usa los datos sin comprimir para conducir un dispositivo de audio. Me arriesgaría a adivinar que la mayoría de las configuraciones de codificadores / controladores de audio tienen un búfer, con un tamaño configurable, donde el decodificador de MP3 puede acumular algunos datos para el controlador de audio y permitir el reintento de las lecturas.
Entonces, de todos modos, si el decodificador se ha detenido porque no está obteniendo datos, el nivel superior que realmente controla el audio podría hacer lo siguiente:
- El nivel superior produce silencio. Oirías un descanso en el audio.
- El decodificador deja de llenar datos en un búfer de audio, pero el nivel superior continúa reproduciendo lo que está allí. Los buffers de audio suelen ser "circulares", lo que significa que no se ponen a cero sino que se sobrescriben constantemente con nuevos datos. Escuchará un salto que es una parte de la reproducción de audio anterior.
- El nivel superior es inteligente e intenta interpolar lo que "debería" estar allí. No creo que esto sea muy común.
Si el decodificador genera datos incorrectos, escuchará estática o pops en el audio.
Referencia .