Microsoft DirectX 8.0 |
メディア タイプを管理するためのクラス。このクラスは AM_MEDIA_TYPE 構造体を継承する。それは AM_MEDIA_TYPE タイプの変数にキャストされ得る。
宣言 : Mtype.h
Public メソッド | |
---|---|
CMediaType | コンストラクタ メソッド |
~CMediaType | デストラクタ メソッド |
IsValid | メジャー タイプがこのオブジェクトにアサインされているかどうかを確認する。 |
Type | メジャー タイプを取得する。 |
SetType | メジャー タイプを指定する。 |
Subtype | サブタイプを取得する。 |
SetSubtype | サブタイプを指定する。 |
IsFixedSize | サンプルが固定サイズか可変サイズかを確認する。 |
IsTemporalCompressed | ストリームが時系列圧縮を使用しているかどうかを確認する。 |
GetSampleSize | サンプル サイズを取得する。 |
SetSampleSize | 固定サンプル サイズを指定する、あるいはサンプルが可変サイズを持つことを指定する。 |
SetVariableSize | サンプルが固定サイズを持たないことを指定する。 |
SetTemporalCompression | サンプルが時系列圧縮を使って圧縮されたかどうかを指定する。 |
Format | フォーマット ブロックへのポインタを取得する。 |
FormatLength | フォーマット ブロックの長さを取得する。 |
SetFormatType | フォーマット タイプを指定する。 |
FormatType | フォーマット タイプを取得する。 |
SetFormat | フォーマット ブロックを指定する。 |
ResetFormatBuffer | フォーマット ブロックを削除する。 |
AllocFormatBuffer | フォーマット ブロックのメモリを割り当てる。 |
ReallocFormatBuffer | フォーマット ブロックに新しいサイズを再割り当てする。 |
InitMediaType | メディア タイプを初期化する。 |
MatchesPartial | このメディア タイプが部分的に指定したメディア タイプと一致するかどうかを確認する。 |
IsPartiallySpecified | メディア タイプが部分的に指定されたかどうかを確認する。 |
演算子 | |
operator = | メディア タイプをコピーする割り当て演算子をオーバーロードする。 |
operator == | 2 つの CMediaType オブジェクトが等しいことをテストする。 |
operator != | 2 つのCMediaType オブジェクトが等しくないことをテストする。 |
フォーマット ブロックのメモリを割り当てる。
構文
BYTE* AllocFormatBuffer( ULONG length );
パラメータ
- length
- フォーマット ブロックに要求されるサイズ、バイト単位。
戻り値
成功なら新しいブロックへのポインタを返す。そうでなければ NULL を返す。
注意
メソッドが新しいフォーマット ブロックの割り当てに成功すると、既存のフォーマット ブロックをフリーにする。
コンストラクタ メソッド。
構文
CMediaType(void); CMediaType( const GUID *majortype ); CMediaType( const AM_MEDIA_TYPE& mtype ); CMediaType( const CMediaType& cmtype );
パラメータ
- majortype
- メジャー タイプ GUID へのポインタ。
- mtype
- AM_MEDIA_TYPE 構造体への参照。
- cmtype
- CMediaType オブジェクトへの参照。
注意
コンストラクタは InitMediaType 関数を呼び出して、メディア タイプを初期化する。majortype パラメータが指定されると、コンストラクタはメジャー タイプを GUID で初期化する。mtype か cmtype パラメータが指定されると、コンストラクタは (フォーマット ブロックを含む) メディア タイプ情報を新しいオブジェクトにコピーする。
デストラクタ メソッド。
構文
~CMediaType(void);
注意
デストラクタは FreeMediaType 関数を自分自身で呼び出す。
フォーマット ブロックへのポインタを取得する。
構文
BYTE* Format(void) const;
戻り値
pbFormat メンバを返す。
フォーマット ブロックの長さを取得する。
構文
ULONG FormatLength(void) const;
戻り値
cbFormat メンバを返す。
フォーマット タイプを取得する。
構文
const GUID *FormatType(void) const;
戻り値
formattype メンバへのポインタを返す。
サンプル サイズを取得する。
構文
ULONG GetSampleSize(void) const;
戻り値
サンプル サイズが固定なら、バイト単位のサンプルサイズを返す。そうでなければゼロを返す。
メディア タイプを初期化する。
構文
void InitMediaType(void);
注意
このメソッドはオブジェクトのメモリをゼロにし、固定サンプル サイズ プロパティを TRUE にし、サンプル サイズを 1 に設定する。
サンプルが固定サイズか可変サイズかを確認する。
構文
BOOL IsFixedSize(void) const;
戻り値
bFixedSizeSamples メンバの値を返す。
メディア タイプが部分的に指定されたかどうかを確認する。メジャー タイプ、サブタイプ、フォーマット タイプが GUID_NILL なら、メディア タイプは 部分的 である。
構文
BOOL IsPartiallySpecified(void) const;
戻り値
メディア タイプが部分的に指定されているなら TRUE を返す。そうでなければ FALSE を返す。
注意
IPin::Connect メソッドは部分的メディア タイプを許容できる。
その実装は実際にはサブタイプのテストではない。指定したフォーマット タイプがあれば、たとえサブタイプが GUID_NULL であっても、メディア タイプは部分的とは解釈されない。
ストリームが時系列圧縮を使用しているかどうかを確認する。
構文
BOOL IsTemporalCompressed(void) const;
戻り値
bTemporalCompression メンバの値を返す。
メジャー タイプがこのオブジェクトにアサインされているかどうかを確認する。
構文
BOOL IsValid(void) const;
戻り値
メジャータイプがこのオブジェクトにアサインされているなら TRUE を返す。それ以外なら FALSE を返す。
注意
デフォルトでは CMediaType オブジェクトは GUID_NULL のメジャー タイプで初期化される。このメソッドを呼び出して、オブジェクトが正しく初期化されたかどうかを確認すること。
このメディア タイプが部分的に指定したメディア タイプと一致するかどうかを確認する。
構文
BOOL MatchesPartial( const CMediaType *ppartial ) const;
パラメータ
- ppartial
- 一致すべきメディア タイプへのポインタ。
戻り値
メディア タイプが一致すれば TRUE を返す。それ以外なら FALSE を返す。
注意
ppartial によって指定されるメディア タイプはメジャータイプ、サブタイプ、フォーマット タイプに GUID_NULL 値を取り得る。GUID_NULL 値のメンバはテストされない。(基本的には、GUID_NULL はワイルドカードとして働く。) GUID_NULL 以外の値を持つメンバは一致すべきメディア タイプと一致しなければならない。
フォーマット ブロックに新しいサイズを再割り当てする。
構文
BYTE* ReallocFormatBuffer( ULONG length );
パラメータ
- length
- フォーマット ブロックに要求される新しいサイズ、バイト単位。ゼロより大きな値でなければならない。
戻り値
成功すれば新しいブロックへのポインタを返す。そうでなければ、古いフォーマット ブロックへのポインタか NULL を返す。
注意
このメソッドは新しいフォーマット ブロックを割り当てる。それは既存のフォーマット ブロックを新しいフォーマット ブロックにできるだけコピーする。新しいブロックが既存のブロックより小さいなら、既存のブロックは切り詰められる。新しいブロックがより大きければ、未定義の追加スペースを持つ。そこでは明示的にゼロがセットされているわけでは ない。
フォーマット ブロックを削除する。
構文
void ResetFormatBuffer(void);
フォーマット ブロックを指定する
構文
BOOL SetFormat( BYTE *pFormat, ULONG length );
パラメータ
- pFormat
- フォーマット ブロックが入るメモリのブロックへのポインタ。
- length
- フォーマット ブロックのサイズ、バイト単位。
戻り値
成功なら TRUE、エラーが起きたなら FALSE を返す。
注意
このメソッドは pFormat によって指定されたフォーマット ブロックをコピーする。フォーマット タイプを設定するには SetFormatType メソッドを呼び出すこと。
フォーマット タイプを指定する。
構文
void SetFormatType( const GUID *pformattype );
パラメータ
- pformattype
- フォーマット タイプを指定する GUID へのポインタ。
注意
このメソッドは formattype メンバを設定する。フォーマット タイプはフォーマット ブロックのレイアウトを定義する。たとえば、フォーマット タイプが FORMAT_VideoInfo なら、フォーマット ブロックには VIDEOINFOHEADER が入るべきである。フォーマット ブロックを設定するには、SetFormat を呼び出すこと。呼び出し元はフォーマット ブロックがフォーマット タイプと一致することを保証する責任がある。
固定サンプル サイズを指定する、あるいはサンプルが可変サイズを持つことを指定する。
構文
void SetSampleSize( ULONG sz );
パラメータ
- sz
- サンプル サイズ (バイト単位)、あるいはゼロ。
注意
sz がゼロなら、メディア タイプは可変のサンプル サイズを使う。そうでなければ、サンプル サイズは sz バイト固定である。
サブタイプを指定する。
構文
void SetSubtype( const GUID *psubtype );
パラメータ
- psubtype
- サブタイプを指定する GUID へのポインタ。
ストリームが時系列圧縮を使用しているかどうかを確認する。
構文
void SetTemporalCompression( BOOL bCompressed );
パラメータ
- bCompressed
- ストリームが時系列圧縮を使用しているかどうかを指定するブール値。ストリームが時系列圧縮を使用しているなら TRUE 値がセットされる。
注意
このメソッドは bTemporalCompression メンバを設定する。
メジャー タイプを指定する。
構文
void SetType( const GUID *ptype );
パラメータ
- ptype
- メジャー タイプを指定する GUID へのポインタ。
サンプルが固定サイズを持たないことを指定する。
構文
void SetVariableSize(void);
注意
このメソッドは bFixedSizeSamples メンバを FALSE に設定する。この後で CMediaType::GetSampleSize メソッドを呼び出すとゼロを返す。
サブタイプを取得する。
構文
const GUID *Type(void) const;
戻り値
subtype メンバへのポインタを返す。
メジャー タイプを取得する。
構文
const GUID *Type(void) const;
戻り値
majortype メンバへのポインタを返す。
メディア タイプをコピーする割り当て演算子をオーバーロードする。
構文
CMediaType& operator=( const CMediaType& cmtype ); CMediaType& operator=( const AM_MEDIA_TYPE& mtype );
パラメータ
- cmtype
- CMediaType オブジェクトへの参照。
- mtype
- AM_MEDIA_TYPE 構造体への参照。
戻り値
オブジェクトへの参照を返す。
2 つの CMediaType オブジェクトが等しいことをテストする。
構文
inline BOOL operator==( const CMediaType& rt ) const;
パラメータ
- rt
- 比較する CMediaType オブジェクトへの参照。
戻り値
rt がこのオブジェクトと等しいなら TRUE を返す。そうでなければ FALSE を返す。
2 つのCMediaType オブジェクトが等しくないことをテストする。
構文
BOOL operator!=( const CMediaType& rt ) const;
パラメータ
- rt
- 比較する CMediaType オブジェクトへの参照。
戻り値
rt がこのオブジェクトと等くないなら TRUE を返す。そうでなければ FALSE を返す。