IKsInterfaceHandler ::KsProcessMediaSamples, méthode (ksproxy.h)
La méthode KsProcessMediaSamples traite des exemples de médias.
Syntaxe
HRESULT KsProcessMediaSamples(
[in] IKsDataTypeHandler *KsDataTypeHandler,
[in] IMediaSample **SampleList,
[in, out] PLONG SampleCount,
[in] KSIOOPERATION IoOperation,
[out] PKSSTREAM_SEGMENT *StreamSegment
);
Paramètres
[in] KsDataTypeHandler
Pointeur vers l’interface IKsDataTypeHandler pour le gestionnaire de types de données qui gère le type de média répertorié dans SampleList. Ce gestionnaire de types de données contient des informations spécifiques sur le type de média en cours de diffusion.
[in] SampleList
Pointeur vers une mémoire tampon qui contient un tableau de pointeurs vers les interfaces IMediaSample pour la liste d’exemples multimédias à traiter.
[in, out] SampleCount
Pointeur vers une variable qui contient initialement le nombre d’échantillons dans la liste sampleList et, au retour, reçoit le nombre réel d’échantillons traités.
[in] IoOperation
Valeur qui spécifie le type d’opération d’E/S. Cette valeur peut être l’une des valeurs suivantes du type énuméré KSIOOPERATION :
Valeur | Description |
---|---|
KsIoOperation_Write | Écrire des données à diffuser en continu. |
KsIoOperation_Read | Lire les données du flux. |
[out] StreamSegment
Pointeur vers une mémoire tampon qui reçoit un pointeur vers une structure de KSSTREAM_SEGMENT qui contient des informations d’en-tête pour un segment de flux envoyé à la broche en mode noyau.
Valeur retournée
Retourne NOERROR en cas de réussite ; sinon, retourne un code d’erreur.
Remarques
La méthode KsProcessMediaSamples déplace les exemples à partir ou vers une broche de filtre précédemment affectée. Un en-tête de flux est initialisé pour représenter chaque exemple de média dans le segment de flux. L’entrée et la sortie (E/S) sont ensuite effectuées, le nombre d’éléments d’attente est incrémenté et le thread d’E/S proxy attend l’achèvement.
La méthode KsProcessMediaSamples appelle la méthode KsQueryExtendedSize de l’interface IKsDataTypeHandler reçue pour récupérer la taille de l’en-tête étendu. Si aucune taille d’en-tête étendue n’est spécifiée, KsProcessMediaSamples ignore le pointeur vers l’interface IKsDataTypeHandler . Si une taille d’en-tête étendue est spécifiée, KsProcessMediaSamples maintient le pointeur vers l’interface IKsDataTypeHandler jusqu’à ce que le traitement des exemples multimédias soit terminé. La méthode KsProcessMediaSamples alloue ensuite les en-têtes de flux avec les tailles d’en-tête appropriées. Pour chaque exemple de média, KsProcessMediaSamples initialise l’en-tête, copie les pointeurs de données, définit des horodatages, etc. Chaque exemple est ensuite ajouté à l’exemple de liste. S’il s’agit d’une opération d’écriture, l’échantillon est conservé en incrémentant le nombre de références.
Pour plus d’informations sur IMediaSample, consultez la documentation Microsoft Windows SDK.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | ksproxy.h (inclure Ksproxy.h) |