Condividi tramite


Metodo IAMVideoCompression::GetInfo (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 GetInfo metodo recupera informazioni sulle proprietà di compressione del filtro, incluse le funzionalità e i valori predefiniti.

Sintassi

HRESULT GetInfo(
  [out]     LPWSTR pszVersion,
  [in, out] int    *pcbVersion,
  [out]     LPWSTR pszDescription,
  [in, out] int    *pcbDescription,
  [out]     long   *pDefaultKeyFrameRate,
  [out]     long   *pDefaultPFramesPerKey,
  [out]     double *pDefaultQuality,
  [out]     long   *pCapabilities
);

Parametri

[out] pszVersion

Puntatore a un buffer che riceve una stringa di versione, ad esempio "Versione 2.1.0".

[in, out] pcbVersion

Riceve le dimensioni della stringa di versione, in byte.

[out] pszDescription

Puntatore a un buffer che riceve una stringa di descrizione, ad esempio "My Video Compressor".

[in, out] pcbDescription

Riceve le dimensioni della stringa di descrizione, in byte.

[out] pDefaultKeyFrameRate

Riceve la frequenza predefinita dei fotogrammi chiave.

[out] pDefaultPFramesPerKey

Riceve la frequenza predefinita di fotogrammi stimati (P) per fotogramma chiave.

[out] pDefaultQuality

Riceve la qualità predefinita.

[out] pCapabilities

Riceve le funzionalità di compressione, come combinazione bit per bit di zero o più flag CompressionCaps .

Valore restituito

Restituisce un valore HRESULT .

Commenti

Uno dei parametri elencati può essere NULL, nel qual caso il metodo ignora tale parametro.

L'applicazione deve allocare i buffer per le stringhe di versione e descrizione. Per determinare le dimensioni necessarie dei buffer, chiamare questo metodo con NULL per i parametri pszVersion e pszDescription . Usare i valori restituiti in pcbVersion e pcbDescription per allocare i buffer e quindi chiamare di nuovo il metodo, come illustrato nel codice seguente:

C++
// Get the size of the version and description strings, in bytes.
int cbVersion, cbDesc; 
hr = pCompress->GetInfo(NULL, &cbVersion, NULL, &cbDesc, 
    NULL, NULL, NULL, NULL);
if (SUCCEEDED(hr))
{
    // Allocate the buffers.
    WCHAR *pszVersion = new WCHAR[cbVersion / sizeof(WCHAR)];  
    WCHAR *pszDesc = new WCHAR[cbDesc / sizeof(WCHAR)];

    // Now query for the strings.
    hr = pCompress->GetInfo(pszVersion, &cbVersion, pszDesc, &cbDesc, 
        NULL, NULL, NULL, NULL);
    }
    delete [] pszVersion;
    delete [] pszDesc;
}
Si noti che le stringhe sono stringhe di caratteri wide e le dimensioni restituite sono in byte, non il numero di caratteri. Inoltre, una o entrambe le stringhe potrebbero essere di lunghezza zero.

Il parametro pCapabilities riceve un set di flag che indicano quali proprietà di compressione sono supportate e quindi quali metodi IAMVideoCompression sono supportati. Ad esempio, se viene restituito il flag CompressionCaps_CanKeyFrame , il filtro supporta i metodi IAMVideoCompression::get_KeyFrameRate e IAMVideoCompression::p ut_KeyFrameRate .

I parametri rimanenti ricevono valori predefiniti per le proprietà di compressione. Per le proprietà non supportate (come determinato dai flag restituiti in pCapabilities), è consigliabile ignorare il valore predefinito corrispondente, perché potrebbe non essere corretto o significativo.

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 IAMVideoCompression