Seite 1 von 2

Movie-Screen-Problem

Verfasst: 17.10.2009 11:46
von hth
Ich hatte zunächst am 22.01.09 im englischen Forum einige Probleme dargestellt

(http://www.purebasic.fr/english/viewtop ... 896#263896)

und da sich nicht viel getan hat am 11.03.2009 im deutschen Forum/allgemein (Problemsammlung) noch mal
um eine allgemeine Überprüfung, ob es sich wirklich um bugs handelt, gebeten.

Inzwischen sind in der (Beta 4.4) 3 der genannten 4 Punkte erfolgreich bearbeitet
(inklusive des Suchsens nach Variablen (nur ganze Wörter) vor denen ein "*" steht). *Nachtrag: Irrtum von mir - geht immer noch nicht!!!
Dafür herzlichen Dank an das PB-Tea

Leider sind aber die genannten Movie-Probleme immer noch vorhanden.

1. Wenn einmal ein Movie im Screen abgespielt wurde, ist dies nicht mehr möglich
wenn der Screen geschlossen und erneut geöffnet wird.
Im Beispiel beliebige Taste drücken und zweites Movie laden.

2. Es können im Screen grundsätzlich keine Movies abgespielt werden, die größer sind als die aktuelle Bildschirmauflösung.

P.S.
Ich würde es sehr gut finden, wenn es im Forum eine Stelle gäbe. in der alle zur Zeit erkannten Probleme
und der aktuelle Bearbeitungsstand aufgelistet wären (oder gibt es so was schon?)

z.B.
a) Fehler erkannt
b) in Bearbeitung
c) gelöst

hth

Code: Alles auswählen

