Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[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.]
Les exemples d’extensions, également appelées extensions d’unité de données (DUE) ou propriétés de mémoire tampon, sont des éléments de données qui sont attachés aux exemples de média dans la section données du fichier ASF. Plusieurs types d’exemples d’extensions sont définis dans le Kit de développement logiciel (SDK) au format Windows Media. Vous pouvez également créer vos propres types d’extension.
Pour utiliser des exemples d’extensions, vous devez identifier le type d’extension dans les données de configuration de flux du profil. Appelez la méthode IWMStreamConfig2::AddDataUnitExtension pour configurer un flux afin d’accepter des exemples avec des données étendues.
Des exemples d’extensions individuels doivent être ajoutés aux exemples d’entrée en appelant la méthode INSSBuffer3::SetProperty . Lors de la lecture d’exemples, vous pouvez appeler la méthode INSSBuffer3::GetProperty pour récupérer les données d’extension. Vous pouvez également utiliser les méthodes de l’interface INSSBuffer4 pour énumérer les extensions d’unités de données attachées à un exemple.
Le tableau suivant répertorie les identificateurs d’extension d’unité de données prédéfinis et décrit les données attachées à des exemples pour chacun d’eux.
Exemple de GUID d’extension | Description |
---|---|
WM_SampleExtensionGUID_OutputCleanPoint | Les données indiquent si l’exemple est un point de nettoyage. La valeur zéro indique que l’exemple n’est pas un point de nettoyage. Une valeur autre que zéro indique qu’il s’agit d’un point de nettoyage. Cet exemple de type d’extension d’unité de données (DUE) est utilisé pour effectuer le suivi des points propres lors de l’écriture de flux multimédias prédé compressés qui ont été encodés avec des codecs tiers. |
WM_SampleExtensionGUID_Timecode | Les données sont une structure de WMT_TIMECODE_EXTENSION_DATA contenant des données de code de temps SMPTE associées à l’exemple. La taille de ce DUE est toujours WM_SampleExtension_Timecode_Size, soit 14 octets. |
WM_SampleExtensionGUID_FileName | Ce type d’exemple d’extension est utilisé pour les flux de fichiers. Les données d’un exemple de flux de fichiers sont un élément d’un fichier de données. Les données de l’exemple d’extension spécifient le nom du fichier à partir duquel le contenu de l’exemple a été extrait. Le nom de fichier est une chaîne à caractères larges contenant le nom de fichier au format name.extension sans aucune information de chemin d’accès. |
WM_SampleExtensionGUID_ContentType | Les données identifient le type de contenu que l’exemple contient. Ce type d’exemple d’extension est utilisé avec des flux vidéo entrelacés. Tout le contenu entrelacé utilise l’indicateur WM_CT_INTERLACED combiné par un or au niveau du bit avec WM_CT_BOTTOM_FIELD_FIRST, WM_CT_TOP_FIELD_FIRST ou WM_CT_REPEAT_FIRST_FIELD. L’ordre de champ n’est pas utilisé dans le processus d’encodage, mais est conservé avec les exemples compressés afin qu’il puisse être transmis au matériel de rendu. La lecture de contenu entrelacé avec un ordre de champ incorrect introduit des artefacts tels que la gigue de mouvement dans la vidéo. La taille de ce DUE est toujours WM_SampleExtension_ContentType_Size. |
WM_SampleExtensionGUID_PixelAspectRatio | Les données indiquent les proportions en pixels du contenu de l’exemple. Cela s’applique uniquement à la vidéo. Ce type d’extension est utilisé pour identifier les proportions des pixels non carrés. Pour plus d’informations, consultez Pour lire et écrire des flux vidéo avec des pixels non carrés. Les valeurs de proportion sont stockées sous la forme d’un mot dont l’octet faible est l’aspect X et dont l’octet élevé est l’aspect Y. Par exemple, 16:9 est stocké en tant que 0x0910. La taille de ce DUE est toujours WM_SampleExtension_PixelAspectRatio_Size, soit 2 octets. |
WM_SampleExtensionGUID_SampleDuration | Les données indiquent la durée, en millisecondes, de l’exemple contenu dans l’objet de mémoire tampon. Lors de la lecture, si cette valeur DUE est définie, l’objet lecteur l’utilisera pour remplacer la valeur de durée de l’exemple existante. Cette DUE est automatiquement définie par les composants d’exécution du SDK sur les flux vidéo avec des débits binaires de 100 kbits/s ou plus, où la surcharge des informations DUE n’est pas significative. Il n’est pas défini pour les flux dont les débits binaires sont inférieurs à 100 Kbits/s. Les applications ne doivent pas définir cette DUE manuellement, car l’enregistreur (sur les flux à débit élevé) remplacera la valeur par ses propres données. La taille de ce DUE est toujours WM_SampleExtension_SampleDuration_Size, soit 2 octets. |
WM_SampleExtensionGUID_ChromaLocation | Les données indiquent le type de sous-échantillonnage chromatique utilisé dans le format vidéo I420. La valeur de cette extension est définie sur l’une des valeurs suivantes :
La taille de ce DUE est toujours WM_SampleExtension_ChromaLocation_Size, soit 1 octet. |
WM_SampleExtensionGUID_ColorSpaceInfo | Les données fournissent des informations sur l’espace de couleurs utilisé pour l’image vidéo actuelle. La valeur de cette extension est une structure WMT_COLORSPACEINFO_EXTENSION_DATA . Cette extension d’unité de données n’est pas configurée dans le profil. Il est inclus dans la sortie des exemples du décodeur. La taille de ce DUE est toujours WM_SampleExtension_ColorSpaceInfo_Size, soit 3 octets. |
WM_SampleExtensionGUID_UserDataInfo | Les données sont des données utilisateur personnalisées. Les quatre premiers octets des données contiennent la taille des données personnalisées. L’octet suivant contient le type de données utilisateur fourni dans l’exemple d’extension. Les types suivants sont pris en charge :
Cette extension d’unité de données n’est pas configurée dans le profil. Il est inclus dans les exemples qui sont générés par le décodeur. |
WM_SampleExtensionGUID_SampleProtectionSalt | Les données sont chiffrées par exemple. Cet exemple de type d’extension est utilisé pour le contenu importé à partir d’un format de fichier non ASF et d’un schéma de protection des droits autre que la gestion des droits numériques windows Media. Lors de l’importation de contenu protégé, chaque échantillon doit inclure un sel unique. En règle générale, cette valeur est un compteur qui augmente de façon monotone. |