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) |