メディアソースのオブジェクトによって実装されます。

メディアソースは、メディアのデータを生成するオブジェクトです。例えば、そのデータはカメラ、ビデオファイル、ネットワークストリーム、またはハードウェアデバイスから来ます。各メディアのソースは、1つまたは複数のストリームが含まれており、それぞれのストリームは、オーディオやビデオのデータタイプとして、提供されます。

CreatePresentationDescriptor

メディアソースの制御記述子のコピーを取得します。
HRESULT CreatePresentationDescriptor(
  [out]  IMFPresentationDescriptor **ppPresentationDescriptor
);
パラメーター
ppPresentationDescriptor
 IMFPresentationDescriptorの制御記述子へのポインタを受け取ります。呼び出し元は、インターフェイスを解放する必要があります。
戻り値
可能な値は次の表のとおりであるが限定的ではない。
Return codeDescription
S_OK処理成功
MF_E_SHUTDOWNメディアソースが既に切断済み

GetCharacteristics

メディアソースの特性を取得します。
HRESULT GetCharacteristics(
  [out]  DWORD *pdwCharacteristics
);
パラメーター
pdwCharacteristics
 ビット単位の論理和(OR)の0個以上のフラグを、 MFMEDIASOURCE_CHARACTERISTICSの列挙から受け取ります。
戻り値
可能な値は次の表のとおりであるが限定的ではない。
Return codeDescription
S_OK処理成功
MF_E_SHUTDOWNメディアソースが既に切断済み

Pause

メディアソース内のすべてのアクティブなストリームを一時停止します。
HRESULT Pause();
パラメーター
戻り値
Return codeDescription
S_OK処理成功
MF_E_INVALID_STATE_TRANSITION無効な状態遷移。 メディアソースは、開始状態になっている必要があります。
MF_E_SHUTDOWNメディアソースが既に切断済み

RemoteCreatePresentationDescriptor

CreatePresentationDescriptorのリモート処理可能なバージョン。 (アプリケーションによっては使用されていない。)
[call_as(CreatePresentationDescriptor)]
HRESULT RemoteCreatePresentationDescriptor(
    DWORD *pcbPD,
    BYTE **pbPD,
    IMFPresentationDescriptor **ppRemotePD
);
パラメーター
アプリケーションは、このメソッドを直接呼び出すことはできません、またオブジェクトはこのメソッドを実装していません。
メソッドは、インターフェイスのvtableには表示されません。
CreatePresentationDescriptorは、プロセスの境界を越えて呼び出された場合、Media Foundation proxy/stub DLLはリモートメソッドの呼び出しにコールを変換してから戻ってそれを変換します。
リモートメソッドの呼び出しにコールを変換し,それを変換します。
戻り値

Shutdown

メディアソースをシャットダウンし、使用されているリソースを解放します。
 HRESULT Shutdown();
パラメーター
戻り値
この関数はHRESULTを返す。可能な値は次の表のとおりであるが限定的ではない。
Return codeDescription
S_OK処理成功

Start

再生を開始する場所を指定して、メディアソースのキャプチャのスタートやシークまたは再スタートします。
HRESULT Start(
  [in]  IMFPresentationDescriptor *pPresentationDescriptor,
  [in]  const GUID *pguidTimeFormat,
  [in]  const PROPVARIANT *pvarStartPosition
);
パラメーター
pPresentationDescriptor
 メディアソースの制御記述子のIMFPresentationDescriptorインターフェイスへのポインタ。
 "MFMediaSource::CreatePresentationDescriptor"と呼ばれる制御記述子を取得する。
 選択または選択解除ストリームまたはメディアタイプを変更するには、Startを呼び出す前に、制御記述子を変更することができます。
pguidTimeFormat
 時間のフォーマットを指定するGUIDへのポインタ。
 時刻形式はpvarStartPositionパラメーターの単位を定義しています。
 値がGUID_NULLである場合は、時刻形式は、100ナノ秒単位です。
 一部のメディアソースは、追加のタイムフォーマットのGUIDをサポートしている場合があります。このパラメータはNULLでもかまいません。
 値がNULLの場合、それはGUID_NULLと同等です。
