DirectShow im Vollbild-Modus
-
Hi!
Ich will ein Intro-Video mit DirectShow abspielen.
Ich kreiere ein Fenster und bau' darauf mit OpenGL auf...
Aber am Anfang möchte ich halt ein Intro-Video abspielen.
OpenGL hat in Vollbild umgeschaltet.
Ich übergebe den Window-Handle als Parent-Window, etc. pp.
Aber über meinem Vollbild-"Fenster" wird immer ein "ActiveMovie"-Window eingeblendet, daß das Video abspielt.
Ausserdem, obwohl ich das DestinationRectangle auf 1024, 768 gesetzt hab', wird das Video nicht vergrößert, sondern halt in der Ursprungsauflösung (512*384) in diesem Window abgespielt.Kann mir einer mal was Code dazu schicken?!?
Oder erkennt d'rekt den Fehler!?
Ich poste auch gerne meinen Code hier, wenn einer da mal reingucken will, ist aber eigentlich aus der DX-Doku und Tuts übernommen, halt nur als Klasse implementiert.Thanks2all
-
zur not kannste in oGL die einzelnen frames als texturen übergeben, du kannst ebenfalls ohne directshow über die winapi dir ein avi frame für frame auslesen (ja an den sound kommt man auch)
ansonsten würde ich vermuten dass DirectShow nicht mit oGL will, da du aber schriebst, dass du das nur am anfang zeigen willst, bau dir ne exe die nur das video abspielt und in einer anderen machst du das, was du bisher danach machtest, dann erstellst du dir ne exe darüber, die erst die video-exe und dann die normale-exe startet.
so läuft das auch bei manchen spielen wenn die z.B. ein Bink-Video abspielenrapso->greets();
-
Original erstellt von rapso:
[QB]
so läuft das auch bei manchen spielen wenn die z.B. ein Bink-Video abspielen
QB]Bei manchen Spielen ist das voll extrem, z.b beim catan kartenspiel, da gibbet 10 exes oder so^^
-
Original erstellt von rapso:
zur not kannste in oGL die einzelnen frames als texturen übergeben, du kannst ebenfalls ohne directshow über die winapi dir ein avi frame für frame auslesen (ja an den sound kommt man auch)Ich hab' den OpenGL Part nicht geschrieben, hab' auch keine Ahnung davon.
Ich will nur den Intro-Video spielen.
Bin DXler, aber DirectShow is' vor allem COM und nix anderes. Und Vollbild-Tuts hab' ich keine dollen gefunden, die MS Doku dazu is' auch ziemlich erbärmlich.
Und mit WinAPI Frickelei, Video für Windows und den Dreck fang ich jetzt nicht auch noch an!! Die Zeit ist zu knapp dafür. Dann noch mit WinAPI an den Sound?!? Nee, lass mal...**ansonsten würde ich vermuten dass DirectShow nicht mit oGL will, da du aber schriebst, dass du das nur am anfang zeigen willst, bau dir ne exe die nur das video abspielt und in einer anderen machst du das, was du bisher danach machtest, dann erstellst du dir ne exe darüber, die erst die video-exe und dann die normale-exe startet.
so läuft das auch bei manchen spielen wenn die z.B. ein Bink-Video abspielen
**Ja, das hab' ich mir erst auch überlegt, EXE bauen...
Am Anfang war halt das Problem mit den drölfzig OpenGL Contextes, und piepapo (RenderContext xxx) (Warum ist OpenGL initen eigentlich so böse fies?!? ) - OpenGL hat immer alles mit weiß zugepaintet, da brachte auch TOPMOST etc. nix! (Jetzt weiß ich auch warum Quake III immer im Vordergrund bleibt )
Das hab' ich jetzt behoben, in dem ich im OpenGL Fenster erst nachher in FS wechsle.
Für DirectShow hab' ich jetzt soviel rumgetrickst, daß ich nicht mehr das OpenGL als parent kreiere, sondern ein eigenes Window.
Jetzt funzt das auch mit dem Abspielen!
Allerdings bekomm' ich das Vid nicht skaliert!
D.h. auf meinem 1024er Fenster wird es irgendwo in der Mitte mit den 640*480 abgespielt..Noch einer 'ne Idee??
Trotzdem natürlich danke für die Mühe!