장치 프로필 — 각 장치에 맞게 조정
실제 UPnP 하드웨어는 허용하는 것에 일관성이 없습니다. 어떤 스트리머는 24비트 FLAC을 원하고, 다른 스트리머는 16비트 PCM만 재생하며, 세 번째 스트리머는 지원하는 코덱에 대해 거짓말을 합니다. 장치 프로필은 플러그인에 장치의 제한 사항과 특이 사항을 알려주는 방법입니다.
프로필이 선택되는 방법. 모든 장치는 연결할 때 User-Agent 문자열로 자신을 식별합니다. 프로필은 "사용자 에이전트에 이 조각이 포함될 때 나를 적용하라"고 말합니다. 장치가 연결되면 플러그인은 일치하는 프로필을 찾습니다. 일치하는 것이 없으면 내장된 일반 장치 프로필이 대체됩니다. 여러 조각을 |로 구분하여 나열할 수 있습니다(예: Linn|ChorusDS|BubbleDS). 이렇게 하면 하나의 프로필이 관련 장치 제품군을 포괄할 수 있습니다.
프로필이 제어하는 것. 장치가 초과할 수 없는 제한 사항(앨범 아트의 최대 사진 크기, 허용되는 샘플 속도 범위, 최대 비트 심도, 스테레오 전용 다운믹싱)과 트랙을 변환해야 할 때 변환할 출력 형식 및 샘플 속도. "문제 장치" 스위치의 별도 그룹은 특정 하드웨어 버그(원시 PCM 처리, 바이트 순서, HTTP 콘텐츠 길이 헤더)를 해결합니다. 이러한 스위치는 실제 UPnP 준수가 불완전하기 때문에 존재하며, 대부분의 사람들은 건드리지 않습니다.
프로필을 건드려야 할 때. 특정 장치가 오작동할 때만. 기본적으로 일반 프로필과 일반 하드웨어에 대해 제공되는 장치별 기본값은 대부분의 경우를 포괄합니다. 장치의 사용자 에이전트를 찾아 대상을 지정하려면 디버그 로깅을 켜고(진단 참조) 장치에서 무언가를 재생한 다음 로그에서 useragent= 줄을 읽으십시오.
프로필의 가장 중요한 스위치인 네이티브 스트림 강제는 제한 사항에 관한 것이 전혀 아닙니다. 위의 내용 중 어떤 것이 적용되는지 결정합니다. 이것이 다음 개념입니다.


설정
| 제어 | 기능 |
|---|---|
| 이름 | 프로필의 표시 이름입니다. |
| 사용자 에이전트에 다음이 포함될 때 적용 | 이 프로필과 일치하기 위해 장치가 포함해야 하는 사용자 에이전트 조각입니다. 대안은 |로 구분합니다. 일치하지 않는 장치는 일반 프로필로 대체됩니다. |
| 최대 사진 크기 | 이 장치로 전송되는 최대 앨범 아트 픽셀 크기(160px는 DLNA 표준이며, 더 큰 크기는 보편적으로 지원되지 않습니다). |
| 출력 샘플 속도 / ~ | 장치가 허용하는 샘플 속도 범위입니다. 이 범위를 벗어나는 소스는 변환됩니다(트랜스코딩 강제). |
| 채널 / 스테레오 전용 | 두 채널만 지원하는 장치의 경우 다중 채널을 스테레오로 다운믹싱합니다. |
| 최대 비트 심도 | 장치가 허용하는 가장 높은 비트 심도입니다. 더 깊은 소스는 변환됩니다. |
| 출력 형식 | 트랜스코딩이 필요할 때 변환할 형식(PCM, FLAC, MP3, AAC, Ogg)입니다. |
| 출력 샘플 속도 | 트랜스코딩 시 사용할 샘플 속도입니다. "소스와 동일"은 원본을 유지합니다. |
| RAW PCM 사용 안 함 | 원시 L16/L24를 보내는 대신 PCM을 WAV 컨테이너로 래핑합니다. 원시 PCM을 왜곡하는 장치(일부 Marantz)용입니다. |
| PCM 스트림에 리틀 엔디안 강제 적용 | 사양의 빅 엔디안 대신 PCM을 리틀 엔디안으로 보냅니다. 리틀 엔디안을 예상하는 장치에서 화이트 노이즈 재생을 치료합니다. |
| 콘텐츠 길이 | HTTP Content-Length 헤더를 채우는 방법: 기본값(올바른 값), 없음(생략), PCM만, 또는 고정(센티넬 "매우 큰" 값). 헤더를 잘못 처리하는 장치용입니다. |