Cihaz profilleri — her cihaza uyum sağlama
Gerçek UPnP donanımı, neyi kabul ettiği konusunda tutarsızdır: bir yayıncı 24 bit FLAC ister, diğeri yalnızca 16 bit PCM çalar, üçüncüsü hangi kodekleri desteklediği konusunda yalan söyler. Bir cihaz profili, eklentiye bir cihazın sınırlarını ve tuhaflıklarını nasıl öğrettiğinizdir.
Bir profilin nasıl seçildiği. Her cihaz, bağlandığında kendini bir User-Agent dizesiyle tanımlar. Bir profil "kullanıcı aracısı bu parçacığı içerdiğinde beni uygula" der. Bir cihaz bağlandığında, eklenti eşleşen profili bulur; hiçbiri eşleşmezse, yerleşik bir Genel Cihaz profili yedek olarak kullanılır. Bir profilin ilgili cihaz ailesini kapsayabilmesi için | ile ayrılmış birkaç parçacık (örneğin Linn|ChorusDS|BubbleDS) listeleyebilirsiniz.
Bir profilin neyi kontrol ettiği. Bir cihazın aşamayacağı sınırlar — albüm sanatı için maksimum resim boyutu, izin verilen örnekleme hızı aralığı, maksimum bit derinliği, yalnızca stereo downmix — ayrıca, bir parçanın dönüştürülmesi gerektiğinde, hangi çıkış formatına ve örnekleme hızına dönüştürüleceği. Ayrı bir "sorunlu cihaz" anahtarları grubu, belirli donanım hatalarını (ham-PCM işleme, bayt sırası, HTTP içerik uzunluğu başlığı) giderir. Bunlar, UPnP uyumluluğunun sahada düzensiz olmasından dolayı mevcuttur; çoğu insan bunlara asla dokunmaz.
Bir profile ne zaman dokunulmalı. Yalnızca belirli bir cihaz yanlış davrandığında. Kutudan çıktığı haliyle Genel profil, artı yaygın donanımlar için gönderilen cihaz başına varsayılanlar, çoğu durumu kapsar. Bir cihazın kullanıcı aracısını hedefleyebilmek için bulmak üzere, hata ayıklama günlüğünü açın (Tanılama bölümüne bakın), cihazdan bir şey çalın ve günlükteki useragent= satırını okuyun.
Profilin en önemli anahtarı — yerel akışı zorla — aslında sınırlar hakkında değildir; yukarıdakilerin herhangi birinin uygulanıp uygulanmayacağına karar verir. Bu bir sonraki kavramdır.


Ayarlar
| Kontrol | Ne işe yarar |
|---|---|
| Ad | Profilin görünen adı. |
| Kullanıcı aracısı şunları içerdiğinde uygulanır | Bu profille eşleşmesi için bir cihazın içermesi gereken kullanıcı aracısı parçacığı(ları); alternatifleri | ile ayırın. Eşleşmeyen cihazlar Genel profile geri döner. |
| Maksimum resim boyutu | Bu cihaza gönderilen maksimum albüm sanatı piksel boyutu (160 piksel DLNA standardıdır; daha büyük olanlar evrensel olarak desteklenmez). |
| Çıkış örnekleme hızı / ila | Cihazın kabul ettiği örnekleme hızı aralığı; dışındaki kaynaklar dönüştürülür (kod dönüştürmeyi zorlar). |
| Kanallar / yalnızca stereo | Yalnızca iki kanal kullanan cihazlar için çok kanallıyı stereoya downmix yapar. |
| Maksimum bit derinliği | Cihazın kabul ettiği en yüksek bit derinliği; daha derin kaynaklar dönüştürülür. |
| Çıkış biçimi | Kod dönüştürme gerektiğinde, dönüştürülecek format (PCM, FLAC, MP3, AAC, Ogg). |
| Çıkış örnekleme hızı | Kod dönüştürme sırasında kullanılacak örnekleme hızı; "kaynakla aynı" orijinali korur. |
| RAW PCM kullanma | Ham L16/L24 göndermek yerine PCM'yi bir WAV kapsayıcısına sarar. Ham PCM'yi bozan cihazlar için (bazı Marantz). |
| PCM akışları için little endian'ı zorla | PCM'yi spesifikasyonun büyük-endian'ı yerine küçük-endian olarak gönderir. Küçük-endian bekleyen cihazlarda beyaz gürültü çalmayı düzeltir. |
| İçerik uzunluğu | HTTP Content-Length başlığını nasıl doldurmalı: Varsayılan (doğru değer), Yok (atla), Yalnızca PCM veya Sabit (bir sentinel "büyük" değer). Başlığı yanlış işleyen cihazlar için. |