Inicialización del objeto ContentInfo de un nuevo archivo ASF
Después de crear un objeto ContentInfo vacío llamando a la función MFCreateASFContentInfo , la aplicación debe llamar a IMFASFContentInfo::SetProfile para proporcionar el perfil de codificación. Para obtener información sobre cómo crear un perfil, consulte Creación de un perfil de ASF.
Para que la información se pueda leer desde el perfil, el método SetProfile debe validar el objeto de perfil especificado comprobando los identificadores de secuencia o los tipos de medios. Si el perfil pasa la validación, se generan varios objetos de encabezado, como el objeto de propiedades de archivo, el objeto Propiedades de velocidad de bits de secuencia, el objeto Propiedades de secuencia y el objeto de exclusión mutua.
SetProfile calcula y establece valores recomendados para determinadas propiedades, como el valor de inscripción previa. Si aún no se ha establecido, el valor de preinscripción recomendado en milisegundos depende de la ventana de búfer máxima del cubo filtrado especificado para las secuencias del perfil. De forma similar, también se establecen los tamaños de paquete de datos mínimo y máximo. Los valores recomendados pueden invalidar los tamaños de paquete que se establecen en el perfil a través de atributos.
Dado que el archivo está en proceso de creación, el archivo se clasifica como un tipo de difusión, que se indica mediante el campo Marcas del objeto De propiedades de archivo. Ciertos valores desconocidos, como el número de paquetes de datos, la duración de la reproducción y la duración del envío, se establecen en cero. Estos valores se representan mediante MF_PD_ASF_xxx atributos y la aplicación debe actualizarlos una vez completada la creación del archivo.
El objeto de perfil especificado reemplaza a cualquier perfil existente asociado al objeto ContentInfo, quita los objetos de encabezado a los que se hace referencia y restablece las propiedades de archivo globales, como el tamaño del paquete de datos y la inscripción previa.
El método SetProfile también crea el objeto de datos que representa el objeto de datos ASF. Si reutiliza un objeto ContentInfo que incluye información sobre los paquetes de datos, Se produce un error en SetProfile y devuelve el error MF_E_ALREADY_INITIALIZED que indica que ya está asociado a un objeto de datos ASF existente. De forma predeterminada, para un nuevo objeto ContentInfo, el recuento de paquetes de datos se establece en cero y el tamaño del objeto de datos se establece en 50 bytes. Si usa el multiplexador para generar paquetes de datos, el multiplexador actualiza el objeto ContentInfo para reflejar nuevos valores, como el recuento de paquetes de datos. Para obtener más información sobre la generación de paquetes de datos, vea Generar nuevos paquetes de datos asf.
Después de agregar todos los objetos de encabezado al objeto de encabezado ASF final, el tamaño total del encabezado se puede recuperar llamando a IMFASFContentInfo::GetHeaderSize. Este tamaño incluye el tamaño inicial del objeto de datos.
Temas relacionados