Aus irgend einem Grund, den ich heute leider nicht mehr weiß, werden in VDR die Frames mit 1 beginnend gezählt und nicht, wie sonst üblich, von 0. War vielleicht einfach eine falsche Entscheidung in den Anfangstagen von VDR...
Prinzipiell ist es zwar egal, ob von 0 oder 1 gezählt wird, aber es ärgert mich jedesmal wieder, wenn ich irgendwo einen Timecode mit Frames sehe, und dort laufen die Frame-Nummern eben von 0 bis 24, wie es sich anscheinenend gehört.
Ich würde das daher gerne endlich mal fixen, was vom Eingriff her relativ einfach ist:
--- recording.c 2014/01/29 10:38:46 3.14
+++ recording.c 2014/02/05 10:08:41
@@ -2923,7 +2923,7 @@
Sign = "-";
}
double Seconds;
- int f = int(modf((Index + 0.5) / FramesPerSecond, &Seconds) * FramesPerSecond + 1);
+ int f = int(modf((Index + 0.5) / FramesPerSecond, &Seconds) * FramesPerSecond);
int s = int(Seconds);
int m = s / 60 % 60;
int h = s / 3600;
@@ -2936,9 +2936,9 @@
int h, m, s, f = 1;
int n = sscanf(HMSF, "%d:%d:%d.%d", &h, &m, &s, &f);
if (n == 1)
- return h - 1; // plain frame number
+ return h; // plain frame number
if (n >= 3)
- return int(round((h * 3600 + m * 60 + s) * FramesPerSecond)) + f - 1;
+ return int(round((h * 3600 + m * 60 + s) * FramesPerSecond)) + f;
return 0;
}
Alles anzeigen
Die Anzeige der Frame-Nummer beim Bewegen einer Schnittmarke wäre damit sofort richtig.
Einziger Nachteil: bestehende Schnittmarken wären alle um 1 daneben. Das wäre aber nicht weiter schlimm, denn seit Version 1.7.32 werden beim Einlesen alle Schnittmarken wenn nötig zum nächstgelegenen I-Frame hin verschoben. Somit könnte ein aktueller VDR nach wie vor alle früheren Aufnahmen problemlos handhaben, und alle VDR-Versionen seit 1.7.32 könnten genauso neue Aufnahmen verarbeiten. Was nicht gehen würde wäre, eine neue Aufnahme, die mit obigem Patch gemacht wurde und Schnittmarken enthält, mit einer VDR-Version vor 1.7.32 zu schneiden. Diesen Fall würde ich aber als eher unwahrscheinlich und daher vernachlässigbar einstufen. Die reine Wiedergabe mit älteren Versionen wäre kein Problem, da sich am eigentlichen Aufzeichnungsformat ja nichts ändert.
Ich würde diese Änderung gerne machen, möchte aber vorher mal in die Runde fragen, ob es Einwände gibt. Vielleicht übersehe ich ja noch irgendein Problem...
Klaus