Condividi tramite


Metodo IAMBufferNegotiation::SuggestAllocatorProperties (strmif.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il SuggestAllocatorProperties metodo informa il pin delle proprietà dell'allocatore preferite dell'applicazione. Chiamare questo metodo prima della connessione del pin.

Sintassi

HRESULT SuggestAllocatorProperties(
  [in] const ALLOCATOR_PROPERTIES *pprop
);

Parametri

[in] pprop

Puntatore a una struttura ALLOCATOR_PROPERTIES che contiene le proprietà richieste. Un valore negativo per qualsiasi membro indica che il pin deve usare l'impostazione predefinita per tale proprietà.

Valore restituito

Restituisce un valore HRESULT . Di seguito sono indicati alcuni valori possibili.

Codice restituito Descrizione
S_OK
Operazione completata.
E_FAIL
Esito negativo.
E_POINTER
Argomento puntatore NULL.
VFW_E_ALREADY_CONNECTED
Il pin è già connesso.

Commenti

Se entrambi i pin nella connessione espongono l'interfaccia IAMBufferNegotiation , chiamare questo metodo su ogni pin per assicurarsi che un pin non esegua l'override dell'altro.

Per richiedere un determinato numero di buffer, impostare il membro cBuffers della struttura ALLOCATOR_PROPERTIES . Per richiedere una determinata dimensione del buffer, impostare il membro cbBuffer . Un'applicazione in genere non deve specificare l'allineamento o il prefisso. Se il numero di buffer o dimensioni di ogni buffer è troppo piccolo, il grafico dei filtri potrebbe eliminare campioni.

Esempio

C++
ALLOCATOR_PROPERTIES AllocProp;
AllocProp.cbAlign = -1;  // -1 means no preference.
AllocProp.cbBuffer = dwBytesPerSec *  dwLatencyInMilliseconds / 1000;
AllocProp.cbPrefix = -1;
AllocProp.cBuffers = -1;
pIAMBufferNegotiation->SuggestAllocatorProperties(&AllocProp);

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione strmif.h (include Dshow.h)
Libreria Strmiids.lib

Vedi anche

Codici di errore e di esito positivo

Interfaccia IAMBufferNegotiation