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