Geräteprofile – Anpassung an jedes Gerät
Echte UPnP-Hardware ist in Bezug auf das, was sie akzeptiert, inkonsistent: Ein Streamer möchte 24-Bit FLAC, ein anderer spielt nur 16-Bit PCM, ein dritter lügt über die unterstützten Codecs. Ein Geräteprofil ist die Art und Weise, wie Sie dem Plugin die Grenzen und Eigenheiten eines Geräts beibringen.
Wie ein Profil ausgewählt wird. Jedes Gerät identifiziert sich beim Verbinden mit einem User-Agent-String. Ein Profil besagt: „Wende mich an, wenn der User-Agent dieses Fragment enthält.“ Wenn ein Gerät eine Verbindung herstellt, findet das Plugin das passende Profil; wenn keines passt, ist ein integriertes Generisches Gerät-Profil der Fallback. Sie können mehrere Fragmente, getrennt durch | (zum Beispiel Linn|ChorusDS|BubbleDS), auflisten, sodass ein Profil eine Familie verwandter Geräte abdeckt.
Was ein Profil steuert. Die Grenzen, die ein Gerät nicht überschreiten darf – maximale Bildgröße für Album-Cover, zulässiger Abtastratenbereich, maximale Bittiefe, Stereo-Downmixing – plus, wenn ein Titel konvertiert werden muss, welches Ausgabeformat und welche Abtastrate verwendet werden sollen. Eine separate Gruppe von Schaltern für „Problemgeräte“ umgeht spezifische Hardwarefehler (Roh-PCM-Verarbeitung, Byte-Reihenfolge, der HTTP-Content-Length-Header). Diese existieren, weil die UPnP-Konformität in der Praxis lückenhaft ist; die meisten Leute berühren sie nie.
Wann ein Profil zu ändern ist. Nur wenn ein bestimmtes Gerät Fehlfunktionen aufweist. Standardmäßig deckt das generische Profil, plus die pro-Gerät-Standardeinstellungen für gängige Hardware, die meisten Fälle ab. Um den User-Agent eines Geräts zu finden, damit Sie es ansprechen können, aktivieren Sie die Debug-Protokollierung (siehe Diagnose), spielen Sie etwas vom Gerät ab und lesen Sie die Zeile useragent= im Protokoll.
Der wichtigste Schalter des Profils – nativen Stream erzwingen – hat überhaupt nichts mit Grenzen zu tun; er entscheidet, ob irgendetwas davon zutrifft. Das ist das nächste Konzept.


Einstellungen
| Steuerung | Funktion |
|---|---|
| Name | Der Anzeigename des Profils. |
| Gilt, wenn der User-Agent enthält | Die User-Agent-Fragmente, die ein Gerät enthalten muss, um diesem Profil zu entsprechen; trennen Sie Alternativen mit |. Nicht übereinstimmende Geräte greifen auf das generische Profil zurück. |
| Maximale Bildgröße | Maximale Pixelgröße des Album-Covers, das an dieses Gerät gesendet wird (160 px ist der DLNA-Standard; größere Größen werden nicht universell unterstützt). |
| Ausgabe-Samplerate / bis | Der Abtastratenbereich, den das Gerät akzeptiert; Quellen außerhalb dieses Bereichs werden konvertiert (erzwingt Transkodierung). |
| Kanäle / nur Stereo | Downmix von Mehrkanal auf Stereo für Geräte, die nur zwei Kanäle unterstützen. |
| Maximale Bittiefe | Höchste Bittiefe, die das Gerät akzeptiert; tiefere Quellen werden konvertiert. |
| Ausgabeformat | Wenn eine Transkodierung erforderlich ist, das Format, in das konvertiert werden soll (PCM, FLAC, MP3, AAC, Ogg). |
| Ausgabe-Samplerate | Die Abtastrate, die bei der Transkodierung verwendet werden soll; „wie Quelle“ behält das Original bei. |
| RAW PCM nicht verwenden | Verpackt PCM in einen WAV-Container, anstatt rohes L16/L24 zu senden. Für Geräte, die rohes PCM verfälschen (einige Marantz). |
| Little Endian für PCM-Streams erzwingen | Sendet PCM im Little-Endian-Format anstelle des Big-Endian-Formats der Spezifikation. Behebt die Wiedergabe von weißem Rauschen auf Geräten, die Little-Endian erwarten. |
| Inhaltslänge | Wie der HTTP Content-Length-Header gefüllt werden soll: Standard (korrekter Wert), Keine (weglassen), Nur PCM oder Fest (ein „riesiger“ Sentinel-Wert). Für Geräte, die den Header falsch handhaben. |