Kratzplatz, Markenerkennung, Tonabdruck — erfundene Wörter für Fachbegriffe
„Scratch disk" wörtlich zu übersetzen ist derselbe Fehler wie „Wachhund"
für Watchdog und „Keks" für Cookie. Und „Marke" ist kein Fachbegriff für
das, was gemeint ist: Jellyfin nennt diese Abschnitte Media Segments, und
das ist auch das Wort, in dem sich darüber reden lässt.
Kratzplatz* → Transcode* (was es ist, steht in FLARO_TRANSCODE)
Marke, Marken → Segment, Segmente
Markenerkennung → Segmenterkennung
Markenart/-suche → Segmentart/-suche
Tonabdruck → Fingerprint (Chromaprint nennt es so)
Tonabgleich → Fingerprintabgleich
Schlüsselbild → Keyframe
Bildabtaster → Frameabtaster
Gewöhnliches Deutsch bleibt gewöhnliches Deutsch: Wartung, Freigabe,
Meldung, Abspann, Vorspann. Das war nie das Problem.
**Was sich nicht ändert, und zwar mit Absicht.** Die drei
Einstellungsschlüssel `wartung.kratzplatz.paket.*` bleiben, wie sie sind —
sie stehen in der Datenbank, und ein neuer Name hiesse, dass die Werte
des Nutzers stillschweigend auf die Vorgabe zurückfallen. Dasselbe für
die Endpunktpfade `/marken`: sie sind nicht sichtbar, und ein Umbenennen
wäre Diff ohne Gewinn.
**Die Migration ist von Hand geschrieben.** `dotnet ef` hat ein Gerüst
erzeugt, das beide Tabellen löscht und neu anlegt — es sieht eine
verschwundene und eine neue Tabelle, nicht eine umbenannte. Damit wäre
jedes erkannte Segment und jeder Vermerk „hier wurde schon gesucht" weg
gewesen. `RenameTable` und `RenameIndex` tun dasselbe, ohne eine Zeile
anzufassen; nachgemessen an einer echten SQLite-Datei: Zeilen vorher 1
und 1, nachher 1 und 1, Inhalt unverändert.
Nachgezogen: in `bilder.ts` und `main.ts` heisst „marke" ein Häkchen und
das Logo — die blieben unberührt. Und „Segment" ist sächlich, was eine
Blindersetzung nicht weiss: „eine Segment" stand danach an vierzehn
Stellen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
32f592b83e
commit
ed13d5fa43
@@ -197,15 +197,15 @@ public class HlsLaufTests
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// <b>Das ist der Test, der gefehlt hat.</b> Die Quelle hat genau ein
|
||||
/// Schlüsselbild, bei null; jeder Sprung landet also mitten in der
|
||||
/// Keyframe, bei null; jeder Sprung landet also mitten in der
|
||||
/// Bildgruppe — der schlimmste Fall. Genau gesprungen schnitte ffmpeg den
|
||||
/// Ton auf die Sekunde, das kopierte Bild aber nicht, und dazwischen läge
|
||||
/// Bild ohne Ton.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// Zuerst hatte ich dafür den Sprung auf das Schlüsselbild gerundet. Das
|
||||
/// Zuerst hatte ich dafür den Sprung auf das Keyframe gerundet. Das
|
||||
/// war zu scharf geschliffen: eine Millisekunde zu klein, und ffmpeg nimmt
|
||||
/// das Schlüsselbild davor — gemessen wurden aus 0,004 s Abstand dann
|
||||
/// das Keyframe davor — gemessen wurden aus 0,004 s Abstand dann
|
||||
/// 4,98. `-noaccurate_seek` braucht diese Genauigkeit nicht.
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
@@ -229,15 +229,15 @@ public class HlsLaufTests
|
||||
///
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// <b>Die Quelle hat genau ein Schlüsselbild, bei null.</b> Ein Sprung auf
|
||||
/// <b>Die Quelle hat genau ein Keyframe, bei null.</b> Ein Sprung auf
|
||||
/// Sekunde 4 ist damit der schlimmste Fall: das kopierte Bild muss ganz
|
||||
/// vorn anfangen, der neu gerechnete Ton könnte bei 4 anfangen — vier
|
||||
/// Sekunden stummes Bild, und eine Uhr, die um vier Sekunden danebenliegt.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// Gemessen an einer Quelle mit Schlüsselbildern alle fünf Sekunden und
|
||||
/// Gemessen an einer Quelle mit Keyframesn alle fünf Sekunden und
|
||||
/// einem Sprung auf Sekunde 12 war es genau so: Bild ab 0, Ton ab 1,98.
|
||||
/// Deshalb rundet der Koordinator den Sprung auf das Schlüsselbild —
|
||||
/// Deshalb rundet der Koordinator den Sprung auf das Keyframe —
|
||||
/// hier wird geprüft, dass die Zeile das auch verträgt.
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
@@ -247,7 +247,7 @@ public class HlsLaufTests
|
||||
var quelle = Path.Combine(_ordner, "lang.mkv");
|
||||
Lang(quelle);
|
||||
|
||||
// Auf dem Schlüsselbild, so wie der Koordinator es rundet.
|
||||
// Auf dem Keyframe, so wie der Koordinator es rundet.
|
||||
var (bild, ton) = Anfang(Laufen(quelle, ab: 0));
|
||||
|
||||
Assert.That(Math.Abs(bild - ton), Is.LessThan(0.2),
|
||||
|
||||
Reference in New Issue
Block a user