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.
Requisiti
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Intestazione | mftransform.h |