Condividi tramite


Metodo IKsInterfaceHandler::KsProcessMediaSamples (ksproxy.h)

Il metodo KsProcessMediaSamples elabora esempi di supporti.

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 contiene informazioni specifiche sul tipo di supporto trasmesso.

[in] SampleList

Puntatore a un buffer contenente 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 del tipo enumerato KSIOOPERATION:

Valore Descrizione
KsIoOperation_Write Scrivere dati in streaming.
KsIoOperation_Read Legge 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.

Osservazioni

Il metodo KsProcessMediaSamples sposta gli esempi da o a un pin di filtro assegnato in precedenza. Un'intestazione di flusso viene inizializzata per rappresentare ogni campione multimediale nel segmento di flusso. Vengono quindi eseguiti l'input e l'output (I/O), 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 rimuove 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 dei campioni multimediali. Il metodo KsProcessMediaSamples quindi alloca le intestazioni del flusso con le dimensioni di intestazione appropriate. Per ogni esempio multimediale, KsProcessMediaSamples inizializza l'intestazione, copia i puntatori dati, imposta timestamp e così via. Ogni esempio viene quindi aggiunto all'elenco di esempi. 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.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione ksproxy.h (include Ksproxy.h)

Vedere anche

IKsDataTypeHandler

IKsDataTypeHandler::KsQueryExtendedSize

KSSTREAM_SEGMENT