次の方法で共有


MEStreamTick イベント

メディア ストリームに、指定された時刻に使用可能なデータがないことを通知します。

イベント値

IMFMediaEvent::GetValue から取得できる値は次のとおりです。

VARTYPE 説明
VT_I8
ギャップが発生する時間 (100 ナノ秒単位)。

解説

このイベントは、データのギャップを通知します。 イベントは、指定された時刻にデータが予期されないようにダウンストリーム コンポーネントに通知します。

イベントは、ストリーム内のメディア サンプルのタイム スタンプを生成するオブジェクトによって送信される必要があります。 データの形式に応じて、次のいずれかになります。

  • メディア ソース上のメディア ストリーム (IMFMediaStream インターフェイス)、または
  • デコーダー変換 (IMFTransform インターフェイス)。

ギャップの間、オブジェクトは通常サンプルを生成するのと同じ頻度でイベントを送信する必要があります。 ビデオの場合は、不足しているフレームごとに 1 つのイベントを送信します。 オーディオの場合は、ギャップ中に少なくとも 1 秒に 1 回イベントを送信します。 イベントの値は、欠落しているサンプルのタイム スタンプです。 データのギャップを埋めるために、必要な数の MEStreamTick イベントを送信します。

メディア ソースに複数のストリームがあり、複数のストリームにギャップがある場合、各ストリームは MEStreamTick イベントを送信する必要があります。 たとえば、オーディオデータとビデオデータの両方にギャップがある場合、両方のストリームがイベントを送信します。

MEStreamTick イベントは、 IMFMediaStream::RequestSample 要求を 完了しません。 メディア ソースは、RequestSample の呼び出しごとに MEMediaSample イベントを送信する必要があります。

メディア シンクは、このイベントを直接使用できません。 ストリーム内のギャップをメディア シンクに通知するには、MFSTREAMSINK_MARKER_TICK マーカーを使用して IMFStreamSink::P laceMarker を呼び出します。 Media Foundation パイプラインは、必要に応じ MEStreamTick イベントを MFSTREAMSINK_MARKER_TICK マーカーに変換します。

MEStreamTick イベントの後の次のメディア サンプルでは、 MFSampleExtension_Discontinuity 属性を設定しないでください。 MFSampleExtension_Discontinuity属性は、以前のタイム スタンプではタイム スタンプが不連続であることを意味しますが、MEStreamTick はタイム スタンプが連続しているが、一部のデータが欠落していることを意味します。

Note

以前のバージョンのドキュメントでは、MEStreamTick イベントの後のサンプルに MFSampleExtension_Discontinuity 属性が必要であると誤って記載されています。

 

必要条件

要件
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2008 [デスクトップ アプリのみ]
ヘッダー
Mfobjects.h (Mfidl.h を含む)

関連項目

Media Foundation イベント