Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Fehler bei Schreiben eines AVIs (https://www.delphipraxis.net/48562-fehler-bei-schreiben-eines-avis.html)

Sanchez 27. Jun 2005 12:42


Fehler bei Schreiben eines AVIs
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

Ich möchte eine Reihe von Bitmaps in eine AVI-Datei schreiben und diese dann komprimieren.
Ausgegangen bin ich dabei von obbschtkuche's Komponente, die in hier verlinkt ist. Ich hab daraus statt einer Komponente einen normalen TObject-Nachfahren gemacht, ansonsten ist die Klasse gleich.

Dabei stoße ich auf 2 Fehler:
1. Wenn ich die Funktion CreateAVIFile innerhalb im Debugger ausgeführt wird, dann liefert die Funktion AVISaveOptions und die AVIMakeCompressedStream (wenn ich die AVISaveOptions auslasse und den Recorde für die Komprimieroptionen händisch füttere) jeweils eine AV der Klasse C0000005. Wenn ich das Programm kompiliere und außerhalb der IDE start, dann gibt es keine Fehler. :gruebel:

2. Wenn ein AVI geschrieben wurde und die TAVICreator Instanz nach Aufruf von CloseAVIFile zerstört wird, dann gibts auch eine AV der Klasse C0000005. Wenn in CloseFile die Funktionsaufrufe von
Delphi-Quellcode:
 AVIStreamRelease(ps);
 AVIStreamRelease(ps_c);
 AVIFileRelease(pfile);
weggelassen werden, dann gibts keinen Fehler. Allerdings gibts dann auch kein AVI. :mrgreen:

Ich hab ein Demoprojekt angehängt, mit dem ihr diese Fehler hoffentlich nachvollziehen könnt.
Das Demoprogramm schreibt einfach abwechselnd die beiden Bitmaps in das Video.

Kann mir jemand mehr über diese Fehler sagen?
Google konnte das nicht.

grüße, daniel

Sanchez 28. Jun 2005 15:46

Re: Fehler bei Schreiben eines AVIs
 
:gruebel: Eigenartig. Ich hab diese Demoprojekt gerade auf einem anderen Rechner ausprobiert.
Da gabs in der IDE keine Zugriffsverletzung beim Schreiben des Videos. Weder beim Aufruf von AVISaveOptions, noch bei AVIMakeCompressedStream. Allerdings gibts die Zugriffsverletzung beim Zerstören der TAVICreator auch hier. Die kann ich mir leider nicht erklären.

Der vermutlich einzige nennenswerte Unterschied ist, dass auf dem ersten Rechner der DivX-Codec installiert ist, beim anderen nicht. [nachträglich]Nein, das war nicht der entscheidende Punkt. Ich hab den Codec gerade hier installiert und es läuft.[/nachträglich]

Ich würde mich freuen, wenn noch jemand den Fehler bei den beiden APIs nachvollziehen könnte.

grüße, daniel

Sanchez 1. Jul 2005 12:28

Re: Fehler bei Schreiben eines AVIs
 
Hat keiner eine Idee, worans liegt?

Daniel G 1. Jul 2005 23:01

Re: Fehler bei Schreiben eines AVIs
 
Na ja, dass die AV's nur in der IDE auftreten wird wohl an deiner try-except-Konstruktion liegen.

Sanchez 3. Jul 2005 13:29

Re: Fehler bei Schreiben eines AVIs
 
Verrätst du mir auch warum das so sein soll?
try-except-Blöcke sind dafür da, Exceptions abzufangen und nicht um welche zu erzeugen.
IMHO ist es auszuschließen, dass diese beiden Funktionen außerhalb der IDE Fehler liefern. Sonst würde kein Video aufgezeichnet werden.

Daniel G 3. Jul 2005 20:27

Re: Fehler bei Schreiben eines AVIs
 
Argh... Verdammt, hab' da wohl was falsch verstanden. Entschuldige. Nein, ich habe keine Ahnung, woher der Fehler rührt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz