Partager via


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)

Voir aussi

IKsDataTypeHandler

IKsDataTypeHandler ::KsQueryExtendedSize

KSSTREAM_SEGMENT