pvarStartPosition
 再生を開始する場所を指定します。
 このパラメータの単位はpguidTimeFormatで与えられた時間の形式で示されます。
 時間のフォーマットがGUID_NULLである場合、バリアントの型は、VT_I8またはVT_EMPTYにする必要があります。
 100ナノ秒単位で新しい開始位置を、指定するVT_I8を使用してください。
 現在の位置から開始するVT_EMPTYを使用してください。
 他の時刻形式は、他のPROPVARIANTの型を使用する場合があります。
戻り値
この関数はHRESULTを返す。可能な値は次の表のとおりであるが限定的ではない。
Return codeDescription
S_OK処理成功
MF_E_ASF_OUTOFRANGE開始位置は、プレゼンテーション(ASFメディアソース)の末尾を超えています。
MF_E_HW_MFT_FAILED_START_STREAMINGハードウェアデバイスはストリーミングを開始することができませんでした。このエラーコードは、カメラなどのハードウェアデバイスを表すメディアソースから返されることもあります。カメラが別のアプリケーションによって使用されている場合例えば、メソッドは、このエラーコードを返すことがあります。
MF_E_INVALIDREQUEST開始要求は無効です。例えば、開始位置は、プレゼンテーションの最後を超えています。
MF_E_SHUTDOWNメディアソースが既に切断済み
MF_E_UNSUPPORTED_TIME_FORMATメディアソースは、pguidTimeFormatで指定された時間のフォーマットをサポートしていません。

Stop

メディアソース内のすべてのアクティブなストリームを停止します。
 HRESULT Stop();
パラメーター
戻り値
この関数はHRESULTを返す。可能な値は次の表のとおりであるが限定的ではない。
Return codeDescription
S_OK処理成功
MF_E_SHUTDOWNメディアソースが既に切断済み

Menu

XML

オープンソース

エンドツーエンド暗号化

プロジェクト管理

フォーラム

GitClient

ホスティング

開発手法

ドメイン駆動設計:DDD?

テスト駆動開発:TDD

ビヘイビア駆動開発:BDD

チケット駆動開発:TiDD

課題追跡システム:ITS(issue tracking system)
バグ追跡システム:BTS(bug tracking system)

ビルドツール

JavaScript

ビルドファイルを自動生成

設定ファイル

データシリアライズ

マルチフォーマット

継続的インテグレーション

オススメ

for Windows

その他

構成管理

テストツール

デプロイツール

仮想マシン構築

オーケストラレーション

仮想化ソフトウェア

クラスタリソースマネージャ

コンテナオーケストレーション

サービスメッシュ

Kubernetes

高可用性クラスタ/HAクラスタ

  • Pacemaker?

負荷分散/ロードバランス(Load Balancing)クラスタ

HPC(High Performance Computing)クラスタ

テスト

JavaScript,TypeScript

Living Documentation Generator

ドキュメント作成

reStructuredText

CommonMark

グラフドキュメント

問い合わせ言語

ファイルシステム

分散型Web

Web API作成補助ツール

パッケージ管理システム

Ruby

Chef

OCaml

Rust

Web Frontend

Node.js

Haxe

Microsoft .NET Framework

Mac OS X

Debian

Red Hat系

Gentoo Linux

Arch Linux

シーケンス図

フローチャート

ログイン

脆弱性関連情報

ツール

Web

Components

Template engine

CSS Preprocessor

Haxe
Node.js

JavaScript

MVVM系フレームワーク
比較
データバインディング

Websocket

GDPR対策

Cookie利用

Browser互換確認

Linux

コマンドラインシェル

Record your terminal session

Windows

コマンドラインシェル

メニューサンプル1

Microsoft Media Foundation

  • TopoEdit?

MFCaptureToFile

IMFSinkWriter?

IMFSourceReader?

OpenCV

webページ作成

デザイン

オンラインプログラミング

IDE

プログラミングに最適なフォント

アルゴリズム

コスト・マネジメント

スケジュール・コスト管理

  • EVM?

見積・請求書

デザインソフト

クラウドソーシング

コードバウンティ

管理人/副管理人のみ編集できます