Partager via


Affectation des formats de sortie

Certains codecs peuvent décompresser les données multimédias numériques dans plusieurs formats non compressés. Vous pouvez trouver tous les formats pris en charge pour une sortie spécifique à l’aide du lecteur asynchrone ou du lecteur synchrone.

Pour examiner tous les formats disponibles d’une sortie, effectuez les étapes suivantes. Ces procédures sont identiques pour le lecteur asynchrone et le lecteur synchrone. Lorsque les noms d’interface varient, les méthodes de lecteur synchrones sont répertoriées entre parenthèses après les méthodes du lecteur asynchrone.

  1. Créez un objet lecteur et chargez un fichier pour la lecture. Pour plus d’informations, consultez Pour créer un lecteur et ouvrir un fichier (ou Créer un lecteur synchrone et ouvrir un fichier).

  2. Déterminez la sortie pour laquelle vous souhaitez trouver les formats disponibles. Si vous ne savez pas encore quelle sortie vous souhaitez utiliser, vous pouvez identifier les sorties dans le fichier à l’aide des procédures décrites dans Pour identifier les numéros de sortie.

  3. Récupérez le nombre total de formats disponibles pour la sortie souhaitée en appelant IWMReader::GetOutputFormatCount (ou IWMSyncReader::GetOutputFormatCount).

  4. Effectuez une boucle dans les formats disponibles un par un, en effectuant les étapes suivantes pour chacun d’eux :

    • Récupérez l’interface IWMOutputMediaProps pour le format de sortie actuel en appelant IWMReader::GetOutputFormat (ou IWMSyncReader::GetOutputFormat).

    • Récupérez la structure WM_MEDIA_TYPE pour le format de sortie en effectuant deux appels à IWMMediaProps::GetMediaType. Effectuez le premier appel pour obtenir la taille de la structure, puis allouez de la mémoire pour celle-ci et passez un pointeur vers la mémoire allouée lors du deuxième appel.

    • Recherchez le sous-type multimédia du format de sortie dans WM_MEDIA_TYPE.subtype.

    • Pour la vidéo, si le sous-type actuel est le format que vous souhaitez utiliser pour la sortie, sortez de la boucle. Sinon, passez à l’itération suivante.

      Pour l’audio, vous devez case activée les valeurs de la structure WAVEFORMATEX par rapport à vos besoins. WM_MEDIA_TYPE.pbFormat pointe vers la structure WAVEFORMATEX pour les sorties audio.

  5. Lorsque vous avez trouvé la sortie souhaitée, définissez-la pour une utilisation avec le lecteur en appelant IWMReader::SetOutputProps (ou IWMSyncReader::SetOutputProps). Vous devez passer un pointeur vers l’interface IWMOutputMediaProps obtenue à la première étape de la boucle.

IWMMediaProps Interface

IWMOutputMediaProps Interface

IWMReader Interface

IWMSyncReader Interface

Utilisation des sorties