IMpegAudioDecoder
COM公式ドキュメント
IMpegAudioDecoder インターフェイスは MPEG-1 Audio Decoder フィルターで公開され、アプリケーションがデコードパラメーターを制御できるようにします。
メソッド 13
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
CD オーディオ、FM ラジオ、または AM ラジオに相当する品質設定として周波数分周値を返します。
| pDivider | DWORD* | out | 周波数分周値を受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
CD オーディオ、FM ラジオ、または AM ラジオの品質に対応する 3 段階の設定として周波数分周値を指定します。
| Divider | DWORD | in | 分周値を指定します。1 = "CD Audio"、2 = "FM Radio"、4 = "AM Radio"。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
デコーダーの精度を 3 段階の品質設定として返します。
| pAccuracy | DWORD* | out | 品質設定を示します。0 = 最良 (best)、0x4000 = 高 (high)、0x8000 = 完全 (full)。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
デコーダーの精度を 3 段階の品質設定として指定します。
| Accuracy | DWORD | in | 品質設定を示します。0 = 最良 (best)、0x4000 = 高 (high)、0x8000 = 完全 (full)。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
デコーダーがエンコードされたストリームをステレオとモノラルのいずれの PCM にデコードしているかを返します。
| pStereo | DWORD* | out | デコーダーが PCM モノラルとステレオのいずれで出力しているかを示します。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
デコーダーがエンコードされたストリームをステレオとモノラルのいずれの PCM にデコードするかを指定します。
| Stereo | DWORD | in | デコード出力の種類を指定します。1 = モノラル、2 = ステレオ。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
デコードに使用されるワードサイズ (8 ビットまたは 16 ビット) を返します。
| pWordSize | DWORD* | out | ワードサイズを示します。値は 8 または 16 のいずれかです。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
デコーダーが使用するワードサイズを指定します。
| WordSize | DWORD | in | ワードサイズを指定します。値は 8 または 16 でなければなりません。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
デコーダーが現在、浮動小数点デコードではなく整数ベースのデコードを使用しているかどうかを返します。
| pIntDecode | DWORD* | out | デコーダーが整数ベースのデコードを使用しているかどうかを示します。0 は浮動小数点ベースのデコードを使用していることを、1 は整数ベースのデコードを使用していることを意味します。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
デコーダーが整数ベースのデコードを使用するかどうかを指定します。
| IntDecode | DWORD | in | デコードモードを指定します。0 = 浮動小数点モード、1 = 整数モード。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
現在デコードされているチャンネルを返します。
| pIntDecode | DWORD* | inout | デコード対象のチャンネルを示します。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
pIntDecode パラメーターには次の表のいずれかの値を指定できます。
| Constant | Description |
|---|---|
| AM_MPEG_AUDIO_DUAL_MERGE | 両方のチャンネルがデコードされます。 |
| AM_MPEG_AUDIO_DUAL_LEFT | 左チャンネルがデコードされます。 |
| AM_MPEG_AUDIO_DUAL_RIGHT | 右チャンネルがデコードされます。 |
デコード対象のチャンネルを指定します。
| IntDecode | DWORD | in | デコード対象のチャンネルを指定します。有効な値については解説を参照してください。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
次の表は pIntDecode パラメーターの有効な値を示します。
| Constant | Description |
|---|---|
| AM_MPEG_AUDIO_DUAL_MERGE | 両方のチャンネルをデコードすることを指定します。 |
| AM_MPEG_AUDIO_DUAL_LEFT | 左チャンネルをデコードすることを指定します。 |
| AM_MPEG_AUDIO_DUAL_RIGHT | 右チャンネルをデコードすることを指定します。 |
このメソッドは、オーディオストリームに 2 つのモノラルチャンネルを持つ Video CD (VCD) 形式のカラオケディスクに便利です。
接続された入力ピンのオーディオ形式を返します。
| lpFmt | MPEG1WAVEFORMAT* | out | MPEG1WAVEFORMAT 構造体へのポインター。メソッドは形式データをこの構造体にコピーします。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMpegAudioDecoder "{B45DD570-3C77-11D1-ABE1-00A0C905F375}" #usecom global IMpegAudioDecoder IID_IMpegAudioDecoder "{}" #comfunc global IMpegAudioDecoder_get_FrequencyDivider 3 var #comfunc global IMpegAudioDecoder_put_FrequencyDivider 4 int #comfunc global IMpegAudioDecoder_get_DecoderAccuracy 5 var #comfunc global IMpegAudioDecoder_put_DecoderAccuracy 6 int #comfunc global IMpegAudioDecoder_get_Stereo 7 var #comfunc global IMpegAudioDecoder_put_Stereo 8 int #comfunc global IMpegAudioDecoder_get_DecoderWordSize 9 var #comfunc global IMpegAudioDecoder_put_DecoderWordSize 10 int #comfunc global IMpegAudioDecoder_get_IntegerDecode 11 var #comfunc global IMpegAudioDecoder_put_IntegerDecode 12 int #comfunc global IMpegAudioDecoder_get_DualMode 13 var #comfunc global IMpegAudioDecoder_put_DualMode 14 int #comfunc global IMpegAudioDecoder_get_AudioFormat 15 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IMpegAudioDecoder "{B45DD570-3C77-11D1-ABE1-00A0C905F375}" #usecom global IMpegAudioDecoder IID_IMpegAudioDecoder "{}" #comfunc global IMpegAudioDecoder_get_FrequencyDivider 3 sptr #comfunc global IMpegAudioDecoder_put_FrequencyDivider 4 int #comfunc global IMpegAudioDecoder_get_DecoderAccuracy 5 sptr #comfunc global IMpegAudioDecoder_put_DecoderAccuracy 6 int #comfunc global IMpegAudioDecoder_get_Stereo 7 sptr #comfunc global IMpegAudioDecoder_put_Stereo 8 int #comfunc global IMpegAudioDecoder_get_DecoderWordSize 9 sptr #comfunc global IMpegAudioDecoder_put_DecoderWordSize 10 int #comfunc global IMpegAudioDecoder_get_IntegerDecode 11 sptr #comfunc global IMpegAudioDecoder_put_IntegerDecode 12 int #comfunc global IMpegAudioDecoder_get_DualMode 13 sptr #comfunc global IMpegAudioDecoder_put_DualMode 14 int #comfunc global IMpegAudioDecoder_get_AudioFormat 15 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。