IAMStreamConfig::SetFormat-Methode (strmif.h)
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]
Die SetFormat
-Methode legt das Ausgabeformat für den Pin fest.
HRESULT SetFormat(
[in] AM_MEDIA_TYPE *pmt
);
[in] pmt
Zeiger auf eine AM_MEDIA_TYPE-Struktur , die das neue Format angibt.
Gibt einen HRESULT-Wert zurück. Die folgenden Werte sind möglich.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Erfolg. |
|
Nicht genügend Arbeitsspeicher. |
|
NULL-Zeigerwert. |
|
Dieser Medientyp ist ungültig. |
|
Der Eingabenadel ist nicht verbunden. |
|
Der Typ kann nicht festgelegt werden. der Filter wird nicht beendet. |
|
Der Typ kann nicht festgelegt werden. der Filter wird nicht beendet. |
Diese Methode gibt das Format für den Ausgabenadel an. Wenn der Pin nicht verbunden ist, verwendet er dieses Format für die nächste Verbindung. Wenn der Pin bereits verbunden ist, wird versucht, die Verbindung mit diesem Format wiederherzustellen. Die Methode schlägt möglicherweise fehl, wenn der andere Pin den neuen Typ ablehnt.
Wenn diese Methode erfolgreich ist, geben nachfolgende Aufrufe der IPin::EnumMediaTypes-Methode den neuen Typ und keine anderen zurück.
Bei den meisten Filtern schlägt diese Methode fehl, wenn der Filter angehalten oder ausgeführt wird. Bei einigen Komprimierungsfiltern schlägt die Methode fehl, wenn der Eingabenadel des Filters nicht verbunden ist.
Bei einigen Filtern können Sie diese Methode mit dem Wert NULL aufrufen, um den Pin auf das Standardformat zurückzusetzen.
Filterentwickler: In den folgenden Anmerkungen wird beschrieben, wie diese Methode implementiert wird:
Wenn der Ausgabepin nicht verbunden ist und der Pin den angegebenen Medientyp unterstützt, geben Sie S_OK zurück. Speichern Sie den Medientyp, und bieten Sie ihn als Formatnummer 0 in der CBasePin::GetMediaType-Methode an. Bieten Sie keine anderen Formate an, und lehnen Sie andere Formate in der CBasePin::CheckMediaType-Methode ab.
Wenn der Pin bereits verbunden ist und der Pin den Medientyp unterstützt, verbinden Sie den Pin erneut mit diesem Typ. Wenn der andere Pin den neuen Typ ablehnt, geben Sie VFW_E_INVALIDMEDIATYPE zurück, und stellen Sie die ursprüngliche Verbindung wieder her.
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | strmif.h (include Dshow.h) |
Bibliothek | Strmiids.lib |