Metodo IMFTransform::SetOutputBounds (mftransform.h)
Imposta l'intervallo di timestamp necessari per l'output del client.
Sintassi
HRESULT SetOutputBounds(
LONGLONG hnsLowerBound,
LONGLONG hnsUpperBound
);
Parametri
hnsLowerBound
Specifica il timestamp più recente. La trasformazione Media Foundation (MFT) accetta l'input fino a quando non può produrre un esempio di output che inizia in questo momento; o fino a quando non può produrre un campione che termina in questo momento o versioni successive. Se non è presente alcun limite inferiore, usare il valore MFT_OUTPUT_BOUND_LOWER_UNBOUNDED.
hnsUpperBound
Specifica il timestamp più recente. MFT non produrrà un esempio di output con timestamp più tardi di questa volta. Se non è presente alcun limite superiore, usare il valore MFT_OUTPUT_BOUND_UPPER_UNBOUNDED.
Valore restituito
Il metodo restituisce un HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.
Codice restituito | Descrizione |
---|---|
|
Il metodo è riuscito. |
|
Non implementato. |
|
Il tipo di supporto non è impostato su uno o più flussi. |
Commenti
Questo metodo può essere usato per ottimizzare la preroll, soprattutto nei formati che hanno lacune tra i timestamp o i formati in cui i dati devono iniziare su un punto di sincronizzazione, ad esempio MPEG-2. La chiamata a questo metodo è facoltativa e l'implementazione di questo metodo da parte di un MFT è facoltativa. Se MFT non implementa il metodo, il valore restituito è E_NOTIMPL.
Se un MFT implementa questo metodo, deve limitare i dati di output all'intervallo di volte specificato da hnsLowerBound e hnsUpperBound. MFT elimina tutti i dati di input che non sono necessari per produrre output all'interno di questo intervallo. Se i limiti di esempio non corrispondono esattamente all'intervallo, il MFT deve suddividere gli esempi di output, se possibile. In caso contrario, gli esempi di output possono sovrapporsi all'intervallo.
Si supponga, ad esempio, che l'intervallo di output sia compreso tra 100 e 150 millisecondi (ms) e il formato di output sia video con ogni fotogramma che dura 33 ms. Un esempio con un timestamp di 67 ms si sovrappone all'intervallo (67 + 33 = 100) e viene prodotto come output. Un esempio con un timestamp di 66 ms viene rimosso (66 + 33 = 99). Analogamente, un esempio con un timestamp di 150 ms viene prodotto come output, ma un esempio con un timestamp di 151 viene rimosso.
Se MFT_UNIQUE_METHOD_NAMES viene definito prima di includere mftransform.h, questo metodo viene rinominato MFTSetOutputBounds. Vedere Creazione di oggetti DMO/MFT ibridi.
Requisiti
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | mftransform.h |
Libreria | Mfuuid.lib |