Share via


Metodo IKsInterfaceHandler::KsProcessMediaSamples (ksproxy.h)

Il metodo KsProcessMediaSamples elabora esempi multimediali.

Sintassi

HRESULT KsProcessMediaSamples(
  [in]      IKsDataTypeHandler *KsDataTypeHandler,
  [in]      IMediaSample       **SampleList,
  [in, out] PLONG              SampleCount,
  [in]      KSIOOPERATION      IoOperation,
  [out]     PKSSTREAM_SEGMENT  *StreamSegment
);

Parametri

[in] KsDataTypeHandler

Puntatore all'interfaccia IKsDataTypeHandler per il gestore dei tipi di dati che gestisce il tipo di supporto elencato in SampleList. Questo gestore dei tipi di dati ha informazioni specifiche sul tipo di supporto in streaming.

[in] SampleList

Puntatore a un buffer che contiene una matrice di puntatori alle interfacce IMediaSample per l'elenco di esempi multimediali da elaborare.

[in, out] SampleCount

Puntatore a una variabile che inizialmente contiene il numero di campioni nell'elenco in SampleList e, in caso di restituzione, riceve il numero effettivo di campioni elaborati.

[in] IoOperation

Valore che specifica il tipo di operazione di I/O. Questo valore può essere uno dei valori seguenti dal tipo enumerato KSIOOPERATION:

Valore Descrizione
KsIoOperation_Write Scrivere dati in flusso.
KsIoOperation_Read Leggere i dati dal flusso.

[out] StreamSegment

Puntatore a un buffer che riceve un puntatore a una struttura KSSTREAM_SEGMENT che contiene informazioni di intestazione per un segmento di flusso inviato al pin in modalità kernel.

Valore restituito

Restituisce NOERROR se ha esito positivo; in caso contrario, restituisce un codice di errore.

Commenti

Il metodo KsProcessMediaSamples sposta esempi da o a un pin di filtro assegnato in precedenza. Un'intestazione di flusso viene inizializzata per rappresentare ogni esempio multimediale nel segmento di flusso. L'input e l'output (I/O) vengono quindi eseguiti, il conteggio degli elementi di attesa viene incrementato e il thread di I/O proxy attende il completamento.

Il metodo KsProcessMediaSamples chiama il metodo KsQueryExtendedSize dell'interfaccia IKsDataTypeHandler ricevuta per recuperare le dimensioni dell'intestazione estesa. Se non viene specificata una dimensione dell'intestazione estesa, KsProcessMediaSamples elimina il puntatore all'interfaccia IKsDataTypeHandler . Se viene specificata una dimensione dell'intestazione estesa, KsProcessMediaSamples contiene il puntatore all'interfaccia IKsDataTypeHandler fino al completamento dell'elaborazione degli esempi multimediali. Il metodo KsProcessMediaSamples alloca quindi le intestazioni di flusso con le dimensioni di intestazione appropriate. Per ogni esempio multimediale, KsProcessMediaSamples inizializza l'intestazione, copia i puntatori dati, imposta i timestamp e così via. Ogni esempio viene quindi aggiunto all'elenco di esempio. Se si tratta di un'operazione di scrittura, l'esempio viene mantenuto incrementando il conteggio dei riferimenti.

Per altre informazioni su IMediaSample, vedere la documentazione di Microsoft Windows SDK.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione ksproxy.h (includere Ksproxy.h)

Vedi anche

IKsDataTypeHandler

IKsDataTypeHandler::KsQueryExtendedSize

KSSTREAM_SEGMENT