Condividi tramite


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
S_OK
Il metodo è riuscito.
E_NOTIMPL
Non implementato.
MF_E_TRANSFORM_TYPE_NOT_SET
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

Vedi anche

FMTransform

Trasformazioni di Media Foundation