Eine Staffel mit einer Folge fiel ganz durch
Nein, die Erkennung sieht sich nicht die ganze Serie an — sie gruppiert nach Staffel, vermerkt je Staffel, und der eindeutige Schlüssel führt die Staffel mit. Andere Besetzung, anderer Abspann, andere Musik in Staffel 2 stören den Abgleich also nicht. Der Verdacht war berechtigt, die Stelle eine andere. Gefunden hat ihn die Frage trotzdem. Ganz oben in der Staffelschleife stand `if (geordnet.Count < 2) continue;` — richtig für den Tonabgleich, der zwei Folgen zum Vergleichen braucht. Seit es den Bildweg gibt, ist es zu früh: der braucht keine zweite Folge, nur eine Datei. Eine laufende Serie, von der erst die Premiere der neuen Staffel da ist, bekam deshalb gar nichts — weder über den Ton, was stimmt, noch über das Bild, was hätte gehen müssen. Jetzt läuft der Tonabgleich nur, wenn es etwas zu vergleichen gibt, und der Bildweg in jedem Fall. Mit Vermerk, sonst liefe er bei jedem Scan von Neuem. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
ef667a9f39
commit
7e5b3fb0ee
@@ -343,7 +343,6 @@ public sealed class Markenerkennung(
|
|||||||
foreach (var staffel in folgen.GroupBy(f => f.SeasonNumber).OrderBy(g => g.Key))
|
foreach (var staffel in folgen.GroupBy(f => f.SeasonNumber).OrderBy(g => g.Key))
|
||||||
{
|
{
|
||||||
var geordnet = staffel.OrderBy(f => f.EpisodeNumber).ToList();
|
var geordnet = staffel.OrderBy(f => f.EpisodeNumber).ToList();
|
||||||
if (geordnet.Count < 2) continue;
|
|
||||||
|
|
||||||
// **Einmal lesen, zweimal schneiden.** fpcalc kann nicht
|
// **Einmal lesen, zweimal schneiden.** fpcalc kann nicht
|
||||||
// springen — es liest immer von vorn. Also die ganze Spur je
|
// springen — es liest immer von vorn. Also die ganze Spur je
|
||||||
@@ -357,15 +356,26 @@ public sealed class Markenerkennung(
|
|||||||
.ToList();
|
.ToList();
|
||||||
if (fehlt.Count == 0) continue;
|
if (fehlt.Count == 0) continue;
|
||||||
|
|
||||||
|
// **Der Tonabgleich braucht etwas zum Vergleichen.** Eine
|
||||||
|
// Staffel mit einer einzigen Folge — eine laufende Serie, von
|
||||||
|
// der erst die Premiere da ist — hat das nicht. Früher wurde
|
||||||
|
// sie hier übersprungen, und zwar ganz; seit es den Bildweg
|
||||||
|
// gibt, ist das zu früh: der braucht keine zweite Folge.
|
||||||
var ganze = new Dictionary<Guid, IReadOnlyList<uint>>();
|
var ganze = new Dictionary<Guid, IReadOnlyList<uint>>();
|
||||||
foreach (var folge in geordnet)
|
if (geordnet.Count >= 2)
|
||||||
{
|
{
|
||||||
var abdruck = await leser.LesenAsync(folge.Path, ct);
|
foreach (var folge in geordnet)
|
||||||
if (abdruck.Count > 0) ganze[folge.Id] = abdruck;
|
{
|
||||||
|
var abdruck = await leser.LesenAsync(folge.Path, ct);
|
||||||
|
if (abdruck.Count > 0) ganze[folge.Id] = abdruck;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (ganze.Count < 2) continue;
|
|
||||||
|
|
||||||
foreach (var art in fehlt)
|
// Ohne zwei Abdrücke gibt es nichts abzugleichen; der Bildweg
|
||||||
|
// unten läuft trotzdem.
|
||||||
|
var tonarten = ganze.Count >= 2 ? fehlt : [];
|
||||||
|
|
||||||
|
foreach (var art in tonarten)
|
||||||
{
|
{
|
||||||
var abdruecke = new List<(Guid Schlüssel, IReadOnlyList<uint> Abdruck)>();
|
var abdruecke = new List<(Guid Schlüssel, IReadOnlyList<uint> Abdruck)>();
|
||||||
var fensteranfang = new Dictionary<Guid, double>();
|
var fensteranfang = new Dictionary<Guid, double>();
|
||||||
@@ -410,6 +420,11 @@ public sealed class Markenerkennung(
|
|||||||
|
|
||||||
if (!fehlt.Contains(Markenart.Abspann)) continue;
|
if (!fehlt.Contains(Markenart.Abspann)) continue;
|
||||||
|
|
||||||
|
// Auch wenn der Tonabgleich gar nicht erst lief: gesucht wurde,
|
||||||
|
// und ohne Vermerk liefe der Bildweg bei jedem Scan von Neuem.
|
||||||
|
await VermerkenAsync(db, serieId, staffel.Key, Markenart.Abspann,
|
||||||
|
geordnet.Count, ct);
|
||||||
|
|
||||||
// **Was der Ton nicht fand, sucht das Bild.**
|
// **Was der Ton nicht fand, sucht das Bild.**
|
||||||
//
|
//
|
||||||
// Der Abgleich lebt davon, dass der Abspann in jeder Folge
|
// Der Abgleich lebt davon, dass der Abspann in jeder Folge
|
||||||
|
|||||||
Reference in New Issue
Block a user