Tach,
also erstmal muss ich sagen: Klasse idee
Die Idee ist wirklich gut und interessiert mich brennend, grad weil ich momentan voll in der Entwicklung von einer DirectShow engine bin, welche ich für mein Player projekt nehme.
Hing die ganze zeit an der sache, weil manche formate machen absoluten käse wenn ich via IVideoWindow, die Position und grösse verändere.
Mach das genau wie du mit der Aspect Ratio sache.
War die ganze zeit am grübeln, wie ich das mit VMR mache, weil damit geht es, zumindest wenn DX den Filtergraphen generieren darf.
Das ist aber genau das was ich nicht will !
Weil ich nämlich selbst bestimme welcher FileSource/Splitter/Decoder/Renderer benutzt werden muss.
Auf jedemfall, habe dein Filter unter Delphi 5 Standard kompiliert und dann gleich mal mit GraphEdit getestet.
Ein einfaches MPEG1 Video lief problemlos.
Danach ein XVid konvertieres vid welches mit DivX Decoder abgespielt wird ebeneso.
Allerdings als ich dann versucht habe, den XVid Decoder zu benutzen dann kann man die Pins nicht verbinden.
Nicht desto trotz, hab ich dann gleich mal mein Directshow Player umgeschrieben, das er als Video Renderer nicht den "VMR 9 Video Renderer" nimmt, sondern deinen "OpenGL Video Renderer".
Also der Filtergraph wird absolut korrekt erstellt wie man hier sieht (das erste file wie oben Mpeg1):
Allerdings bleibt das Bild immer schwarz und am ende gibts nen Fehler das das Fenster Handle ungültig ist
Tippe mal darauf das da irgendnen fehler unterlaufen ist, mit dem Ausgabe Handle.
Kann dazu aber nix sagen... kenn mich da nicht aus.
So stell ich zumindest mein zeugs im IVideoWindow ein:
Code: // Video Ausgabe handle anpassen und zum ersten mal das Bild resizen if Assigned(fVW) then begin fVW.put_Owner(_VideoHandle); fVW.put_WindowStyle(WS_CHILD or WS_CLIPSIBLINGS); fVW.put_WindowStyleEx(0); fVW.put_MessageDrain(_MsgHandle); Windows.GetClientRect(_VideoHandle, R); W := R.Right - R.Left; H := R.Bottom - R.Top; ResizeEngine(W, H, _Ratio); fVW.put_Visible(True); end;
In ResizeEngine wird dann über SetWindowPosition die Position gesetzt.
Kannst auf jedemfall sicher sein, das ich dich in dem Projekt unterstützen werde
Hab nämlich keine lust mehr auf VMR :p$
Werd dir dann auch helfen mit der Farbkonvertierung
|