Condividi tramite


enumerazione _MFT_OUTPUT_STREAM_INFO_FLAGS (mftransform.h)

Descrive un flusso di output in una trasformazione Media Foundation (MFT).

Sintassi

typedef enum _MFT_OUTPUT_STREAM_INFO_FLAGS {
  MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 0x1,
  MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x2,
  MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 0x4,
  MFT_OUTPUT_STREAM_DISCARDABLE = 0x8,
  MFT_OUTPUT_STREAM_OPTIONAL = 0x10,
  MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 0x100,
  MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 0x200,
  MFT_OUTPUT_STREAM_LAZY_READ = 0x400,
  MFT_OUTPUT_STREAM_REMOVABLE = 0x800
} ;

Costanti

 
MFT_OUTPUT_STREAM_WHOLE_SAMPLES
Valore: 0x1
Ogni campione multimediale (interfaccia IMFSample ) dei dati di output del MFT contiene unità di dati complete e non interrotte. La definizione di un'unità di dati dipende dal tipo di supporto: per il video non compresso, un fotogramma video; per i dati compressi, un pacchetto compresso; per l'audio non compresso, un singolo fotogramma audio.

Per i formati audio non compressi, questo flag è sempre implicito. È valido per impostare il flag, ma non obbligatorio. Un frame audio non compresso non deve mai estendersi su più di un campione multimediale.
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER
Valore: 0x2
Ogni esempio di output contiene esattamente un'unità di dati, come definito per il flag MFT_OUTPUT_STREAM_WHOLE_SAMPLES.

Se questo flag è presente, deve essere presente anche il flag MFT_OUTPUT_STREAM_WHOLE_SAMPLES.

Un MFT che restituisce audio non compresso non deve impostare questo flag. Per un'efficienza, dovrebbe restituire più fotogrammi audio alla volta.
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE
Valore: 0x4
Tutti gli esempi di output hanno le stesse dimensioni.
MFT_OUTPUT_STREAM_DISCARDABLE
Valore: 0x8
MFT può rimuovere i dati di output da questo flusso di output, se richiesto dal client. Per eliminare l'output, impostare il flag MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER nel metodo IMFTransform::P rocessOutput .
MFT_OUTPUT_STREAM_OPTIONAL
Valore: 0x10
Questo flusso di output è facoltativo. Il client può deselezionare il flusso non impostando un tipo di supporto o impostando un tipo di supporto NULL . Quando un flusso facoltativo viene deselezionato, non produce dati di output.
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES
Valore: 0x100
MFT fornisce gli esempi di output per questo flusso, allocandoli internamente o operando direttamente sugli esempi di input. MFT non può usare gli esempi di output forniti dal client per questo flusso.

Se questo flag non è impostato, MFT deve impostare cbSize su un valore diverso da zero nella struttura MFT_OUTPUT_STREAM_INFO , in modo che il client possa allocare la dimensione corretta del buffer. Per altre informazioni, vedere IMFTransform::GetOutputStreamInfo. Questo flag non può essere combinato con il flag MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES.
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES
Valore: 0x200
MFT può fornire esempi di output per questo flusso oppure può usare esempi allocati dal client. Questo flag non può essere combinato con il flag MFT_OUTPUT_STREAM_PROVIDES_SAMPLES.

Se MFT non imposta questo flag o il flag di MFT_OUTPUT_STREAM_PROVIDES_SAMPLES, il client deve allocare gli esempi per questo flusso di output. L'MFT non fornirà i propri campioni.
MFT_OUTPUT_STREAM_LAZY_READ
Valore: 0x400
MFT non richiede al client di elaborare l'output per questo flusso. Se il client continua a inviare dati di input senza ottenere l'output da questo flusso, MFT rimuove semplicemente l'input precedente.
MFT_OUTPUT_STREAM_REMOVABLE
Valore: 0x800
MFT potrebbe rimuovere questo flusso di output durante lo streaming. Questo flag si applica in genere ai demultiplexer, in cui i dati di input contengono più flussi che possono essere avviati e arrestati durante lo streaming. Per altre informazioni, vedere IMFTransform::P rocessOutput.

Commenti

Prima che il client imposti i tipi di supporti in MFT, l'unico flag garantisce che sia accurato è il flag MFT_OUTPUT_STREAM_OPTIONAL. Per tutti gli altri flag, il client deve prima impostare il tipo di supporto in ogni flusso non facoltativo.

I flag MFT_OUTPUT_STREAM_DISCARDABLE e MFT_OUTPUT_STREAM_LAZY_READ definiscono comportamenti diversi per il modo in cui MFT può eliminare i dati di output.

  • MFT_OUTPUT_STREAM_DISCARDABLE: MFT rimuove i dati di output solo se il client chiama ProcessOutput con il flag MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER. MFT non elimina mai i dati quando il client chiama ProcessInput.
  • MFT_OUTPUT_STREAM_LAZY_READ: se il client continua a chiamare ProcessInput senza raccogliere l'output da questo flusso, MFT rimuove infine l'output. Se tutti i flussi di output hanno il flag MFT_OUTPUT_STREAM_LAZY_READ, MFT non rifiuta mai più dati di input.
Se nessuno di questi flag è impostato, MFT non rimuove mai i dati di output.

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

MFT_OUTPUT_STREAM_INFO

Enumerazioni media Foundation

Trasformazioni di Media Foundation