KSPROPERTY_STREAM_PRESENTATIONTIME
La propriété KSPROPERTY_STREAM_PRESENTATIONTIME permet de récupérer et de définir l’heure de présentation actuelle d’une broche de filtre.
Tableau récapitulatif de l’utilisation
Get | Set | Cible | Type de descripteur de propriété | Type de valeur de propriété |
---|---|---|---|---|
Oui |
Oui |
Épingle |
Remarques
KSPROPERTY_STREAM_PRESENTATIONTIME est une propriété facultative qui doit être implémentée si une broche conserve des informations de position ou utilise des interfaces différentes avec différents formats d’horodatage sur des broches topologiquement liées. Par conséquent, il faudrait que les horodatages se traduisent par une heure de présentation de recherche.
L’heure de présentation de la broche de filtre est spécifiée sous la forme d’une structure KSTIME dont l’interprétation dépend de l’interface utilisée. Pour l’interface de diffusion en continu standard, l’heure est spécifiée par incréments de 100 nanosecondes (sauf indication contraire du numérateur et du dénominateur) représentant la position de présentation du flux que le filtre traite actuellement ou cherche à traiter. S’il s’agit d’un filtre de rendu, cette position représente les données en cours de rendu. Ces informations de positionnement sont synchronisées avec l’heure de présentation de l’horloge master. L’heure de présentation commence généralement à zéro et peut représenter un décalage de temps dans les données de fichier. Le numérateur et le dénominateur peuvent être utilisés pour spécifier l’alignement des blocs que l’interface applique.
Cette propriété est également utilisée lors de la traduction de valeurs positionnelles pendant la propagation d’une demande de recherche. La valeur positionnelle de recherche sur une broche est traduite dans le filtre en temps de présentation sur les broches topologiquement associées. Un client définit cette propriété avec une nouvelle position de flux pour la recherche. Cela est généralement appelé par le proxy lorsqu’une recherche est requise après l’annulation des E/S en attente et la réinitialisation de l’état de l’appareil. Si aucune réinitialisation n’a été effectuée, le filtre peut avoir à annuler et réinitialiser automatiquement de manière appropriée. La propriété reçoit un KSTIME contenant la nouvelle position de flux en unités cohérentes avec l’interface utilisée sur la connexion.
Une fois qu’un client (par exemple, un proxy DirectShow) a écrit une demande de recherche sur une connexion, il interroge les autres connexions topologiquement associées pour une heure de présentation. Toutes les autres connexions qui effectuent une demande de lecture réussie font que le proxy passe la position de résultat à l’autre extrémité de cette connexion. De cette façon, les positions de recherche sont propagées (par exemple, dans le graphique DirectShow) sans avoir à connaître le format d’unité autre que le format d’unité initial passé par un client. Les traductions se produisent dans le filtre à mesure que les informations de position se propagent dans la topologie au sein d’un filtre. Cette méthode de rond-point est utilisée, car les méthodes de communication peuvent être limitées entre différents filtres dans un graphique en fonction des interfaces qu’ils utilisent. Lors de la définition d’une nouvelle position de recherche, la paire numérateur/dénominateur doit être acceptable pour l’épingle.
Configuration requise
En-tête |
Ks.h (inclure Ks.h) |