enumerazione _MFT_OUTPUT_DATA_BUFFER_FLAGS (mftransform.h)

Definisce i flag per il metodo IMFTransform::P rocessOutput .

Sintassi

typedef enum _MFT_OUTPUT_DATA_BUFFER_FLAGS {
  MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 0x1000000,
  MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 0x100,
  MFT_OUTPUT_DATA_BUFFER_STREAM_END = 0x200,
  MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 0x300
} ;

Costanti

 
MFT_OUTPUT_DATA_BUFFER_INCOMPLETE
Valore: 0x1000000
MFT può comunque generare l'output da questo flusso senza ricevere più input. Chiamare di nuovo ProcessOutput per elaborare il batch successivo di dati di input.
MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE
Valore: 0x100
Il formato è stato modificato in questo flusso di output o è disponibile un nuovo formato preferito per questo flusso. Quando questo flag è impostato, MFT cancella il tipo di supporto per il flusso. Il metodo ProcessOutput restituisce MF_E_TRANSFORM_STREAM_CHANGE e non genera alcun output per alcun flusso. Altre chiamate a IMFTransform::P rocessInput o ProcessOutput avranno esito negativo fino a quando il client non imposta un nuovo tipo di supporto.
MFT_OUTPUT_DATA_BUFFER_STREAM_END
Valore: 0x200
MFT ha rimosso questo flusso di output. Il flusso di output deve avere il flag MFT_OUTPUT_STREAM_REMOVABLE. Vedere IMFTransform::GetOutputStreamInfo.

Quando MFT rimuove un flusso di output, MFT restituisce questo codice di stato alla chiamata successiva a ProcessOutput dopo che è stato prodotto l'ultimo esempio di output. Quando MFT restituisce questo codice di stato, non modifica alcun esempio contenuto nel membro pSample della struttura MFT_OUTPUT_DATA_BUFFER , né alloca un nuovo esempio se pSample è NULL.

Dopo aver restituito questo codice di stato, l'identificatore del flusso per questo flusso di output non è più valido. Il client non deve più fornire una struttura MFT_OUTPUT_DATA_BUFFER per tale flusso quando chiama ProcessOutput.

Il metodo ProcessOutput non restituisce MF_E_TRANSFORM_STREAM_CHANGE al termine di un flusso, a meno che non vi sia una modifica in un altro flusso che richiede questo codice restituito.
MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE
Valore: 0x300
Non è disponibile alcun esempio pronto per questo flusso. Questo flag può essere impostato se MFT dispone di più flussi di output che producono dati in momenti diversi. Imposta questo flag per ogni flusso che non è pronto per produrre dati. Non modifica l'esempio di output contenuto nel membro pSample della struttura MFT_OUTPUT_DATA_BUFFER, né alloca un nuovo esempio è pSample null.

Se nessun flusso è pronto per produrre l'output, MFT non imposta questo flag. Al contrario, il metodo ProcessOutput restituisce MF_E_TRANSFORM_NEED_MORE_INPUT.

Commenti

I valori in questa enumerazione non sono flag di bit, quindi non devono essere combinati con un OR bit per bit. Inoltre, il chiamante deve testare questi flag con l'operatore di uguaglianza, non un AND bit per bit:

// Correct.
if (Buffer.dwStatus == MFT_OUTPUT_DATA_BUFFER_STREAM_END)
{
    ...
}

// Incorrect.
if ((Buffer.dwStatus & MFT_OUTPUT_DATA_BUFFER_STREAM_END) != 0)
{
    ...
}

Requisiti

   
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Intestazione mftransform.h

Vedi anche

Enumerazioni media Foundation

Trasformazioni di Media Foundation