Convertir AAC en LPCM a través de AudioConverterFillComplexBuffer

Estoy tratando de hacer uso del 'Servicio de conversión de audio' - AudioConverterFillComplexBuffer

Estoy golpeando bastantes problemas. En primer lugar, no sé cómo llenar el ioOutputDataPacketSize. Analicé mi descriptor SDP y obtengo 8000 Hz, 1 canal AAC-LC.

a=fmtp:98 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1588

Recibo algunos datos listos para la conversión a través de RTP (de varios tamaños), elimino los encabezados como se muestra a continuación, y lo que espero es un campo de longitud de encabezados AU de 16 bits, luego tendría los encabezados AU que deberían permitir yo para determinar el tamaño del marco/paquete, etc. Sin embargo, lo que estoy viendo es solo un cero para la longitud del encabezado ...

Recibo AAC-LC/AAC-hbr a través de RTP, el paquete recibido se ve así:

0x24 0x00  - unknown framing

0x05 0x84 - rfc4571 - 2bytes packet length

0x80 0x61 0x00 0x00 - 12bytes rtp header - rfc3016
0x00 0x00 0x05 0xA0 
0x05 0x5F 0xEB 0x2E 

0x00 0x00 0x01 0xB0 - rtp payload ie. start of AAC header??
0x03 0x00 0x00 0x01 
0xB5 0x09 0x00 0x00 
0x01 0x00 0x00 0x00 
0x01 0x20 0x00 0x84 
0x40 0x06 0x68 0xA0 
0x21 0xE0 0xA3 0x1F 
0x00 0x00 0x01 0xB6 ...

Obtengo el 'encabezado' anterior cada dos segundos, y entre varios paquetes que comienzan con:

0x00 0x00 0x01 0xB6

Entonces parece un encabezado consistente, pero tal vez estoy malinterpretando rfc3640.

Entonces dos preguntas realmente:

  1. ¿Cómo puedo determinar el valor de ioOutputDataPacketSize.

  2. ¿Está el encabezado AAC sobre los datos AAC reales que podría pasar directamente a la función de conversión? o necesito quitar el encabezado (una vez que pueda decodificar y calcular su tamaño)

Realmente no he encontrado ningún ejemplo para hacer esta conversión de una entrada de NSData a otra salida de NSData. Algunos ejemplos usan conversiones basadas en disco, pero no ofrecen mucha ayuda para la conversión en memoria.

preguntado el 22 de mayo de 12 a las 17:05

El encuadre desconocido es RFC2326 Binary Interleaved. -

1 Respuestas

Mi error, esto no son datos de audio lo que estoy viendo, ¡sino datos de video! ahora puedo extraer los paquetes del tamaño correcto.

contestado el 25 de mayo de 12 a las 21:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.