Profile urządzeń — dostosowanie do każdego urządzenia
Prawdziwy sprzęt UPnP jest niekonsekwentny w kwestii tego, co akceptuje: jeden streamer chce 24-bitowego FLAC, inny odtwarza tylko 16-bitowy PCM, a trzeci kłamie na temat obsługiwanych kodeków. Profil urządzenia to sposób, w jaki uczysz wtyczkę o ograniczeniach i dziwactwach danego urządzenia.
Jak wybierany jest profil. Każde urządzenie identyfikuje się ciągiem User-Agent podczas łączenia. Profil mówi „zastosuj mnie, gdy user-agent zawiera ten fragment”. Kiedy urządzenie się łączy, wtyczka znajduje pasujący profil; jeśli żaden nie pasuje, wbudowany profil Urządzenie ogólne jest używany jako rezerwowy. Możesz wymienić kilka fragmentów oddzielonych | (na przykład Linn|ChorusDS|BubbleDS), aby jeden profil obejmował rodzinę powiązanych urządzeń.
Co kontroluje profil. Ograniczenia, których urządzenie nie może przekroczyć — maksymalny rozmiar obrazu dla okładki albumu, dozwolony zakres częstotliwości próbkowania, maksymalna głębia bitowa, downmixing tylko do stereo — plus, gdy utwór wymaga konwersji, do jakiego formatu wyjściowego i częstotliwości próbkowania ma zostać przekonwertowany. Oddzielna grupa przełączników „problematycznego urządzenia” omija specyficzne błędy sprzętowe (obsługa surowego PCM, kolejność bajtów, nagłówek HTTP content-length). Istnieją one, ponieważ zgodność z UPnP w praktyce jest niejednolita; większość ludzi nigdy ich nie dotyka.
Kiedy dotykać profilu. Tylko wtedy, gdy konkretne urządzenie działa nieprawidłowo. Po wyjęciu z pudełka profil ogólny, plus domyślne ustawienia dla poszczególnych urządzeń dostarczane dla popularnego sprzętu, obejmują większość przypadków. Aby znaleźć user-agent urządzenia, aby móc je namierzyć, włącz logowanie debugowania (patrz Diagnostyka), odtwórz coś z urządzenia i przeczytaj linię useragent= w logu.
Najważniejszy przełącznik profilu — wymuś natywny strumień — wcale nie dotyczy ograniczeń; decyduje on, czy cokolwiek z powyższego ma zastosowanie. To jest następna koncepcja.


Ustawienia
| Kontrola | Co robi |
|---|---|
| Nazwa | Nazwa wyświetlana profilu. |
| Stosuje się, gdy user-agent zawiera | Fragment(y) user-agent, które urządzenie musi zawierać, aby pasować do tego profilu; alternatywy oddzielaj |. Urządzenia, które nie pasują, wracają do profilu ogólnego. |
| Maksymalny rozmiar obrazu | Maksymalny rozmiar pikseli okładki albumu wysyłany do tego urządzenia (160 px to standard DLNA; większe nie są powszechnie obsługiwane). |
| Częstotliwość próbkowania wyjściowego / do | Zakres częstotliwości próbkowania akceptowany przez urządzenie; źródła spoza tego zakresu są konwertowane (wymusza transkodowanie). |
| Kanały / tylko stereo | Downmix wielokanałowy do stereo dla urządzeń obsługujących tylko dwa kanały. |
| Maksymalna głębia bitowa | Najwyższa głębia bitowa akceptowana przez urządzenie; głębsze źródła są konwertowane. |
| Format wyjściowy | Gdy potrzebne jest transkodowanie, format do konwersji (PCM, FLAC, MP3, AAC, Ogg). |
| Częstotliwość próbkowania wyjściowego | Częstotliwość próbkowania do użycia podczas transkodowania; „taka sama jak źródło” zachowuje oryginał. |
| Nie używaj RAW PCM | Zawija PCM w kontener WAV zamiast wysyłać surowe L16/L24. Dla urządzeń, które zniekształcają surowe PCM (niektóre Marantz). |
| Wymuś little endian dla strumieni PCM | Wysyła PCM w formacie little-endian zamiast big-endian zgodnie ze specyfikacją. Leczy odtwarzanie białego szumu na urządzeniach, które oczekują little-endian. |
| Długość zawartości | Jak wypełnić nagłówek HTTP Content-Length: Domyślne (poprawna wartość), Brak (pomija), Tylko PCM lub Stałe (wartość „ogromna”). Dla urządzeń, które nieprawidłowo obsługują nagłówek. |