Skip to main content

XApuDecodeConvertCommand

デコードまたはデコード変換の処理パラメーターを定義します。

構文

メンバー

id
型: XApuCommandId
処理のためにハードウェアに送信される基本コマンド パラメーターを指定します。同じ XApuCommandId が XApuResult::id に設定されます。 pitchRampRate
型: float
出力ごとに現在のピッチに加算または減算される値です。 この値は符号なしであり、サンプル レート コンバーター エンジンは、ターゲット ピッチの値に応じて、現在のピッチから加算するか減算するかを自動的に判断します。 既定では、この値は XAPU_DEFAULT_PITCH_RAMP_RATE に設定する必要があります。 targetPitch
型: float
現在の変換操作のターゲット ピッチ。XApuProcessType::DecodeOpus の場合は、この値は無視されます。 firstFrameIndex
型: uint32_t
出力バッファーにコピーされる最初のフレームのインデックスを指定します。firstFrameIndex と frameCount の組み合わせによって出力バッファーにコピーされる内容が決まります。この実装では、firstFrameIndex を使用するときに残余データは含めません。100 フレームの残余があり、firstFrameIndex が 50 に設定され、frameCount が 200 に設定されている場合、200 フレームがデコードされたデータの 50 番目のフレームから始まる残余全体に追加されます。つまり、HSRC に送られるバッファーには、残余からの元の 100 フレームに続いて、現在のデコード済みパケットの 50 番目のフレームから始まる 200 フレームが含まれます。 PCM ストリームのオーディオ フレームは、同じタイミング (クロック ティック) で再生またはキャプチャされるサンプルのセット (ストリームの各チャネルにつき 1 つのサンプルを含む) です。したがって、オーディオ フレームのサイズは、サンプル サイズにストリーム内のチャネル数を乗じた値になります。 たとえば、32 ビット float サンプルのステレオ (2 チャネル) ストリームのフレーム サイズは 8 バイトです。この値は、20 ミリ秒パケット持続時間の Opus ストリームでは 0 から 960 の間である必要があります。10 ミリ秒パケット持続時間の Opus ストリームでは 0 から 480 の間である必要があります。既定では、この値は 0 に設定されます。プリロール入力の場合、この値は 0 より大きくする必要があります。プリロール入力は処理されますが、出力データは生成されません。 frameCount
型: uint32_t
このパラメーターは、入力データが XApuProcessType::ConvertPCM 処理で非圧縮の場合に必要で、次の制約があります。
  • モノラルおよびステレオのデインターリーブ PCM 入力データの場合、最小値は 4、最大値は 960 で、値は 4 の倍数である必要があります。
  • ステレオのインターリーブ PCM 入力データの場合、最小値は 8、最大値は 960 で、値は 8 の倍数である必要があります。
  • XApuProcessType::DecodeOpus の場合、この値は出力フレーム数を切り詰めるために使用できます。
  • XApuProcessType::DecodeConvertOpus の場合、この値はコンバーターに渡されるデコード済みフレーム数を切り詰めるために使用できます。
このパラメーターがストリームの最後のパケットまたはループ ポイントを切り詰めるために使用される場合、20 ミリ秒パケット持続時間の Opus ストリームでは 0 から 960 の任意の値、10 ミリ秒パケット持続時間の Opus ストリームでは 0 から 480 の任意の値を使用できます。 このパラメーターがストリームの途中のパケットの出力を切り詰めるために使用される場合、値は上記の XApuProcessType::ConvertPCM の制約に従って設定する必要があります。 切り詰めが必要ない場合、このパラメーターは 0xFFFFFFFF に設定する必要があります。 XApuProcessType::DecodeOpus および XApuProcessType::DecodeConvertOpus の場合、XApuDecodeConvertCommand::frameCountXApuDecodeConvertCommand::firstFrameIndex パラメーターは、フレーム単位で正確なシークに使用する必要があります。 PCM ストリームのオーディオ フレームは、同じタイミング (クロック ティック) で再生またはキャプチャされるサンプルのセット (ストリームの各チャネルにつき 1 つのサンプルを含む) です。したがって、オーディオ フレームのサイズは、サンプル サイズにストリーム内のチャネル数を乗じた値になります。たとえば、32 ビット float サンプルのステレオ (2 チャネル) ストリームのフレーム サイズは 8 バイトです。 inputDataLength
型: uint32_t
入力データ長 (バイト単位)。長さは 16 の倍数である必要があります。XApuProcessType::ConvertPCM の場合、この値は XApuDecodeConvertCommand::frameCount x XApuDecodeConvertActivateCommand::channelCount x sizeof(float) と等しくなければなりません。 inputData
型: void*
処理のための入力データへのポインター。この値は、XApuConnect によって返された XApuConnectOutputParameters::data 以上、かつ XApuConnectOutputParameters::data + XApuConnectInputParameters::dataLength 未満である必要があります。このバッファーは 16 バイト境界にアラインされている必要があります。 XApuProcessType::DecodeOpus および XApuProcessType::DecodeConvertOpus の場合、入力データは 1 つの Opus パケット (SILK、CELT、または Hybrid) である必要があります。 XApuProcessType::ConvertPCM の場合、入力データは PCM float (32 ビット) である必要があります。XApuConnectOptions::DeinterleavedInput フラグが設定されている場合、入力 PCM データはデインターリーブされている必要があります。 XApuProcessType::ConvertPCM のデインターリーブ入力では、最初のチャネル データは XApuDecodeConvertCommand::inputData から始まり、 2 番目のチャネル データは XApuDecodeConvertCommand::inputData + (XApuDecodeConvertCommand::inputDataLength / 2) から始まります。 maxOutputDataLength
型: uint32_t
最大出力データの長さ (バイト単位)。長さは 16 の倍数である必要があります。XApuConnectInputParameters::baseDataLength を超えてはなりません。 outputData
型: void*
出力 PCM float (32 ビット) データを保持するためのポインター。この値は、XApuConnect によって返された XApuConnectOutputParameters::data 以上、かつ XApuConnectOutputParameters::data + XApuConnectInputParameters::baseDataLength 未満である必要があります。このバッファーは 16 バイト境界にアラインされている必要があります。 XapuConnectOptions::DeinterleavedOutput フラグが設定されている場合、データはデインターリーブされた状態で提供されます。各パケット内では、デインターリーブの中間点は次のように指定されます。 XApuProcessType::DecodeOpus:
  • 左チャネルのフレームは 0 から (XapuResult::outputFrameCount-1) までに配置されます。右チャネルのフレームは (XapuResult::outputFrameCount) からバッファーの末尾までに配置されます。
XApuProcessType::DecodeConvertOpus および XApuProcessType::ConvertPCM:

解説

XApuDecodeConvertCommand は、デコード変換の処理パラメーターに使用されます。XApuCommandId メンバーの詳細については、XApuCommandId を参照してください。XApuPorcessType の詳細については、XApuProcessType を参照してください。 ピッチ ランプ レートの範囲は 2^-18 (0.000003814697265625) から 8.0 までです。最小値未満の値では、ランプは何も行いません — ピッチは現在の値のままになります。ランプ レートが現在の値とターゲット値の差の絶対値よりも大きい場合、ランプは 1 サンプル周期内に発生します。

要件

ヘッダー: xapu.h サポートされているプラットフォーム: XBOX Series X|S

概念ドキュメント

関連項目

XApuEnqueueCommand
XApuResult
XAPU
最終更新日 2026年8月24日