次の方法で共有


CMediaSample クラス

CMediaSample クラスの階層

CMediaSample クラスは、IMediaSample2 インターフェイスをサポートするメディア サンプルを定義する。メディア サンプルはメモリ バッファへのポインタと、プロテクト メンバ変数に格納されているいくつかのプロパティを持つ。

メディア サンプルは CBaseAllocator クラスから派生するアロケータによって作成される。CMediaSample コンストラクタはバッファ サイズと共にアロケータ バッファへのポインタを受け取る。他のプロパティは通常 IMediaSample インターフェイス メソッドを通して設定または取得される。

メディア サンプルのライフ サイクルはほとんどの COM オブジェクトのライフ サイクルとは異なる。

  • アロケータはフリー サンプルのリストを保持する。フィルタが新しいサンプルを必要とするとき、アロケータの IMemAllocator::GetBuffer メソッドを呼び出す。アロケータはそのフリー リストからサンプルを取得し、そのサンプルの参照カウントをインクリメントし、そのサンプルのポインタを返す。
  • フィルタがサンプルでの処理を終了したとき、サンプルの IUnknown::Release メソッドを呼び出す。ほとんどのオブジェクトとは異なり、参照カウントがゼロになってもサンプルは自身を削除しない。その代わりに、アロケータの IMemAllocator::ReleaseBuffer メソッドを呼び出して、アロケータはフリー リストにそのサンプルを返す。
  • アロケータは IMemAllocator::Decommit が呼び出されるまでサンプルを削除しない。

要件

ヘッダー: Amfilter.h で宣言し、Streams.h をインクルードする。

ライブラリ: Strmbase.lib (リテール ビルド) または Strmbasd.lib (デバッグ ビルド)。

プロテクト メンバ変数  
m_dwFlags サンプル プロパティ フラグ。
m_dwTypeSpecificFlags タイプ固有のフラグ。
m_pBuffer メディア データを格納するメモリ バッファへのポインタ。
m_lActual バッファ内の有効なデータの長さ (バイト単位)。
m_cbBuffer バッファのサイズ (バイト単位)。
m_pAllocator サンプルを作成したアロケータへのポインタ。
m_pNext アロケータのサンプル リストにある次のサンプルへのポインタ。
m_Start サンプル開始タイム。
m_End サンプル終了タイム。
m_MediaStart メディア開始タイム。
m_MediaEnd メディア終了タイム。
m_pMediaType メディア タイプがそのデータ ストリームの前のサンプルから変更されているなら、メディア タイプへのポインタ。
m_dwStreamId ストリーム識別子。
パブリック メンバ変数  
m_cRef 参照カウント。
パブリック メソッド  
CMediaSample コンストラクタ メソッド。
~CMediaSample デストラクタ メソッド。仮想
SetPointer メモリ バッファへのポインタを設定する。
IMediaSample メソッド  
GetPointer バッファの読み込み/書き込みポインタを取得する。
GetSize バッファのサイズを取得する。
GetTime サンプルが開始および終了すべきストリーム タイムを取得する。
SetTime サンプルが開始および終了するストリーム タイムを設定する。
IsSyncPoint サンプルの開始が同期ポイントかどうかを調べる。
SetSyncPoint サンプルの始まりが同期ポイントかどうかを指定する。
IsPreroll サンプルがプリロール サンプルかどうかを調べる。
SetPreroll サンプルがプリロール サンプルかどうかを指定する。
GetActualDataLength バッファ内の有効なデータの長さを取得する。
SetActualDataLength バッファ内の有効なデータの長さを設定する。
GetMediaType メディア タイプが前のサンプルと異なる場合、メディア タイプを取得する。
SetMediaType サンプルのメディア タイプを設定する。
IsDiscontinuity このサンプルがデータ ストリーム内でブレークを表示するかどうかを確認する。
SetDiscontinuity このサンプルがデータ ストリーム内でブレークを表示するかどうかを指定する。
GetMediaTime このサンプルのメディア タイムを取得する。
SetMediaTime このサンプルのメディア タイムを設定する。
IMediaSample2 メソッド  
GetProperties サンプルのプロパティを取得する。
SetProperties サンプルのプロパティを設定する。