Win32 API 日本語リファレンス
ホームMedia.MediaFoundation › IMFMuxStreamMediaTypeManager

IMFMuxStreamMediaTypeManager

COM
IID505a2c72-42f7-4690-aeab-8f513d0ffdb8継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

多重化 (multiplexed) メディアソースのストリーム構成を管理できるようにします。ストリーム構成は、多重化出力に含めることができるサブストリームの集合を定義します。

メソッド 6

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetStreamCount(DWORD* pdwMuxStreamCount)

多重化メディアソースが管理するサブストリームの数を取得します。(IMFMuxStreamMediaTypeManager.GetStreamCount)

pdwMuxStreamCountDWORD*out多重化メディアソースが管理するサブストリームの数。

戻り値

このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
引数が無効です。
vtbl 4 HRESULT GetMediaType(DWORD dwMuxStreamIndex, IMFMediaType** ppMediaType)

指定したインデックスのサブストリームの IMFMediaType を取得します。

dwMuxStreamIndexDWORDinメディアタイプを取得するサブストリームのインデックス。
ppMediaTypeIMFMediaType**out指定したインデックスのサブストリームのメディアタイプ。

戻り値

このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
引数が無効です。
MF_E_INVALIDSTREAMNUMBER
指定されたサブストリームのインデックスが無効です。GetStreamCount を呼び出して、多重化メディアソースが管理するサブストリームの数を取得してください。
MF_E_INVALIDMEDIATYPE
指定されたサブストリームのメディアタイプが無効です。
vtbl 5 HRESULT GetStreamConfigurationCount(DWORD* pdwCount)

登録済みのストリーム構成の数を取得します。ストリーム構成は、多重化出力に含めることができるサブストリームの集合を定義します。

pdwCountDWORD*out登録済みのストリーム構成の数。

戻り値

このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
引数が無効です。
vtbl 6 HRESULT AddStreamConfiguration(ULONGLONG ullStreamMask)

ストリーム構成を登録します。ストリーム構成は、多重化出力に含めることができるサブストリームの集合を定義します。

ullStreamMaskULONGLONGinビットマスク値で、オンになっているビットがストリーム構成に含まれるサブストリームのインデックスを表します。

戻り値

このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
S_FALSE
指定された構成は既に登録されています。
MF_E_INVALIDREQUEST
指定されたビットマスクに、メディアソースにとって無効なビットが設定されています。
E_OUTOFMEMORY
操作を完了するのに十分なメモリがありません。

解説(Remarks)

ストリーム構成は、ビットマスクの数値によって IMFMuxStreamMediaTypeManager 内で順序付けられます。

vtbl 7 HRESULT RemoveStreamConfiguration(ULONGLONG ullStreamMask)

ストリーム構成の登録を解除します。ストリーム構成は、多重化出力に含めることができるサブストリームの集合を定義します。

ullStreamMaskULONGLONGinビットマスク値で、オンになっているビットがストリーム構成に含まれるサブストリームのインデックスを表します。

戻り値

このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
S_FALSE
指定された構成は現在登録されていません。
E_OUTOFMEMORY
操作を完了するのに十分なメモリがありません。
vtbl 8 HRESULT GetStreamConfiguration(DWORD ulIndex, ULONGLONG* pullStreamMask)

指定したインデックスのストリーム構成を取得します。ストリーム構成は、多重化出力に含めることができるサブストリームの集合を定義します。

ulIndexDWORDin取得する構成のインデックス。
pullStreamMaskULONGLONG*out取得する構成のインデックス。

戻り値

このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
MF_E_INVALIDINDEX
指定された構成のインデックスが無効です。

解説(Remarks)

ストリーム構成は、ビットマスクの数値によって IMFMuxStreamMediaTypeManager 内で順序付けられます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IMFMuxStreamMediaTypeManager "{505A2C72-42F7-4690-AEAB-8F513D0FFDB8}"
#usecom global IMFMuxStreamMediaTypeManager IID_IMFMuxStreamMediaTypeManager "{}"
#comfunc global IMFMuxStreamMediaTypeManager_GetStreamCount               3 var
#comfunc global IMFMuxStreamMediaTypeManager_GetMediaType                 4 int,sptr
#comfunc global IMFMuxStreamMediaTypeManager_GetStreamConfigurationCount  5 var
#comfunc global IMFMuxStreamMediaTypeManager_AddStreamConfiguration       6 int64
#comfunc global IMFMuxStreamMediaTypeManager_RemoveStreamConfiguration    7 int64
#comfunc global IMFMuxStreamMediaTypeManager_GetStreamConfiguration       8 int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。