Share via


Usar extensiones de unidad de datos (Microsoft Media Foundation)

Los códecs de audio y vídeo de Windows Media están diseñados para funcionar bien con el contenedor formato de sistemas avanzados (ASF). ASF es el formato estructurado que se usa para archivos de Windows Media Audio (WMA) y windows Media Video (WMV). Es un formato extensible diseñado para transmitir datos. Una de las características inusuales de la estructura ASF es la capacidad de adjuntar metadatos a muestras individuales e insertar esos datos con los ejemplos de la secuencia de bits. Un elemento de metadatos almacenados de esta manera se denomina extensión de unidad de datos o extensión de ejemplo.

Una extensión de unidad de datos puede contener información necesaria para el codificador, el descodificador o la aplicación del reproductor. La mayoría de los tipos de extensión de unidad de datos que se implementan en la serie de códecs de Windows Media 9 contienen datos destinados a la aplicación que descodifica y representa el medio. Por ejemplo, puede mantener códigos de tiempo SMPTE a partir de datos de origen agregándolos como extensiones de unidad de datos. Sin embargo, las siguientes características de códec requieren extensiones de unidad de datos:

  • Inserción forzada de fotograma clave
  • Codificación de vídeo entrelazada
  • La dificultad de usar extensiones de unidad de datos al acceder al códec directamente es el mecanismo por el que el objeto recibe los datos de extensión. Esto se logra mediante los objetos del SDK de Windows Media Format mediante objetos de búfer diseñados para admitir esta característica. Se recomienda usar el SDK de Windows Media Format para activar las características de códec que requieren extensiones de unidad de datos, pero puede hacer que estas características funcionen con los objetos de códec independientes.

Pasar ejemplos extendidos a los objetos Codec

El SDK de Windows Media Format usa objetos de búfer que exponen interfaces INSSBuffer . La interfaz más reciente es INSSBuffer4. Para pasar ejemplos a un objeto de códec con extensiones de unidad de datos, debe usar un objeto de búfer que implemente la interfaz IMediaBuffer o IMFMediaBuffer y la interfaz INSSBuffer . Puede usar los objetos de búfer creados por el SDK de Windows Media Format o Microsoft Media Foundation para hacerlo, o puede crear su propia clase de búfer que cumpla los requisitos. Para crear su propia clase de búfer, debe cumplir los prototipos de método para las interfaces INSSBuffer . Estas definiciones de interfaz se pueden encontrar en el archivo de encabezado wmsbuffer.h instalado con el SDK de Windows Media Format.

Códecs de Windows Media