次の方法で共有


CDynamicOutputPin.ChangeOutputFormat メソッド

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

メソッドは ChangeOutputFormat 、接続のメディアの種類を動的に変更し、新しいセグメント情報を配信します。 この変更は、フィルター グラフの実行中に発生する可能性があります。 このメソッドが呼び出されると、古いメディアの種類のサンプルを配信できません。 呼び出し元は、古いサンプルが保留中でないことを確認する必要があります。

構文

HRESULT ChangeOutputFormat(
   const AM_MEDIA_TYPE  *pmt,
         REFERENCE_TIME tSegmentStart,
         REFERENCE_TIME tSegmentStop,
         double         dSegmentRate
);

パラメーター

Pmt

メディアの種類を指定する AM_MEDIA_TYPE 構造体へのポインター。

tSegmentStart

セグメントの開始時刻。

tSegmentStop

セグメントの停止時間。

dSegmentRate

セグメント率。

戻り値

HRESULT 値を返します。 次の表に示す値を指定できます。

リターン コード 説明
S_OK
成功しました。
E_FAIL
失敗しました。 所有フィルターで CDynamicOutputPin::SetConfigInfo が呼び出されなかった可能性があります。
VFW_E_NOT_CONNECTED
ピンが接続されていません。

解説

このメソッドは、フィルターの実行中に書式の種類を変更します。 ダウンストリーム ピンが新しい形式を受け入れる場合、再接続は必要ありません。 それ以外の場合、メソッドはピンの再接続を試みます。 メソッドが正常に形式を変更すると、新しいセグメント情報が配信されます。 このメソッドは 、CDynamicOutputPin::ChangeMediaType メソッドを呼び出して、形式の変更を実行します。

このメソッドを呼び出す前に 、CDynamicOutputPin::StartUsingOutputPin メソッドを 呼び出す必要があります。

要件

要件
ヘッダー
Amfilter.h (Streams.h を含む)
ライブラリ
Strmbase.lib (製品版ビルド);
Strmbasd.lib (デバッグ ビルド)

関連項目

CDynamicOutputPin クラス