Assegnazione di formati di output

Alcuni codec possono decomprimere i dati multimediali digitali in diversi formati non compressi. È possibile trovare tutti i formati supportati per un output specifico usando il lettore asincrono o il lettore sincrono.

Per esaminare tutti i formati disponibili per un output, seguire questa procedura. Queste procedure sono identiche sia per il lettore asincrono che per il lettore sincrono. Dove i nomi di interfaccia variano, i metodi di lettura sincroni vengono elencati tra parentesi dopo i metodi del lettore asincrono.

  1. Creare un oggetto lettore e caricare un file per la lettura. Per altre informazioni, vedere Per creare un lettore e aprire un file (o per creare un lettore sincrono e aprire un file).

  2. Determinare l'output per il quale si desidera trovare i formati disponibili. Se non si conosce già l'output da usare, è possibile identificare gli output nel file usando le procedure in Per identificare i numeri di output.

  3. Recuperare il numero totale di formati disponibili per l'output desiderato chiamando IWMReader::GetOutputFormatCount (o IWMSyncReader::GetOutputFormatCount).

  4. Scorrere i formati disponibili uno alla volta, eseguendo i passaggi seguenti per ognuno:

    • Recuperare l'interfaccia IWMOutputMediaProps per il formato di output corrente chiamando IWMReader::GetOutputFormat (o IWMSyncReader::GetOutputFormat).

    • Recuperare la struttura WM_MEDIA_TYPE per il formato di output effettuando due chiamate a IWMMediaProps::GetMediaType. Effettuare la prima chiamata per ottenere le dimensioni della struttura, quindi allocare memoria e passare un puntatore alla memoria allocata nella seconda chiamata.

    • Trovare il sottotipo multimediale del formato di output in WM_MEDIA_TYPE.sottotipo.

    • Per il video, se il sottotipo corrente è il formato che si vuole usare per l'output, interrompere il ciclo. In caso contrario, passare all'iterazione successiva.

      Per l'audio, è necessario controllare i valori nella struttura WAVEFORMATEX in base alle esigenze. WM_MEDIA_TYPE.pbFormat punta alla struttura WAVEFORMATEX per gli output audio.

  5. Dopo aver trovato l'output desiderato, impostarlo per l'uso con il lettore chiamando IWMReader::SetOutputProps (o IWMSyncReader::SetOutputProps). È necessario passare un puntatore all'interfaccia IWMOutputMediaProps ottenuta nel primo passaggio del ciclo.

Interfaccia IWMMediaProps

Interfaccia IWMOutputMediaProps

Interfaccia IWMReader

Interfaccia IWMSyncReader

Utilizzo degli output