Ein doppelter Platzhalter riss jede Serie mit

`log.LogInformation("… {Folgen} … {Folgen}.", a, b, c, d, e)` — sechs
Platzhalter, fünf Argumente. Vorlagen sind positionsbezogen: auch ein
wiederholter Name verbraucht ein weiteres Argument. Der Logger warf eine
Ausnahme, die riss `StaffelMeldenAsync` mit, und die wiederum den ganzen
Serienlauf. Gefunden war dann alles umsonst — „A Knight of the Seven
Kingdoms" und „Alice in Borderland" haben ihre Marken deshalb verloren,
nachdem sie längst berechnet waren.

**CA2017 hatte das gemeldet.** Als Warnung, unter hundert anderen Zeilen,
und ich habe beim Bauen nach „warning CS" gegriffen. Eine neue
`Directory.Build.props` macht genau diese eine Regel zum Fehler — nicht
alle Warnungen, das wäre eine andere Entscheidung. Gegengeprüft: mit der
kaputten Zeile bricht der Bau jetzt ab.

**Und der zweite Fund, aus „Alice im Wunderland".** Die Zeile meldete
„Schwelle 247,6", und das kann bei 0–255 nicht entstehen: die Schwelle
ist Grundton mal 0,55, das wären 450 gewesen. `signalstats` rechnet in
der Skala des Bildformats — bei acht Bit 0–255, bei zehn Bit 0–1023.
Gemessen am selben erzeugten Bild: YAVG 127 gegen YAVG 500. Alle
Schwellen hier sind an acht Bit gemessen; bei einer 10-Bit-Datei bedeutete
dieselbe Zahl ein Viertel.

`format=gray` vor `signalstats` bringt jede Datei auf dieselbe Skala. Es
rechnet dabei auch den Fernsehbereich 16–235 auf 0–255 um — linear, und
die dunklen Werte trifft das am stärksten: der gemessene Abspann liegt
jetzt bei 28 statt bei 40. Der Boden wandert entsprechend von 35 auf 22.

Dazu: die Schlusszeile je Serie trennt Vorspann und Abspann, statt eine
Zahl aus beidem zu machen — „14 Marken" beantwortet nicht, ob die Serie
ihre Vorspänne bekommen hat.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-10-15 14:06:16 +02:00
co-authored by Claude Opus 5
parent 259996c5ad
commit f2752e6c05
5 changed files with 147 additions and 12 deletions
+23
View File
@@ -0,0 +1,23 @@
<Project>
<!--
Eine kaputte Protokollvorlage ist kein Schönheitsfehler.
`log.LogInformation("… {Folgen} … {Folgen}.", a, b, c, d, e)` wirft zur
Laufzeit — jeder Platzhalter verbraucht ein Argument, auch ein
wiederholter. Geschieht das in einem Hintergrundlauf, reisst die
Ausnahme den ganzen Lauf mit, und alles, was er bis dahin gefunden
hatte, ist verloren. Genau so ist es der Markenerkennung ergangen.
CA2017 hatte das längst gemeldet — als Warnung unter hundert anderen
Zeilen, und damit übersehen. Als Fehler ist es nicht zu übersehen.
Nur diese eine Regel, nicht alle Warnungen: ein pauschales
`TreatWarningsAsErrors` wäre eine andere Entscheidung und gehört nicht
nebenbei getroffen.
-->
<PropertyGroup>
<WarningsAsErrors>$(WarningsAsErrors);CA2017</WarningsAsErrors>
</PropertyGroup>
</Project>