Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   RIFF-Parser (https://www.delphipraxis.net/73489-riff-parser.html)

Daniel 18. Jul 2006 23:09


RIFF-Parser
 
Liste der Anhänge anzeigen (Anzahl: 2)
Für ein aktuelles Projekt muss ich Informationen aus RIFF-Dateien auslesen. "RIFF" ist ein Containerformat, welches u.a. von WAVE-Dateien oder AVI-Dateien genutzt wird. Aber auch Anwendungen wie zum Beispiel Corel-DRAW! (CDR) speichern ihre Daten unter Verwendung des RIFF-Formates ab.

Anbei eine Klasse, welche RIFF-Dateien parst und in ihre logischen Bestandteile -sog. "Chunks"- zerlegt. Zur Demonstration wird aus den Daten ein Treeview erstellt. Die Chunks per se sind jetzt noch nicht so spannend, diese Klassen sind eine Vorarbeit für meinen AVI-Parser, den ich in ein paar Tagen vorstellen werde. Mit ihm können aus AVI-Dateien Metadaten wie Anzahl Frames, Auflösung und Keyframes etc. ausgelesen werden - und das auf Basis reiner Datei I/O-Operationen.

Der Code ist gut dokumentiert und weitestgehend selbsterklärend. Eines vielleicht: Im Beispiel-Programm gibt es u.a. folgende Anweisung:

Delphi-Quellcode:
riff.SkipType( 'movi' );
Diese Zeile weist den Parser an, die eigentlichen Multimedia-Daten, also die Frames, nicht zu parsen. RIFF-intern wird dieser Block mit dem Typ "movi" abgekürzt. Die Methode "SkipType" füllt eine interne Liste, kann also mehrfach aufgerufen werden und so bei Bedarf auch mehrere Typen definieren, die beim Parsen übergangen werden sollen.
Wenn man tatsächlich nur an den Meta-Daten interessiert ist, dann wäre es überflüssig, ggf. Tausende an einzelnen Frames einzulesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:56 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