デバイスプロファイル — 各デバイスへの適応
実際のUPnPハードウェアは、受け入れるものについて一貫性がありません。あるストリーマーは24ビットFLACを要求し、別のストリーマーは16ビットPCMしか再生せず、3番目のストリーマーはサポートするコーデックについて嘘をつきます。デバイスプロファイルは、1つのデバイスの制限と癖をプラグインに教える方法です。
プロファイルの選択方法。 すべてのデバイスは、接続時にUser-Agent文字列で自身を識別します。プロファイルは「ユーザーエージェントにこのフラグメントが含まれている場合に適用する」と指定します。デバイスが接続すると、プラグインは一致するプロファイルを見つけます。一致するものがない場合、組み込みの汎用デバイスプロファイルがフォールバックとして使用されます。|で区切られた複数のフラグメント(例:Linn|ChorusDS|BubbleDS)をリストできるため、1つのプロファイルで関連するデバイスのファミリーをカバーできます。
プロファイルが制御するもの。 デバイスが超えることのできない制限(アルバムアートの最大画像サイズ、許可されるサンプルレート範囲、最大ビット深度、ステレオのみのダウンミキシング)に加えて、トラックの変換が必要な場合に、どの出力形式とサンプルレートに変換するかを制御します。「問題のあるデバイス」スイッチの別のグループは、特定のハードウェアバグ(生PCM処理、バイト順、HTTPコンテンツ長ヘッダー)を回避します。これらは、実際のUPnP準拠が不完全であるために存在します。ほとんどの人はこれらを触ることはありません。
プロファイルを触るべきとき。 特定のデバイスが誤動作する場合のみです。既製の汎用プロファイルと、一般的なハードウェア用に提供されるデバイスごとのデフォルトで、ほとんどのケースをカバーします。デバイスのユーザーエージェントを見つけてターゲットにするには、デバッグログをオンにし(「診断」を参照)、デバイスから何かを再生し、ログのuseragent=行を読み取ります。
プロファイルの最も重要なスイッチであるネイティブストリームを強制するは、実際には制限とはまったく関係ありません。上記のいずれかが適用されるかどうかを決定します。それが次の概念です。


設定
| コントロール | 機能 |
|---|---|
| 名前 | プロファイルの表示名。 |
| ユーザーエージェントに以下が含まれる場合に適用 | このプロファイルに一致するためにデバイスが含む必要があるユーザーエージェントフラグメント。複数の選択肢は|で区切ります。一致しないデバイスは汎用プロファイルにフォールバックします。 |
| 最大画像サイズ | このデバイスに送信されるアルバムアートの最大ピクセルサイズ(160 pxはDLNA標準です。それより大きいサイズは普遍的にサポートされていません)。 |
| 出力サンプルレート / ~ | デバイスが受け入れるサンプルレート範囲。範囲外のソースは変換されます(トランスコーディングを強制します)。 |
| チャンネル / ステレオのみ | 2チャンネルのみのデバイスの場合、マルチチャンネルをステレオにダウンミックスします。 |
| 最大ビット深度 | デバイスが受け入れる最高のビット深度。より深いソースは変換されます。 |
| 出力フォーマット | トランスコードが必要な場合、変換する形式(PCM、FLAC、MP3、AAC、Ogg)。 |
| 出力サンプルレート | トランスコーディング時に使用するサンプルレート。「ソースと同じ」はオリジナルを保持します。 |
| RAW PCMを使用しない | 生のL16/L24を送信する代わりに、PCMをWAVコンテナにラップします。生のPCMを破損するデバイス(一部のマランツ)用。 |
| PCMストリームにリトルエンディアンを強制 | 仕様のビッグエンディアンではなく、PCMをリトルエンディアンで送信します。リトルエンディアンを期待するデバイスでのホワイトノイズ再生を修正します。 |
| コンテンツ長 | HTTP Content-Lengthヘッダーの入力方法:Default(正しい値)、None(省略)、PCM Only、またはFixed(センチネル「巨大」値)。ヘッダーを誤って処理するデバイス用。 |