Bereitstellen eines benutzerdefinierten Allocator-Presenter für VMR-7

Der Zuweisungs Presenter ist für das Zuordnen von DirectDraw-Oberflächen und das darstellen der Video Frames zum Rendern verantwortlich. In den meisten Szenarios ist die Funktionalität des standardzuordnerpräsentators für die Anforderungen einer Anwendung mehr als ausreichend. Durch das Plug eines benutzerdefinierten zuordnerbildrors kann eine Anwendung jedoch direkten Zugriff auf die Video Bits erhalten und den Renderingprozess vollständig steuern. Der Nachteil dieser verbesserten Leistung besteht darin, dass die Anwendung die zusätzliche Komplexität der DirectDraw-Oberflächen Verwaltung bewältigen muss.

Verwenden eines benutzerdefinierten zuordcators (Presenter)

Die obige Abbildung zeigt die Kommunikationsschnittstellen, die von VMR und der Zuweisung-Presenter verwendet werden. Ein benutzerdefinierter Allocator-Presenter, der alle standardmäßigen Zuordnungs-und Präsentations Funktionen überschreibt, muss die ivmrimagepresenter -Schnittstelle und die ivmrsurfaceallocator -Schnittstelle implementieren und optional ivmrwindowlesscontrol.

Um den standardzuordnerpräsentator zu ersetzen, ruft eine Anwendung die ivmrsurfaceverteilcatornotify:: advisesurfacedepcator -Methode auf und übergibt einen Zeiger auf den neuen zuordnerpräsentator. Als Reaktion auf diesen-Befehl ruft der VMR die ivmrsurfacedepcator:: advisenotify -Methode des zugriffspräsentators auf, um den Zeiger auf die ivmrsurfaceverteilcatornotify -Schnittstelle von VMR bereitzustellen. Der zuordnerpresenter verwendet diesen Schnittstellen Zeiger, wenn Ereignisse mit der ivmrsurfacezucatornotify:: notifyEvent -Methode an den VMR übergeben werden.

Als alternative Lösung kann eine Anwendung sowohl Ihren eigenen zuordnerpresenter als auch den standardzuordnerpresenter verwenden. In diesem Szenario verarbeitet der Custom-zuordnerpräsentator nur die Aufrufe, bei denen eine benutzerdefinierte Funktionalität benötigt wird, und übergibt die restlichen Aufrufe von VMR an den standardzuordcator-Presenter. In vielen Fällen ist es nur erforderlich, die ivmrimagepresenter -Schnittstelle zu überschreiben.

Verwenden von zwei zuordnermoderatorpresenter

Um sowohl einen benutzerdefinierten zuordnerpresenter als auch den standardzuordnerpräsentator zu verwenden, ruft eine Anwendung zunächst ivmrsurfacedepcatornotify:: advisesurfacedepcator auf, um einen Zeiger auf den neuen zuordnerpräsentator bereitzustellen. Dies bewirkt, dass der standardzuordnerpresenter zerstört wird, sodass die Anwendung eine andere Instanz dieser Instanz erstellen muss, indem QueryInterface für den VMR aufgerufen und die ivmrsurfaceverteilcator -Schnittstelle angefordert wird. Wie in der obigen Abbildung gezeigt, überschreibt der Custom- zuordnerpräsentator die ivmrimagepresenter -Schnittstellen Methoden und übergibt einfach alle Aufrufe an die ivmrsurfacediskcator -Schnittstelle an die Standard Implementierung. Die Abbildung zeigt auch die ivmrwindowlesscontrol -Schnittstelle, die auf der "zuordcator-Presenter" implementiert wird.

Bereitstellen eines benutzerdefinierten Allocator-Presenter für VMR-9

VMR-renderlosen Wiedergabemodus (benutzerdefinierter Zuweiser)