Verwenden des DirectShow EVR-Filters
Rufen Sie CoCreateInstance auf, um den filter enhanced video renderer (EVR) zu erstellen. Die CLSID ist CLSID _ EnhancedVideoRenderer, definiert in uuids.h. Sie müssen MFStartup oder MFShutdown nicht aufrufen, um den EVR-Filter zu verwenden.
Weitere Informationen zur Verwendung des EVR-Filters in einer DirectShow-Anwendung finden Sie unter Audio-/Videowiedergabe in DirectShow.
Der EVR-Filter beginnt mit einem Eingabepin, der dem Verweisstream entspricht. Um Pins für Substreams hinzuzufügen, fragen Sie den Filter für die IEVRFilterConfig-Schnittstelle ab, und rufen Sie IEVRFilterConfig::SetNumberOfStreams auf. Rufen Sie diese Methode auf, bevor Sie eine Verbindung mit Eingabepins herstellen. Pin 0 ist immer der Verweisstream. Verbinden diesen Pin vor allen anderen Pins an, da das Format des Verweisstreams einschränken kann, welche Unterstreamformate verfügbar sind.
Legen Sie vor dem Starten des Diagramms das Videoclipfenster und das Zielrechteck fest. Weitere Informationen finden Sie unter Verwenden der Videoanzeigesteuerelemente.
Im Gegensatz zum Video Mixing Renderer (VMR) verfügt die EVR nicht über Betriebsmodi (fensterlos, fensterlos usw.). Dies gilt insbesondere für:
- Der EVR unterstützt den Fenstermodus nicht. Die Anwendung muss das Ausschneidefenster bereitstellen.
- Die EVR verfügt nicht über einen renderlosen Modus. Rufen Sie ZUM Ersetzen des Standardpräsentierers DIE AUFFORDERUNGVideoRenderer::InitializeRendererauf.
- Die EVR verfügt nicht über einen Gemischtmodus. Die EVR erstellt immer den Mixer. Wenn Sie über einen Eingabestream verfügen, ist es nicht erforderlich, SetNumberOfStreams aufzurufen, um die EVR zur Verwendung des Mixers zu zwingen.
Filterschnittstellen
Der EVR-Filter macht die folgenden Schnittstellen verfügbar. Einige dieser Schnittstellen sind im DirectShow SDK dokumentiert. Verwenden Sie QueryInterface, um Zeiger auf diese Schnittstellen abzurufen:
- IAMCertifiedOutputProtection (DirectShow)
- IAMFilterMiscFlags (DirectShow)
- IBaseFilter (DirectShow)
- IEVRFilterConfig
- IKsPropertySet (DirectShow)
- IMediaEventSink (DirectShow)
- VERZRGETService
- CITRIXVideoPositionMapper
- DINNERVideoRenderer
- Ipersiststream
- IQualityControl (DirectShow)
- IQualProp (DirectShow)
- Ispecifypropertypages
Eingabe-Pin-Schnittstellen
Die Eingabepins im EVR-Filter machen die folgenden Schnittstellen verfügbar. Verwenden Sie QueryInterface, um Zeiger auf diese Schnittstellen abzurufen:
- IEVRVideoStreamControl
- IMemInputPin (DirectShow)
- VERZRGETService
- IPin (DirectShow)
- IQualityControl (DirectShow)
Darüber hinaus können Sie mithilfe der INTERFACESGetService-Schnittstelle die folgende Schnittstelle abrufen: