Fehler PlayMovie, MovieInfo, ResizeImage, DrawImage ...

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Fehler PlayMovie, MovieInfo, ResizeImage, DrawImage ...

Beitrag von sharkpeter »

Hallo,

sobald ich ein Movie mit StopMovie() anhalte und neu starte, wird es in die Breite gezogen. :freak:
Die Höhe ändert sich dabei nicht.

Einzige Abhilfe ist im Moment, FreeMovie(#MNR) und neu laden. /:->

Weiterhin gibt es mit *.gif ein Problem, manche werden abgespielt und andere wiederum nicht.
Da gibt es dann diesen netten Fehler, "... hat einen Fehler verursacht und..."

Wer von euch kennt das Problem oder hat eine Lösung, die anders ist als neu zu laden
für den Ersten Fall. Für den Zweiten sind sicher andere Damen und Herren zuständig.

Danke Jens
Zuletzt geändert von sharkpeter am 14.08.2005 13:17, insgesamt 3-mal geändert.
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Ich habe hier mal ein kleines Beispiel gemacht, wie das aussieht. Mit .gif, .mpeg bzw. mpg wird das Movie in die Breite gezogen. Beim .avi - format wird links und rechts ein schwarzer Rand hinzugefügt.

MfG Falko

Code: Alles auswählen

InitMovie()
OpenWindow(0,100,100,600,200,#PB_Window_SystemMenu,"TestMovie")
LoadMovie(1,"MyMovie.mpg"); bei .gif genauso und bei avi wird ein schwarzer Rand erweitert!
For i= 1 To 50
  PlayMovie(1,WindowID())
  MovieSeek(0)
  Delay(50)
  StopMovie()
Next i
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
CloseWindow(0)
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

Wie vielleicht bemerkt, habe ich den Titel etwas ergänzt.

Folgender Nachtrag zur obigen Ausführung betreffend *.gif: es ist nicht eine Eigenschaft von
*.gif allein, nicht richtig zu funktionieren. Das Abspielen ist dabei auch nicht das Problem,
siehe unten. Das Problem ist der Befehl MovieInfo(0). Offensichtlich ist die Grenze bei einer
Laufzeit von unter 1 Sekunde bzw. unter 100 Frame in der Summe. Am deutlichsten wird
dies bei dem Befehl MovieInfo(0). Sobald die Länge 1 Sekunde unterschreitet, wird
das Compilat mit einem der ach so beliebten Fehler beendet "... hat einen Fehler verursacht
und wird geschlossen..."

Also zum Testen habe ich auf meiner Webseite drei *.avi und zwei *gif hochgeladen, das
eine *.avi ist genau 0,9 Sekunden lang, das andere 1 Sekunde. Zur Verdeutlichung sind
die Einzelbilder nummeriert. Die Wiederholrate beträgt 10 je Bild. Das dritte *.avi ist ein
einziges Bild mit 100 Frame/sec, auch damit gibt keine Probleme.

Die beiden *.gif unterscheinden sich nur darin, das das letzte Einzelbild bei dem
25_1.gif eine 30fache Wiederholung hat und somit die Gesamtzahl von 100 Frame/sec erreicht,
während das andere nur nur 10 Wiederholungen aufweist und in Summe somit 80 Frame/sec
beinhaltet.

Zur allgemeinen Erheiterung, abspielen kann man mit PB, das ist kein Problem, ich benötige
jedoch für verschiedene Aufgaben, die Anzahl der Frame je Sekunde. Nun kann ich sicher hin-
gehen und alles blockieren über die Anzahl der Frame im Movie, aber das ist nicht Sinn der Sache.

Hier die URL für die "Filme":

http://www.winbahn.de/Programme/PureBas ... /avi_test/

Dies ist nur der Ordner, aber das reicht ja aus. Einfach mal laden und dann MovieInfo(0) aufrufen.

Habe noch vergessen zu erwähnen, das ich mir den sehr wohl durchgelesen habe:
http://forums.purebasic.com/german/view ... esizeimage

Ein Zusammenhang ist schwer zu verleugnen, nur ist es fast ein halbes Jahr her, das dort
jemand eine autorisierte Auskunft gegeben hat.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Habe Fred informiert...
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Danke André

Was mir auch noch aufgefallen ist, ist das der Moviekomplex in Win9x anders funktioniert als unter Windows XP.

Unter XP muss man ein Playmovie() und daraufhin ein PauseMovie() zusätzlich einsetzen, wenn man eine Bildfrequenz beim Trackbar anzeigen will, die ich mittels + und - Button steuern will. Unter Win9x kann ich das weg lassen.

Das hat dann wohl nicht mehr viel mit Plattformübergreifend zu tun. Naja, ich weis, das Linux, Amiga und Mac damit gemeint sind. Aber anscheinend sind Win9x, Win2k und WinXP auch verschiedene Plattformen die unterschiedlich mit den Moviebefehlen arbeiten.

Sharkpeter und ich versuchen schon seit einigen Tagen ein Kompromiss zwischen den beiden Windowsen zu bilden, was nicht so einfach ist, wenn Movie bei beiden OS's verschieden arbeitet. Darum auch das starke Interesse an diesem Thema.

MfG Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@Andre,
danke :allright: für die Aufnahme und Weiterleitung. Hoffentlich gibt es eine Lösung oder zumindest
ein sauber zu handelndes Ende für die Sache, ohne das PB dabei jedesmal abstirbt. :twisted:

Noch ein kleiner Zusatz, wurde glaube ich auch schon irgendwo angesprochen:
ResizeImage funktioniert auch nicht immer ganz Astrein, ab einer gewissen Größe, wird nicht
geresized, sondern ein beliebiger Ausschnit in Originalgröße dargestellt, jedoch nicht immer.

So nun genug, ich verpisse mich jetzt erst einmal in meinen wohlverdienten Urlaub, kann
also folglich auch nicht antworten, falls es Zusatzfragen geben sollte.

Im Zweifel weiß Falko über alles Bescheid und kann mit weiteren Auskünften zur Seite stehen.

Gruß Jens, bald aus der südlichen Sonne :D
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@PBTeam

habe da noch was. MovieSeek(xyz) soll ja eigentlich das Movie auf den angegebenen
Frame setzen, macht es auch, nur zeigt es unter 9x nichts an.

Wie kann das?

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

sharkpeter hat geschrieben:@PBTeam

habe da noch was. MovieSeek(xyz) soll ja eigentlich das Movie auf den angegebenen
Frame setzen, macht es auch, nur zeigt es unter 9x nichts an.

Wie kann das?
Zum "wie kann das" kann ich leider nichts sagen. Habe jedoch auch dies an Fred noch gemeldet...
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@André,
gut, dann warten wir es mal ab, wird schon alles gut werden, der Umfang
nimmt ja auch immer mehr zu. Hoffentlich dauert es nicht all zu lange.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@Team
oder wie soll man es am besten schreiben?

Habe das Thema nochmals umbenannt bzw. erweitert.

Betreffend ResizeImage(#xyz) gibt es Probleme, welche sich in folgender
Weise äußern:

1. ab einer bestimmten Größe (mehr als 799*599) und der Unterschreitung
auf ein Format kleiner 32*xx oder einem Bild im Hochformat (dazu leider keine
genauen Erkenntnisse, weil nur sporadisch) wird im neuen Image nur Schrott
angezeigt, sprich ein X-beliebiger Auschnitt aus dem Ursprungsbild.
2. ein Resize z.B. aus dem Format 1600*1200 auf meinethalben 640*480 erzeugt
folgendes nettes Nebenereignis:

Bild

Mängelpunkt sind die netten Linien die dabei im Bild entstehen. Interessanterweise
immer an den gleichen Stellen. Bitte um Hilfe oder Info wenn was nicht im Reinen ist.

Das schöne ist, die kommen aus der linken Seite des Bildes, siehe vergrößerter
Auschnitt und zugehörende Farben.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Antworten