Eszközprofilok – alkalmazkodás az egyes eszközökhöz
A valódi UPnP hardverek inkonzisztensek abban, hogy mit fogadnak el: az egyik streamer 24 bites FLAC-ot akar, a másik csak 16 bites PCM-et játszik le, egy harmadik pedig hazudik arról, hogy mely kodekeket támogatja. Az eszközprofil az, ahogyan megtanítja a beépülő modulnak egy eszköz korlátait és furcsaságait.
Hogyan választunk profilt. Minden eszköz egy User-Agent sztringgel azonosítja magát, amikor csatlakozik. Egy profil azt mondja: „alkalmazz engem, ha a user-agent ezt a töredéket tartalmazza.” Amikor egy eszköz csatlakozik, a beépülő modul megtalálja a megfelelő profilt; ha egyik sem egyezik, egy beépített Általános eszköz profil a tartalék. Több töredéket is felsorolhat | jellel elválasztva (például Linn|ChorusDS|BubbleDS), így egy profil egy kapcsolódó eszközcsaládot fed le.
Mit vezérel egy profil. Azok a korlátok, amelyeket egy eszköz nem léphet túl – maximális képméret az albumborítóhoz, engedélyezett mintavételi frekvencia tartomány, maximális bitmélység, csak sztereó lekeverés – plusz, ha egy számot át kell alakítani, akkor melyik kimeneti formátumra és mintavételi frekvenciára kell átalakítani. Egy külön „problémás eszköz” kapcsolócsoport oldja meg a specifikus hardverhibákat (nyers-PCM kezelés, bájt sorrend, HTTP content-length fejléc). Ezek azért léteznek, mert az UPnP megfelelőség a valóságban foltos; a legtöbb ember soha nem nyúl hozzájuk.
Mikor kell hozzányúlni egy profilhoz. Csak akkor, ha egy adott eszköz hibásan működik. Alapértelmezésben az Általános profil, plusz a gyakori hardverekhez szállított eszközönkénti alapértelmezések fedik le az esetek többségét. Egy eszköz user-agentjének megtalálásához, hogy megcélozhassa, kapcsolja be a hibakeresési naplózást (lásd Diagnosztika), játsszon le valamit az eszközről, és olvassa el a useragent= sort a naplóban.
A profil legfontosabb kapcsolója – a natív stream kényszerítése – egyáltalán nem a korlátokról szól; az dönti el, hogy a fentiek közül bármelyik alkalmazandó-e. Ez a következő koncepció.


Beállítások
| Vezérlő | Mit csinál |
|---|---|
| Név | A profil megjelenítési neve. |
| Akkor érvényes, ha a user-agent tartalmazza | Azok a user-agent töredék(ek), amelyeket egy eszköznek tartalmaznia kell ahhoz, hogy megfeleljen ennek a profilnak; az alternatívákat | jellel válassza el. A nem egyező eszközök az Általános profilra esnek vissza. |
| Maximális kép méret | Az eszközre küldött albumborító maximális képpontmérete (160 px a DLNA szabvány; a nagyobb méret nem univerzálisan támogatott). |
| Kimeneti mintavételi frekvencia / -ig | Az eszköz által elfogadott mintavételi frekvencia tartomány; az ezen kívüli források konvertálásra kerülnek (átkódolást kényszerít). |
| Csatornák / csak sztereó | Lekeveri a többcsatornás hangot sztereóra azoknál az eszközöknél, amelyek csak két csatornát kezelnek. |
| Maximális bitmélység | Az eszköz által elfogadott legmagasabb bitmélység; a mélyebb források konvertálásra kerülnek. |
| Kimeneti formátum | Ha átkódolásra van szükség, a konvertálandó formátum (PCM, FLAC, MP3, AAC, Ogg). |
| Kimeneti mintavételi frekvencia | Az átkódoláskor használandó mintavételi frekvencia; a „forrással azonos” megőrzi az eredetit. |
| Ne használjon RAW PCM-et | A PCM-et WAV konténerbe csomagolja a nyers L16/L24 küldése helyett. Azoknak az eszközöknek, amelyek elrontják a nyers PCM-et (néhány Marantz). |
| Little endian kényszerítése PCM streamekhez | A PCM-et little-endian formában küldi a specifikáció big-endian formája helyett. Megszünteti a fehérzaj lejátszást azokon az eszközökön, amelyek little-endian formátumot várnak. |
| Tartalom hossza | Hogyan töltse ki a HTTP Content-Length fejlécet: Alapértelmezett (helyes érték), Nincs (kihagyja), Csak PCM, vagy Rögzített (egy őrszem „hatalmas” érték). Azoknak az eszközöknek, amelyek hibásan kezelik a fejlécet. |