![]() |
DVD Navigator und VMR9 Allocator
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
da ich im Netz keinen Hinweis darauf bekommen habe (oder falsch gesucht habe :idea:), hier nun eine kurz Info: mit dem VMR9 Allocator und DirectX9Ex kann man ja sehr schön SharedResources generieren, die man dann z.B. unter DirectX 11 verwenden kann. Hat bei File-Play auch sofort funktioniert. Nur bei DVD kam bei mir immer nur ein schwarzer Bildschirm (obwohl FilterGraph okay war und bei WindowMode die DVD abgespielt wurde). Der Grund: die
Delphi-Quellcode:
Funktion wird 2x aufgerufen, daher bekommt man also wieder ein anderes Handle und muss die Texture neu erzeugen.
function TAllocator.InitializeDevice(dwUserID: DWORD; lpAllocInfo: PVMR9AllocationInfo; var lpNumBuffers: DWORD): HResult; stdcall;
Hier mal kurzer Codeausschnitt
Delphi-Quellcode:
und
function TAllocator.InitializeDevice(dwUserID: DWORD; lpAllocInfo: PVMR9AllocationInfo; var lpNumBuffers: DWORD): HResult; stdcall;
.... VideoHandle := 0; // create the private texture hr:=FD3DDev.CreateTexture(lpAllocInfo.dwWidth, lpAllocInfo.dwHeight, 1, D3DUSAGE_RENDERTARGET, dm.Format, D3DPOOL_DEFAULT, FVideoTexture, @VideoHandle); { in the case we got a new handle -> for VMR9 and DVD playback e.g. } if Assigned (FNewHandle) then FNewHandle; if hr<>S_OK then exit; ...
Delphi-Quellcode:
Das Ergebnis hängt dabei :)procedure TGUIWindowVideo.NewHandle; var lTextureD3D11: ID3D11Texture2D; tempResource11: ID3D11Resource; hr: Hresult; begin FOffscreenTexture := nil; hr := FDeviceD11.OpenSharedResource(FFilterGraphDVD.Allocator.VideoHandle, ID3D11Resource, tempResource11); tempResource11.QueryInterface(ID3D11Texture2D, lTextureD3D11); tempResource11 := nil; hr := FDeviceD11.CreateShaderResourceView(lTextureD3D11, nil, FOffscreenTexture); end; Da ich als nächstes nun die DVD-Navigation einbauen werde, bin ich schon gespannt worauf ich noch alles komm :pale: |
AW: DVD Navigator und VMR9 Allocator
Was genau ist die Frage?
|
AW: DVD Navigator und VMR9 Allocator
Die Frage müsste lauten:
Warum wird bei Verwendung eines VMR9 Allocator bei DVD-Wiedergabe das Bild nicht angezeigt, bei einfachen Video-Dateien aber schon? bg PS: ansonsten den Thread in Tipps und Tricks verschieben |
AW: DVD Navigator und VMR9 Allocator
bzw, vielleicht in Frage umformuliert:
warum ist das so das die Initialisierung zweimal aufgerufen wird? Gibt es einen Grund dafür. Die MSDN schweigt ja dazu. bg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz