Ampel / ampel (push) Successful in 1m25s
FUND 1 — 'Key korrekt, aber als ungueltig angezeigt': Stimmt beides. Live gemessen: Der aktuelle Forum-Key ist in Ordnung, aber MakeMKV 1.18.4 ist ZU ALT fuer ihn — makemkvcon meldet 5020 UND 5021 zusammen, und die alte Pruefung brach beim ersten Code ab und beschuldigte den Schluessel. urteilAusAusgabe sammelt jetzt ALLE Codes (5021 schlaegt 5020, MakeMKV-Version aus MSG 1005 wird mitgelesen) und die Kachel sagt den wahren Satz: 'Der Key ist in Ordnung — MakeMKV 1.18.4 ist zu alt. Rippy hat ihn entfernt, damit der Beta-Modus weiterlaeuft (Rips klappen trotzdem). Abhilfe: MakeMKV aktualisieren.' Neues Feld weiterBetrieb: Beta-Modus ist GELB (Warnung), nicht rot. Test mit der echten Ausgabe als Fixture. FUND 2 — 'Komprimieren auf CPU statt GPU': Der Default 'H.265 MKV 1080p30' ist ein CPU-Preset. Neue GEMESSENE Empfehlung (gemeinsam/preset-empfehlung.ts): aus den echten Backends und der echten Preset-Liste des eigenen HandBrake — VCN vor NVENC vor QSV vor CPU, nur Namen die WIRKLICH in der Liste stehen, HandBrake-Presets deckeln die Aufloesung nur (DVD bleibt SD). Kette: eigene Wahl > allgemeines Preset > Empfehlung > CPU-Default. Auf dem Commander-PC: bluray/dvd -> 'H.265 VCN 1080p', uhd -> 'H.265 VCN 2160p 4K'. Die Preset-Auswahl zeigt 'automatisch: <Empfehlung>' als Leer-Option. FUND 3 — 'keine Alternative waehlbar': 'Aendern …'-Dialog an der Laufwerks-Kachel (§ 5 Schritt 4): TMDb-Suche (Film + Serie, mit Postern), Klick uebernimmt — Nutzer-Wahl gilt als 100 % und steuert Ablage-Ordner, NFO und Poster. Neue Nachrichten metadaten-suchen / zuordnung-setzen / metadaten-vorschlaege. Dazu: Poster in der Laufwerks-Kachel (CSP um image.tmdb.org erweitert), Restzeit-Schaetzung am Fortschritt. 192 Tests gruen, Smoke gruen. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
81 lines
3.7 KiB
TypeScript
81 lines
3.7 KiB
TypeScript
// Die drei Funde aus dem ersten Commander-Test (30.08.2026, abends) —
|
|
// jeder als Test festgehalten, mit den LIVE gemessenen Fixtures.
|
|
import { describe, expect, it } from 'vitest'
|
|
import { urteilAusAusgabe } from '../src/kern/werkzeuge/schluessel'
|
|
import { presetEmpfehlung, DEFAULT_HB_PRESET } from '../src/gemeinsam/preset-empfehlung'
|
|
import { presetFuer } from '../src/kern/komprimieren/presets'
|
|
|
|
describe('Fund 1 — „Key korrekt, aber als ungültig angezeigt"', () => {
|
|
// Die ECHTE makemkvcon-Ausgabe vom Commander-PC (30.08.2026): Der
|
|
// aktuelle Forum-Key ist in Ordnung, MakeMKV 1.18.4 ist ZU ALT für ihn
|
|
// — es meldet 5020 UND 5021 zusammen.
|
|
const ECHTE_AUSGABE = [
|
|
'MSG:1005,0,1,"MakeMKV v1.18.4 win(x64-release) gestartet","%1 gestartet","MakeMKV v1.18.4 win(x64-release)"',
|
|
'MSG:5020,516,0,"Der hinterlegte Aktivierungsschlüssel ist ungültig. …","…"',
|
|
'MSG:5021,131332,1,"Diese Programmversion ist zu alt. Bitte laden Sie die aktuelle Version von http://www.makemkv.com/ herunter.","…","http://www.makemkv.com/"',
|
|
].join('\n')
|
|
|
|
it('5021 schlägt 5020: Die Ursache ist die Version, nicht der Schlüssel', () => {
|
|
const urteil = urteilAusAusgabe(ECHTE_AUSGABE)
|
|
expect(urteil.ok).toBe(false)
|
|
expect(urteil.code).toBe(5021)
|
|
expect(urteil.grund).toContain('zu alt')
|
|
expect(urteil.version).toBe('1.18.4')
|
|
})
|
|
|
|
it('ohne Key-Meldungen ist alles gut — und die Version kommt trotzdem mit', () => {
|
|
const urteil = urteilAusAusgabe(
|
|
'MSG:1005,0,1,"MakeMKV v1.18.4 win(x64-release) gestartet","x"\nMSG:5010,0,0,"Das Öffnen der Disk schlug fehl","x"',
|
|
)
|
|
expect(urteil.ok).toBe(true)
|
|
expect(urteil.version).toBe('1.18.4')
|
|
})
|
|
|
|
it('5020 allein bleibt „Schlüssel wird nicht angenommen"', () => {
|
|
const urteil = urteilAusAusgabe('MSG:5020,516,0,"…","…"')
|
|
expect(urteil.code).toBe(5020)
|
|
})
|
|
})
|
|
|
|
describe('Fund 2 — „Komprimieren auf der CPU statt der GPU"', () => {
|
|
// Die ECHTE Hardware-Preset-Liste des Commander-HandBrake (30.08.2026)
|
|
// plus die gemessenen Backends der RX 9070 XT.
|
|
const PRESETS = [
|
|
'Very Fast 1080p30',
|
|
'H.265 MKV 1080p30',
|
|
'AV1 QSV 2160p 4K',
|
|
'AV1 VCN 2160p 4K',
|
|
'H.265 NVENC 2160p 4K',
|
|
'H.265 NVENC 1080p',
|
|
'H.265 QSV 2160p 4K',
|
|
'H.265 QSV 1080p',
|
|
'H.265 VCN 2160p 4K',
|
|
'H.265 VCN 1080p',
|
|
]
|
|
const BACKENDS = ['cpu-x264', 'cpu-x265', 'cpu-av1', 'vce', 'vce-av1']
|
|
|
|
it('empfiehlt auf dem Commander-PC VCN, nicht CPU', () => {
|
|
expect(presetEmpfehlung('bluray', BACKENDS, PRESETS)).toBe('H.265 VCN 1080p')
|
|
expect(presetEmpfehlung('dvd', BACKENDS, PRESETS)).toBe('H.265 VCN 1080p')
|
|
expect(presetEmpfehlung('uhd', BACKENDS, PRESETS)).toBe('H.265 VCN 2160p 4K')
|
|
})
|
|
|
|
it('NVIDIA-Maschine bekäme NVENC, Intel QSV, reine CPU den Default', () => {
|
|
expect(presetEmpfehlung('bluray', ['cpu-x265', 'nvenc'], PRESETS)).toBe('H.265 NVENC 1080p')
|
|
expect(presetEmpfehlung('bluray', ['cpu-x265', 'qsv'], PRESETS)).toBe('H.265 QSV 1080p')
|
|
expect(presetEmpfehlung('bluray', ['cpu-x264', 'cpu-x265'], PRESETS)).toBe(DEFAULT_HB_PRESET)
|
|
})
|
|
|
|
it('empfohlen wird NUR, was die gemessene Liste hergibt', () => {
|
|
// vce da, aber keine VCN-Presets in der Liste → CPU-Default statt
|
|
// eines geratenen Namens (die „Invalid preset"-Falle).
|
|
expect(presetEmpfehlung('bluray', ['vce'], ['Very Fast 1080p30'])).toBe(DEFAULT_HB_PRESET)
|
|
})
|
|
|
|
it('die Kette bleibt: eigene Wahl schlägt die Empfehlung', () => {
|
|
expect(presetFuer('bluray', { transcodePresetBluray: 'Fast 480p30' }, 'H.265 VCN 1080p')).toBe('Fast 480p30')
|
|
expect(presetFuer('bluray', {}, 'H.265 VCN 1080p')).toBe('H.265 VCN 1080p')
|
|
expect(presetFuer('bluray', {}, '')).toBe(DEFAULT_HB_PRESET)
|
|
})
|
|
})
|