Partager via


Création du récepteur de fichiers ASF

Le récepteur de fichiers ASF est une implémentation de IMFMediaSink fournie par Media Foundation qu’une application peut utiliser pour archiver les données multimédias ASF dans un fichier. Pour plus d’informations sur le modèle objet d’ASF Media Sinks et son utilisation générale, consultez Récepteurs multimédias ASF.

Il existe deux façons de créer un instance du récepteur de fichiers ASF. Vous pouvez appeler MFCreateASFMediaSink ou MFCreateASFMediaSinkActivate.

Si vous appelez MFCreateASFMediaSink, vous devez spécifier un flux d’octets, pour le fichier de sortie, dans lequel le récepteur écrira le contenu ASF pendant une session d’encodage. Le flux d’octets spécifié doit avoir des fonctionnalités pouvant être recherchées et accessibles en écriture, sinon l’appel MFCreateASFMediaSink échoue avec le code d’erreur E_FAIL. Cet appel crée un objet récepteur de fichiers in-process et retourne un pointeur vers l’interface IMFMediaSink du récepteur de fichiers.

Si vous appelez MFCreateASFMediaSinkActivate, vous devez spécifier l’URL du fichier de sortie dans lequel le récepteur de fichiers écrira les données multimédias. Dans ce cas, le récepteur de fichiers crée en interne le flux d’octets. La fonction retourne un pointeur vers l’interface IMFActivate du récepteur de fichiers. À

Considérez MFCreateASFMediaSinkActivate au lieu de MFCreateASFMediaSink, lorsque votre topologie d’encodage est conçue comme suit :

  • La topologie d’encodage concerne le chemin d’accès multimédia protégé (PMP) et le récepteur de fichiers est utilisé hors processus.

  • Le nœud de sortie de la topologie est créé à l’aide du pointeur retourné vers l’objet activate du récepteur de fichiers et votre application effectue le suivi des flux dans le récepteur de fichiers par numéros de flux.

    Notes

    Vous pouvez activer le récepteur de fichiers en appelant IMFActivate::ActivateObject. Toutefois, vous n’avez pas besoin d’activer l’objet de manière explicte. La session multimédia effectue le suivi de l’objet d’activation et active automatiquement le récepteur de fichiers pendant la session d’encodage.

     

  • Les informations de flux sont configurées dans l’objet ContentInfo. Désucssé dans la sous-section suivante.

Après avoir créé le récepteur de fichiers ASF, il doit être configuré avant de créer la topologie. Le récepteur de fichiers doit connaître les informations suivantes pour générer le fichier de sortie.

  • Informations de base sur le flux
  • Informations sur le mode d’encodage
  • Métadonnées

Le récepteur de fichiers implémente l’objet ContentInfo ASF et expose l’interface IMFASFContentInfo afin qu’une application puisse l’utiliser pour définir des informations relatives aux flux et à l’encodage. Selon la fonction que vous avez appelée pour créer le récepteur de fichiers, il existe deux façons d’obtenir une référence à l’interface IMFASFContentInfo .

  • Si vous appelez la fonction MFCreateASFMediaSink , l’application doit interroger l’interface IMFASFContentInfo en appelant IMFMediaSink::QueryInterface sur le récepteur de fichiers retourné.
  • Si vous choisissez d’appeler MFCreateASFMediaSinkActivate, cette fonction s’attend à ce que vous disposiez d’un objet ContentInfo entièrement configuré avant l’appel. Pour ce faire, vous devez créer un objet ContentInfo vide en appelant MFCreateASFContentInfo , puis le configurer avec toutes les informations requises. Transmettez l’objet ContentInfo configuré à MFCreateASFMediaSinkActivate pour recevoir un pointeur vers l’objet d’activation du récepteur. Vous ne pouvez pas activer le récepteur de fichiers à l’aide de l’objet d’activation retourné, puis modifier les informations de flux ou d’encodage.

Pour plus d’informations sur la configuration des flux récepteurs et des propriétés spécifiques, consultez les rubriques suivantes :

Récepteurs multimédias ASF

Composants ASF de couche de pipeline

Prise en charge d’ASF dans Media Foundation