Partager via


IKsInterfaceHandler ::KsProcessMediaSamples, méthode (ksproxy.h)

La méthode KsProcessMediaSamples traite des exemples multimé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 type 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 en continu.

[in] SampleList

Pointeur vers une mémoire tampon qui contient un tableau de pointeurs vers les interfaces IMediaSample pour la liste des exemples multimédias à traiter.

[in, out] SampleCount

Pointeur vers une variable qui contient initialement le nombre d’échantillons dans la liste à SampleList et, à son 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 à partir du type énuméré KSIOOPERATION :

Valeur Description
KsIoOperation_Write Écrire des données en continu.
KsIoOperation_Read Lit les données à partir du flux.

[out] StreamSegment

Pointeur vers une mémoire tampon qui reçoit un pointeur vers une structure KSSTREAM_SEGMENT qui contient des informations d’en-tête pour un segment de flux envoyé à la broche en mode noyau.

Valeur de retour

Retourne NOERROR en cas de réussite ; sinon, retourne un code d’erreur.

Remarques

La méthode KsProcessMediaSamples déplace des échantillons d’une broche de filtre précédemment attribuée 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. Les entrées et sorties (E/S) sont ensuite effectuées, le nombre d’éléments d’attente est incrémenté et le thread d’E/S proxy attend la fin.

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 contient 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, et ainsi de suite. Chaque exemple est ensuite ajouté à l’exemple de liste. S’il s’agit d’une opération d’écriture, l’exemple est conservé en incrémentant le nombre de références.

Pour plus d’informations sur IMediaSample, consultez la documentation du Kit de développement logiciel (SDK) Microsoft Windows.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête ksproxy.h (include Ksproxy.h)

Voir aussi

IKsDataTypeHandler

IKsDataTypeHandler ::KsQueryExtendedSize

KSSTREAM_SEGMENT