InitMovie() And InitSprite() And InitSprite3D() And InitMouse() And InitKeyboard()  
wsc=640:hsc=480  
 
 ma1: 
 File$ = OpenFileRequester("","","Video files (*.mpg;*.avi)|*.mpg;*.avi",0) 
 If file$="":End:EndIf 
                 
 OpenScreen(wsc,hsc,32,"movie")        
 Surface = CreateSprite(1,wsc,hsc, #PB_Sprite_Texture)    
    
 LoadMovie(0, File$)
 PlayMovie(0, #PB_Movie_Rendered)        
        
 Repeat          
     FlipBuffers()          
     ExamineKeyboard()     
     RenderMovieFrame(0, Surface)     
     DisplaySprite(1, 0, 0)     
 Until KeyboardPushed(#PB_Key_All) 
 
 StopMovie(0)  
 CloseScreen() 
 Goto ma1

Re: Movie-Screen-Problem

Verfasst: 02.11.2009 00:48
von hth
Da niemand reagiert neuer Versuch:

Bitte die beiden Dateien
http://www.ht-mm.de/640.mpg und http://www.ht-mm.de/768.mpg
in c:\Versuch laden:

Fehler 1
(Schließt man einen Screen und kehrt z.B. in die Win-Oberfläche zurück, kann man anschließend keine Videos mehr in einem Screen abspielen, sondern muss das Programm komplett neu starten)

Code: Alles auswählen

InitMovie():InitSprite():InitKeyboard()
 
 Directory$="c:\Versuch\"		;Bitte "640.mpg" und "768.mpg" in dieses Verzeichnis kopieren  
 
 File$=Directory$+"640.mpg" 
 wsc=640:hsc=480				;		
 
 MessageRequester("Versuch 1","Es wird die Dateie 640.mpg zwei mal abgespielt. Das zweite mal funktioniert es nicht, wenn der Screen zwischendurch geschlossen wird. Am Ende bitte jeweils Taste drücken")                
 
 OpenScreen(wsc,hsc,32,"movie")        
 		Surface = CreateSprite(0,wsc,hsc, #PB_Sprite_Texture) 			
 		Gosub loadplay
 		CloseScreen():OpenScreen(wsc,hsc,32,"movie")   ;Zeile bitte auskommentieren >>Video wird zweimal ordnungsgemäß abgespielt 		
 		Surface = CreateSprite(0,wsc,hsc, #PB_Sprite_Texture)
 		Gosub loadplay 
 CloseScreen() 
 End 
 
 loadplay:
 LoadMovie(0, File$)
 PlayMovie(0, #PB_Movie_Rendered)        
 Repeat             
     ExamineKeyboard()      
     RenderMovieFrame(0, Surface) ; Yeah, render the movie directly on our texture...
     DisplaySprite(0, 0, 0)
     FlipBuffers()       
 Until KeyboardPushed(#PB_Key_All)
 StopMovie(0)  
 Return
Fehler 2
(Es können keine Videos in einem Screen abgespielt werden, die größer sind als die Screenauflösung. Für Full-HD-Videos braucht man dann also unbedingt auch einen Bildschirm der 1920*1080 verarbeiten kann)

Code: Alles auswählen

InitMovie():InitSprite():InitKeyboard()
 
 Directory$="c:\Versuch\"		;Bitte "640.mpg" und "768.mpg" in dieses Verzeichnis kopieren  
 
 wsc=640:hsc=480 
 ;wsc=1024:hsc=768					;		
 
 MessageRequester("Versuch 1","Es werden nacheinander die Dateien 640.mpg und 768.mpg angespielt. Im 640-er-Screen funktioniert nur die erste Datei. Am Ende bitte jeweils Taste drücken")                
 
 OpenScreen(wsc,hsc,32,"movie")        
 		Surface = CreateSprite(0,wsc,hsc, #PB_Sprite_Texture) 
 		File$=Directory$+"640.mpg" 	
 		Gosub loadplay
 		Surface = CreateSprite(0,wsc,hsc, #PB_Sprite_Texture)
 		File$=Directory$+"768.mpg"
 		Gosub loadplay 
 CloseScreen() 
 End 
 
 loadplay:
 LoadMovie(0, File$)
 PlayMovie(0, #PB_Movie_Rendered)        
 Repeat             
     ExamineKeyboard()      
     RenderMovieFrame(0, Surface) ; Yeah, render the movie directly on our texture...
     DisplaySprite(0, 0, 0)
     FlipBuffers()       
 Until KeyboardPushed(#PB_Key_All)
 StopMovie(0)  
 Return

Re: Movie-Screen-Problem

Verfasst: 04.11.2009 10:49
von dige
Tja, willkommen im Club! RenderMovieFrame geht mit dem Dx9Subsystem gar
nicht. Und das wurde mit pb4.30 nicht behoben und mit der aktuellen
Beta scheint es in dieser Richtung auch nix neues zu geben. Ist echt ärgerlich.
Aber mehr als die Bugs zu posten kann man nicht machen..

Re: Movie-Screen-Problem

Verfasst: 04.11.2009 23:06
von hth
Nein, prinzipiell geht es bei mir einwandfrei, aber eben nicht diese zwei Sonderfälle!
Dennoch sehr ärgerlich. Viele Videos sind nun heute mal in HD und wenn der Bildschirm kleiner ist, folgt nur ein Black-Screen.
Außerdem sollte es auch kein Problem sein, zwischendurch mal den Screen zu schließen und ins Windows "zurückzukehren".
Im WindowedScreen funktioniert ja alles.
Spielt man allerdings ein Video im normalen Screen ab und schließt diesen Screen, funktioniert danach auch der WindowedScreen nicht mehr.

hth

Re: Movie-Screen-Problem

Verfasst: 04.11.2009 23:25
von Kaeru Gaman
in einem Fullscreen spielt man nur einen Film ab, den man selber gemacht hat, wie ein Intro für ein Spiel.

ein Player arbeitet niemals mit einem Fullscreen, höchstens mit maximiertem WindowedScreen, normalerweise sowieso mit einem anderen DC.
Außerdem sollte es auch kein Problem sein, zwischendurch mal den Screen zu schließen und ins Windows "zurückzukehren".
dafür sind screens nicht gedacht.
viele Spiele restarten sogar, wenn die Einstellungen für den Screen geändert werden.

Re: Movie-Screen-Problem

Verfasst: 05.11.2009 16:12
von bobobo
na, das sind ja ganz neue Vorschriften hier.

hth , lass dir nix einreden.

Re: Movie-Screen-Problem

Verfasst: 05.11.2009 16:40
von Kaeru Gaman
wus?
das war lediglich allgemein umrissen, wie es gehandhabt wird.

wenn man unbedingt etwas ganz anders machen muss, als es vorgesehen ist, wird man eben mit Schwierigkeiten zu kämpfen haben, die man dann aber nicht ohne weiteres als Bug bezeichnen darf.

was dein Einwurf da soll ist mir völlig unverständlich! Bild

Re: Movie-Screen-Problem

Verfasst: 05.11.2009 20:33
von bobobo
wo steht geschrieben, dass das so gehandhabt wird? :shock: LexPurebasic, oder was ?

Wer sich der möglichkeiten heutiger Rechner entzieht ist allerdings selber schuld, gell. :wink:

Re: Movie-Screen-Problem

Verfasst: 05.11.2009 21:26
von hth
bobobo danke für deine Stellungnahme.
Ich finde es auch absolut unfair wie hier auf Fehlermeldungen reagiert wird.

Mein Hobby ist es nicht, nach irgend welchen bugs zu suchen!
Fehler die gemeldet werden, sollten eigentlich als Hilfe angesehen und nicht sofort geblockt werden!

Wenn mein Programm nicht ruckeln soll, muss ich nun mal im VollScreen arbeiten.

hth

Re: Movie-Screen-Problem

Verfasst: 06.11.2009 10:09
von bobobo
nun nochmal zu den Problemen bei RenderMovieFrame .. eventuell ist es was ähnliches
wie mit derm #PB_Sprite_Texture bei der CreateSprite() Funktion.
Sowas verursacht auf meinem Laptopf, insofern ich die Harwarebeschleunigung
im erweiterten Eigenschaftsdialog (Reiter Problembehandlung) nicht etwas reduziere,
adhoc einen blauen Bluescreen (so 'n onboard Laptopf-Grafikchip ist halt nix "richtiges").


WinXP Sp3 - Samsung P55 im übrigen