Partager via


Pour énumérer les formats de codecs

[La fonctionnalité associée à cette page, le Kit de développement logiciel (SDK) Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par le lecteur source et l’enregistreurrécepteur. Le lecteur source et l’enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise le lecteur source et l’enregistreur récepteur au lieu du Kit de développement logiciel (SDK) Windows Media Format 11, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Un format de codec est un objet de configuration de flux rempli avec les données d’un codec. Chaque format de codec contient une configuration multimédia prise en charge par le codec. La plupart des codecs audio prennent en charge un nombre fini de formats, chacun d’eux étant énuméré par le codec et accessible à l’aide des méthodes de IWMCodecInfo. En revanche, les codecs vidéo ne fournissent qu’un seul format. Cela est dû au fait que les flux vidéo ont des variables, telles que la taille de l’image, qui sont plus flexibles que les paramètres d’un flux audio. Avec un flux vidéo, vous devez renseigner certaines des valeurs de configuration de flux ; Les configurations de flux audio doivent uniquement être modifiées pour affecter un nom, un nom de connexion et un numéro de flux. Pour plus d’informations, consultez Configuration commune à tous les flux.

Les formats de codec énumérés dépendent des paramètres d’énumération de codecs actuels, qui sont définis à l’aide de IWMCodecInfo3::SetCodecEnumerationSetting. Actuellement, seules deux propriétés de codec sont prises en charge : g_wszNumPasses, qui spécifie le nombre de passes d’encodage effectuées par le codec, et g_wszVBREnabled, qui spécifie si le codec utilisera l’encodage à débit variable. Comme le nombre maximal de passes d’encodage prises en charge par l’un des codecs est de deux, il existe quatre configurations distinctes pour lesquelles vous pouvez récupérer les codecs, comme indiqué dans le tableau suivant.

  Flux de débit constant (CBR) Flux CBR 2 passes Flux VBR (Variable Bit Rate) basé sur la qualité Flux VBR basé sur le débit binaire (contraint ou sans contrainte)
g_wszVBREnabled FALSE FAUX VRAI VRAI
g_wszNumPasses 1 2 1 2

 

Pour énumérer les formats pris en charge pour un codec, utilisez IWMCodecInfo::GetCodecFormatCount pour rechercher le nombre de codecs pris en charge. Appelez ensuite IWMCodecInfo::GetCodecFormat pour chaque format. Les index de format sont compris entre zéro et un de moins que le nombre total de formats pris en charge. Vous pouvez récupérer une description du format en appelant IWMCodecInfo2::GetCodecFormatDesc. Lorsque vous utilisez GetCodecFormatDesc, vous n’avez pas besoin d’utiliser GetCodecFormat, car l’objet de configuration de flux est récupéré par les deux méthodes. Les formats de codec vidéo n’incluent pas de description. Chaque codec vidéo a un seul format utilisé pour tous les flux de ce type.

Lorsque vous récupérez un format de codec, vous obtenez l’interface IWMStreamConfig d’un objet de configuration de flux contenant les paramètres de format.

Obtention d’informations de configuration de flux à partir de codecs