Date

メディアタイプは、ビデオやオーディオといった「メディアの種類」を表う。DirectShowではメディアタイプを2つの階層に分けている。

  • メジャータイプ
  • サブタイプ

「メジャータイプ」はビデオやオーディオといった、おおまかな分類を示す。

「サブタイプ」は、メジャータイプの詳細を定義する。例えばビデオであれば24bit画像なのか16bit画像なのか、オーディオであればPCMなのかAC3なのか…など。

フィルタを実装する際、どのようなメディアタイプを扱うのか定義する。そのときAM_MEDIA_TYPEという構造体を使ってメディアタイプを表すことになる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
typedef struct  _MediaType {
    GUID      majortype;
    GUID      subtype;
    BOOL      bFixedSizeSamples;
    BOOL      bTemporalCompression;
    ULONG     lSampleSize;
    GUID      formattype;
    IUnknown  *pUnk;
    ULONG     cbFormat;
    [size_is(cbFormat)] BYTE *pbFormat;
} AM_MEDIA_TYPE;

メジャータイプが majortype 、サブタイプが subtype となる。型は GUID である。

DirectShow 基底クラスライブラリには、これを継承するクラスCMediaTypeがある。CMediaTypeからAM_MEDIA_TYPEへはキャスト可能となっている。


Comments

comments powered by Disqus