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