Asignar formatos de salida
Algunos códecs pueden descomprimir datos multimedia digitales en varios formatos sin comprimir. Puede encontrar todos los formatos admitidos para una salida específica mediante el lector asincrónico o el lector sincrónico.
Para examinar todos los formatos disponibles para una salida, realice los pasos siguientes. Estos procedimientos son idénticos tanto para el lector asincrónico como para el lector sincrónico. Donde los nombres de interfaz varían, los métodos de lector sincrónicos se muestran entre paréntesis después de los métodos del lector asincrónico.
Cree un objeto lector y cargue un archivo para leerlo. Para obtener más información, vea Para crear un lector y abrir un archivo (o para crear un lector sincrónico y abrir un archivo).
Determine la salida para la que desea encontrar los formatos disponibles. Si aún no sabe qué salida desea usar, puede identificar las salidas en el archivo mediante los procedimientos descritos en Para identificar los números de salida.
Recupere el número total de formatos disponibles para la salida deseada llamando a IWMReader::GetOutputFormatCount (o IWMSyncReader::GetOutputFormatCount).
Recorra en bucle los formatos disponibles de uno en uno, realizando los pasos siguientes para cada uno:
Recupere la interfaz IWMOutputMediaProps para el formato de salida actual llamando a IWMReader::GetOutputFormat (o IWMSyncReader::GetOutputFormat).
Recupere la estructura de WM_MEDIA_TYPE para el formato de salida realizando dos llamadas a IWMMediaProps::GetMediaType. Realice la primera llamada para obtener el tamaño de la estructura y, a continuación, asigne memoria para ella y pase un puntero a la memoria asignada en la segunda llamada.
Busque el subtipo de medio del formato de salida en WM_MEDIA_TYPE.subtipo.
En el caso del vídeo, si el subtipo actual es el formato que desea usar para la salida, interrumpa el bucle. De lo contrario, vaya a la siguiente iteración.
En el caso del audio, debe comprobar los valores de la estructura WAVEFORMATEX según sus requisitos. WM_MEDIA_TYPE.pbFormat apunta a la estructura WAVEFORMATEX para las salidas de audio.
Cuando haya encontrado la salida deseada, establézcala para usarla con el lector llamando a IWMReader::SetOutputProps (o IWMSyncReader::SetOutputProps). Debe pasar un puntero a la interfaz IWMOutputMediaProps obtenida en el primer paso del bucle.
Temas relacionados