Index

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Probleme)
Zeile 5: Zeile 5:
  
 
  struct tIndex  
 
  struct tIndex  
  { int offset;      //(signed 32bit/4byte)  Speicherposition des Frame, relativ zum Dateianfang der jeweiligen Datei
+
  { int offset;      //(signed 32bit/4byte)  Speicherposition des Frame, relativ zum Dateianfang der jeweiligen Datei, verweist auf PES header
     uchar type;    //(8bit/1byte)          Type des Frames (I, P, B) nur an I-Frames kann geschnitten oder können beim Spulen ansprungen werden.
+
     uchar type;    //(8bit/1byte)          Type des Frames (no frame=0, I=1, P=2, B=3) nur an I-Frames kann geschnitten oder können beim Spulen ansprungen werden.
 
     uchar number;  //(8bit/1byte)          Nummer der Datei (00x.vdr) in der das Frame zu finden ist.
 
     uchar number;  //(8bit/1byte)          Nummer der Datei (00x.vdr) in der das Frame zu finden ist.
 
     short reserved; //(16bit/2byte)  
 
     short reserved; //(16bit/2byte)  
Zeile 12: Zeile 12:
  
 
Bedingt durch die vorzeichenbehaftete Definition der Variablen ''offset'' ergibt sich eine Größenbegrenzung der VDR-Stream-Dateien (00x.vdr) von max. 2^31, also 2.147.483.648 Bytes (2GB).
 
Bedingt durch die vorzeichenbehaftete Definition der Variablen ''offset'' ergibt sich eine Größenbegrenzung der VDR-Stream-Dateien (00x.vdr) von max. 2^31, also 2.147.483.648 Bytes (2GB).
 
  
 
'''Beispiel einer zusätzlichen Anwendung''':
 
'''Beispiel einer zusätzlichen Anwendung''':

Version vom 19. April 2008, 15:56 Uhr

Die Indexdatei index.vdr wird automatisch vom VDR für jede Aufzeichnung erstellt. Über diese Indexdatei spult der VDR vor- und rückwärts oder führt Schnitte aus. Soll die Indexdatei neu erstellt werden, hilft das Tool genindex.

Die Datei index.vdr ist eine Lookup-Tabelle der Speicherpositionen der Frames in den VDR-Stream Dateien (00x.vdr). Die Datei selber ist ein flaches Array vieler Indexeinträge mit folgender Struktur des jeweiligen Indexeintrages. Jeder Indexeintrag hat die Gesamtgröße von acht Bytes.

struct tIndex 
{ int offset;      //(signed 32bit/4byte)   Speicherposition des Frame, relativ zum Dateianfang der jeweiligen Datei, verweist auf PES header
   uchar type;     //(8bit/1byte)           Type des Frames (no frame=0, I=1, P=2, B=3) nur an I-Frames kann geschnitten oder können beim Spulen ansprungen werden.
   uchar number;   //(8bit/1byte)           Nummer der Datei (00x.vdr) in der das Frame zu finden ist.
   short reserved; //(16bit/2byte) 
};

Bedingt durch die vorzeichenbehaftete Definition der Variablen offset ergibt sich eine Größenbegrenzung der VDR-Stream-Dateien (00x.vdr) von max. 2^31, also 2.147.483.648 Bytes (2GB).

Beispiel einer zusätzlichen Anwendung:

  • Dateigröße der index.vdr / 8 Byte = Anzahl der Frames der Aufnahme
  • Anzahl der Frames der Aufnahme / 25 = Länge der Aufnahme in Sekunden
  • Größe der index.vdr in Bytes / 12000 = Länge der Aufnahme in Minuten

Probleme

Diese Größenberechnung funktioniert allerdings nicht für Radioaufnahmen. Denn nur in Videoaufnahmen finden sich die I-Frames, für die die obigen Berechnungen gelten. Deshalb ist die angegebenen Spieldauer und damit auch die Spulgeschwindigkeiten bei vdr falsch.

Eine korrigierte index.vdr wird mit dem Audioindexer-patch erstellt, so dass auch Radioaufnahmen korrekt funktionieren.