Leer en inglés

Compartir a través de


Configuración de extensiones de unidades de datos

Los ejemplos escritos en archivos ASF pueden contener información adicional aparte de los propios ejemplos multimedia. Esta información se incluye mediante extensiones de unidad de datos. Para obtener más información sobre las extensiones de unidad de datos, vea Extensiones de unidad de datos.

Para usar extensiones de unidad de datos, debe configurar la secuencia en el perfil para aceptarlas. Para configurar una extensión de unidad de datos para una secuencia, realice los pasos siguientes.

  1. Obtenga un puntero a la interfaz IWMStreamConfig2 llamando al método QueryInterface de IWMStreamConfig.
  2. Llame a IWMStreamConfig2::AddDataUnitExtension para registrar un tipo de extensión de unidad de datos para la secuencia.

Puede examinar todos los tipos de extensión de unidad de datos registrados actualmente para una secuencia llamando a IWMStreamConfig2::GetDataUnitExtensionCount para recuperar el número de tipos de extensión de unidad de datos registrados. A continuación, puede recorrer en bucle todos los tipos mediante llamadas a IWMStreamConfig2::GetDataUnitExtension para cada uno.

Las extensiones de unidad de datos se asignan un tamaño cuando se configuran para una secuencia. Muchos sistemas de extensión de unidad de datos usan datos que son un tamaño constante (normalmente una estructura). Sin embargo, también puede configurar las extensiones de unidad de datos para que sean de tamaño variable estableciendo el tamaño en 0xFFFF. Cada extensión de unidad de datos asignada en tiempo de codificación puede ser de cualquier tamaño entre 1 byte y 65534 bytes. Las extensiones de unidad de datos de tamaño variable también se denominan extensiones de unidad de datos dinámicas.

La ventaja de usar extensiones de unidad de datos dinámicas es que puede adjuntar datos de extensión según sea necesario. Si define una extensión de unidad de datos con un tamaño establecido, cada ejemplo de la secuencia debe contener datos de extensión de ese tamaño, aunque no tenga datos para algunos ejemplos. Con las extensiones de unidad de datos dinámicas, puede omitir extensiones de unidad de datos de algunos ejemplos, lo que ahorra espacio y reduce los requisitos de ancho de banda. Sin embargo, si las extensiones de unidad de datos tienen un tamaño variable, el objeto de lectura no puede comprobar los datos de extensión recibidos con un tamaño estático. Debe comprobar que los datos de extensión que recibe son válidos y no una distorsión malintencionada de la secuencia de bits.

Las extensiones de unidad de datos individuales deben establecerse en ejemplos mediante el método INSSBuffer3::SetProperty . Para obtener más información, vea Establecer extensiones de unidad de datos.

Configuración de secuencias