Utilisation des objets d’activation d’un encodeur
pour convertir des fichiers multimédias au format ASF, vous pouvez utiliser des encodeurs Windows media. Pour utiliser ces encodeurs, ceux-ci doivent être inscrits auprès du système.
Pour plus d’informations sur l’inscription de l’encodeur, consultez instanciation d’un encodeur MFT.
- Utilisation des objets d’activation d’un encodeur
- énumération d’encodeurs dans Windows 7 et versions ultérieures
- Rubriques connexes
Utilisation des objets d’activation d’un encodeur
En guise d’alternative à l’utilisation de l’interface IMFTransform d’un encodeur (décrite dans création d’un encodeur à l’aide de CoCreateInstance), vous pouvez créer une instance de l’objet d’activation pour l’encodeur. Les objets d’activation facilitent la création de l’encodeur et Media Foundation fournissent les deux fonctions suivantes pour cette approche :
- MFCreateWMAEncoderActivate pour l’instanciation de l’encodeur audio multimédia Windows.
- MFCreateWMVEncoderActivate pour l’instanciation de l’encodeur vidéo multimédia Windows.
Ces deux fonctions nécessitent la création du type de média cible et la définition des propriétés d’encodage avant l’appel de ces fonctions. Si votre application utilise des composants ASF de couche de pipeline pour encoder un fichier au format ASF et que vous avez déjà créé et configuré les récepteurs de média ASF, vous pouvez obtenir cet ensemble d’informations à partir du récepteur multimédia ASF.
MFCreateWMAEncoderActivate et MFCreateWMVEncoderActivate définissent le type de sortie de l’encodeur sur le type de média spécifié par l’application.
Remarque Si vous utilisez MFCreateWMAEncoderActivate et MFCreateWMVEncoderActivate , vous pouvez activer l’encodeur en appelant IMFActivate :: ActivateObject , mais vous ne pouvez pas modifier les types de média d’entrée et de sortie de l’encodeur, ni modifier les propriétés d’encodage.
Pour plus d’informations sur la création d’objets Media Foundation à l’aide d’objets d’activation, consultez objets d’activation.
Pour récupérer le type de média cible à partir du récepteur multimédia ASF
- Obtenir un pointeur vers le pointeur IMFASFContentInfo du récepteur de média ASF en appelant IMFMediaSink :: QueryInterface sur le récepteur de média ASF et en passant IID _ IMFASFContentInfo comme identificateur d’interface.
- Obtient l’objet de profil ASF associé à l’objet ContentInfo.
- Énumérez les flux dans le profil pour récupérer le type de média du flux.
Pour récupérer les propriétés d’encodage à partir du récepteur multimédia ASF
Si vous avez configuré les propriétés d’encodage dans le récepteur multimédia (décrit dans définition des propriétés dans le récepteur de fichiers), vous pouvez référencer la Banque de propriétés du récepteur en appelant IMFMediaSink :: QueryInterface sur le récepteur de média ASF et en passant IID _ IPropertyStore comme identificateur d’interface.
Si vous avez un pointeur vers l’objet ContentInfo du récepteur, vous pouvez appeler IMFASFContentInfo :: GetEncodingConfigurationPropertyStore pour obtenir une référence à la Banque de propriétés du récepteur multimédia.
Assurez-vous que toutes les propriétés d’encodage définies sur le récepteur de média ASF sont reflétées dans la Banque de propriétés passée à MFCreateWMAEncoderActivate et MFCreateWMVEncoderActivate. L’encodeur est configuré automatiquement en fonction des paramètres spécifiés par l’application.
Lors de la création du nœud transformer dans la topologie d’encodage, vous pouvez définir le type d’objet en tant que pointeur IMFActivate reçu dans ces deux appels. Lorsque la topologie est résolue, la session multimédia utilise l’objet d’activation pour créer une instance de la MFT de l’encodeur.
énumération d’encodeurs dans Windows 7 et versions ultérieures
pour les applications qui s’exécutent sur Windows 7, en plus de MFTEnum , vous pouvez énumérer le MFTs d’encodeur en appelant MFTEnumEx. Cette fonction retourne un pointeur vers l’objet d’activation de la table MFT de l’encodeur. La structure de la fonction est très similaire à MFTEnum décrite ci-dessus, à l’exception de MFTEnumEx retourne un tableau de pointeurs IMFActivate pour le MFTS d’encodeur qui correspondent aux critères de recherche.