Zitat:
Original geschrieben von jmetzkow
[B]zu int16 iVideoFatEntry
werte ich den wert so aus wie buffer[x]*256+buffer[x+1] = 0-65535
der wert als solches ist das das ? byte in der fat?
oder inttostr(buffer[84])+inttostr(buffer[85]) byte in fat?
Was willst du mit IntToStr? Ich sagt doch bereits, daß du da nichts mit ASCII Werten bzw. Strings anfängst.
Also Berechnung der Integer/Byte Werte.
Anmerkung: Es kann allerdings auch sein, daß du den int16 Typ nach folgender Formel berechnen mußt: buffer[x]+buffer[x+1]*256 (sprich nicht das erste Byte mit 256 multiplizieren, sondern das 2. Byte) Das hängt davon ab, ob das FileSystem BigEndian oder LittleEndian ist.
Einfach mal ausprobieren, laut Beschreibung des Filesystem sollte es aber Byte1+Byte2*256 sein.
[B]
Zitat:
wie ich eben an die werte rankomme ist klar aber auf welche art und weisse die werte verwendet werden ist mir noch unklar
Wie du die Werte verwendest mußt du selber herrausfinden, ich hab schließlich nicht den Inhalt deiner Festplatte hier. Ich hab auch nicht vor dir den kompletten Code zu entwickeln
Nur als Tip: du gehst einfach mal nach methodischen Grundlagen vor:
1.)
lösche die komplette Festplatte, in dem du 0x00 Bytes drauf schreibst
2.)
mache im Receiver exakt eine(!) einzige Aufnahme
3.)
lese die FileDescription aus
4.)
anhand der Einträge in der FileDescription iVideoFatEntry und iAudioFatEntry Pointer berechnen
5.)
mit diesen Pointern den entsprechenden FAT Eintrag suchen (laut
Einweisung ist 1 FAT Eintrag = 4 Bytes)
6.)
die ersten beiden Bytes diese FAT Eintrages auswerten und schauen wohin die genau verweisen (das mußt du selber nachschauen, denn ich hab ja keine Hyundai Platte im Rechner zum auslesen)
Zitat:
"Jedenfalls ist jeder FAT-Eintrag 4Bytes lang. Die ersten 2 Bytes verweisen
auf den nächsten Eintrag. Jeder Eintrag stellt einen Cluster dar."
Anhand diese FAT Einträge wirst du irgendwo hin verwiesen, wo du dann eine Abfolge von Bytes finden wirst
Für die erste Aufnahme muß das erste Byte für den Video Cluster 1 sein (bzw Cluster 2 für den ersten Audio Cluster). Die nachfolgenden Bytes in diesen Einträgen sind dann die nachfolgenden vom Video oder Audio belegten Clusternummern.
Als Beispiel:
Für die Liste der belegten Video Cluster bekommst du wahrscheinlich solche Werte:
01 03 04 05 06 .. 2E 2F 30 00 00 00 usw.
Das bedeutet Cluster Nummer 1, 3, 4.. bis Cluster 30 sind Video Cluster (die nachfolgenden 0x00 Bytes zeigen keine Cluster mehr an!)
Und für Liste der Audio Cluster könnte es so aussehen:
02 10 1D 00 00 00
Dann wären Cluster 2, 0x10, 0x1D die Audio Cluster der Aufnahme (auch hier gilt 0x00 Bytes zeigen nicht auf Cluster!)
Dann hast du eine Liste mit allen Clustern einer Aufnahme, die jeweils zu einem Video Stream und einem Audio Stream gehören und du kannst diese Streams in zwei separate Dateien rippen.