Définition des propriétés dans le récepteur de fichiers

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.

Après avoir créé le récepteur de fichiers ASF, il doit être configuré avec des informations sur les flux dans le fichier de sortie. Cette procédure est décrite dans Ajout d’informations de flux au récepteur de fichiers ASF. Vous pouvez définir des propriétés supplémentaires sur le récepteur de fichiers en fonction du type d’encodage ; compartiments qui fuient; propriétés générales du fichier. Ces paramètres ne sont pas écrits dans l’objet d’en-tête ASF final. Cette rubrique décrit le processus d’ajout de ces propriétés dans le magasin de propriétés du récepteur de fichiers.

L’objet ContentInfo conserve les propriétés de fichier globales et les propriétés de flux individuels pour le récepteur de fichiers. Pour plus d’informations sur l’obtention d’une référence à l’objet ASF ContentInfo du récepteur de fichiers, consultez Création du récepteur de fichiers ASF.

Pour obtenir une référence au magasin de propriétés du récepteur de fichiers (IPropertyStore), appelez IMFASFContentInfo::GetEncodingConfigurationPropertyStore sur la référence de l’objet ContentInfo du récepteur de fichiers.

Propriétés d’encodage de flux

Pour encoder correctement le contenu, le fichier doit connaître certaines informations d’encodage telles que le type d’encodage et les paramètres d’encodage associés. Ces valeurs sont définies sur le récepteur de fichiers en tant que valeurs de propriété dans un magasin de propriétés géré par l’objet ContentInfo ASF. Si vous configurez le récepteur de fichiers avant d’instancier les encodeurs appropriés, vous pouvez utiliser l’objet ContentInfo avec toutes les propriétés renseignées pour créer les encodeurs Windows Media. Dans ce cas, les propriétés sont automatiquement définies sur les encodeurs instanciés. À l’inverse, si vous créez les encodeurs avant le récepteur, assurez-vous que les propriétés que vous définissez sur les encodeurs sont copiées dans le magasin de propriétés du récepteur de fichiers.

Pour définir les propriétés d’encodage, vous devez accéder au magasin de propriétés au niveau du flux du récepteur de fichiers. Transmettez le numéro de flux dans le paramètre wStreamNumber de la méthode IMFASFContentInfo::GetEncodingConfigurationPropertyStore . Les numéros de flux doivent correspondre aux valeurs définies lors de la configuration de chaque flux dans le profil. Les valeurs de propriété sont définies en appelant IPropertyStore::SetValue. Le tableau suivant décrit les propriétés prises en charge.

Les propriétés dépendent du type d’encodage. Pour plus d’informations sur les propriétés et les valeurs respectives que vous devez définir, consultez Propriétés d’encodage.

Fuite de compartiment, propriété

Les paramètres de compartiment qui fuient déterminent la fenêtre de mémoire tampon réelle utilisée par l’encodeur pour le flux. La propriété MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET du récepteur de fichiers contient les paramètres du compartiment qui fuit, le débit binaire, la fenêtre de mémoire tampon et l’exhaustivité initiale de la mémoire tampon. Cette propriété est définie dans le magasin de propriétés au niveau du flux pour le récepteur de fichiers et doit être définie une fois que les encodeurs ont été créés et configurés. Cette valeur est définie dans . Pendant la négociation du type de média, l’encodeur décide de la fenêtre de mémoire tampon et du débit binaire à utiliser. Vous pouvez obtenir ces valeurs à l’aide de l’interface IWMCodecLeakyBucket , qui est définie dans wmcodecifaces.h et vous devez lier à wmcodecdspuuid.lib pour appeler ses méthodes.

Les valeurs récupérées peuvent être définies pour cette propriété pour chaque flux dans le récepteur de fichiers ASF.

Propriétés du récepteur de fichiers global

Pour obtenir le magasin de propriétés global du récepteur de fichiers, passez 0 dans le paramètre wStreamNumber de la méthode IMFASFContentInfo::GetEncodingConfigurationPropertyStore . Les valeurs de propriété sont définies en appelant IPropertyStore::SetValue. Le tableau suivant décrit les propriétés prises en charge.

Propriétés au niveau du fichier Description
MFPKEY_ASFMEDIASINK_BASE_SENDTIME L’heure d’envoi indique quand la charge utile à l’intérieur du compartiment qui fuit sera libérée. Cette valeur de propriété indique l’heure du premier envoi. Le multiplexeur utilise cette valeur pour calculer les temps d’envoi suivants pour les paquets générés et s’assure que les données circulent régulièrement dans le compartiment qui fuit.
MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE Cette valeur BOOL indique si le multiplexeur doit ajuster automatiquement le débit binaire pour s’assurer que les données ne dépassent pas le compartiment qui fuit.
MFPKEY_ASFMEDIASINK_DRMACTION Cela indique l’action DRM du récepteur multimédia ASF pour la génération de fichiers. Dans cette version, seul le transcode DRM est pris en charge.

 

Récepteurs multimédias ASF

Composants ASF de couche de pipeline

Prise en charge d’ASF dans Media Foundation