VIDEO_STREAM_CONFIG_CAPS 構造体 (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
VIDEO_STREAM_CONFIG_CAPS構造では、さまざまなビデオ形式について説明します。 ビデオ圧縮フィルターとビデオ キャプチャ フィルターでは、この構造を使用して、生成できる形式を記述します。
- guid
- VideoStandard
- MinFrameInterval
- MaxFrameInterval
構文
typedef struct _VIDEO_STREAM_CONFIG_CAPS {
GUID guid;
ULONG VideoStandard;
SIZE InputSize;
SIZE MinCroppingSize;
SIZE MaxCroppingSize;
int CropGranularityX;
int CropGranularityY;
int CropAlignX;
int CropAlignY;
SIZE MinOutputSize;
SIZE MaxOutputSize;
int OutputGranularityX;
int OutputGranularityY;
int StretchTapsX;
int StretchTapsY;
int ShrinkTapsX;
int ShrinkTapsY;
LONGLONG MinFrameInterval;
LONGLONG MaxFrameInterval;
LONG MinBitsPerSecond;
LONG MaxBitsPerSecond;
} VIDEO_STREAM_CONFIG_CAPS;
メンバー
guid
形式の種類を識別する GUID。 たとえば、 FORMAT_VideoInfo や FORMAT_VideoInfo2などです。 詳細については、AM_MEDIA_TYPE構造体の formattype メンバーを参照してください。
VideoStandard
サポートされているアナログ ビデオ標準。 値は、 AnalogVideoStandard 列挙型のフラグのビットごとの組み合わせ、または 0 です。
InputSize
受信ビデオ信号のネイティブ サイズ。 圧縮機の場合、サイズは入力ピンから取られます。 キャプチャ フィルターの場合、サイズは、フィルターが一意のピクセルを残すたびにデジタル化できる最大の信号です。
MinCroppingSize
使用できる最小のソース四角形。 ソース四角形は、VIDEOINFOHEADER または VIDEOINFOHEADER2 構造体の rcSource メンバーで定義されます。
MaxCroppingSize
最大のソース四角形を使用できます。
CropGranularityX
ソース四角形の水平方向の粒度。 この値は、 MinCroppingSize と MaxCroppingSize の間で有効な増分値 を指定します。
CropGranularityY
ソース四角形の垂直方向の細分性。 この値は、 MinCroppingSize と MaxCroppingSize の間で有効な増分値 を指定します。
CropAlignX
ソース四角形の水平方向の配置が必要です。
CropAlignY
ソース四角形の垂直方向の配置が必要です。
MinOutputSize
最小出力サイズ。
MaxOutputSize
最大出力サイズ。
OutputGranularityX
出力幅の粒度。 この値は、 MinOutputSize と MaxOutputSize の間で有効な増分値 を指定します。
OutputGranularityY
出力の高さの粒度。 この値は、 MinOutputSize と MaxOutputSize の間で有効な増分値 を指定します。
StretchTapsX
フィルターが画像を水平方向にどの程度拡大できるかを示します。
StretchTapsY
フィルターで画像を垂直方向に拡大できる程度を示します。
ShrinkTapsX
フィルターが画像を水平方向に縮小できる程度を示します。
ShrinkTapsY
フィルターが画像を垂直方向に縮小できる程度を示します。
値 | 説明 |
---|---|
|
ストレッチ/縮小はサポートされていません。 |
|
ピクセルの倍倍 (ストレッチ) を使用するか、ピクセルを排除します (縮小) |
|
補間を使用 (2 タップ) |
|
補間を使用 (>2 タップ) |
MinFrameInterval
最小フレーム期間 (100 ナノ秒単位)。 この値は、キャプチャ フィルターにのみ適用されます。
MaxFrameInterval
最大フレーム期間 (100 ナノ秒単位)。 この値は、キャプチャ フィルターにのみ適用されます。
MinBitsPerSecond
このピンで生成できる最小データ レート。
MaxBitsPerSecond
このピンで生成できる最大データ レート。
解説
IAMStreamConfig::GetStreamCaps メソッドは、この構造体を返します。 アプリケーションでは、この情報を使用して、ビデオ圧縮フィルターまたはビデオ キャプチャ フィルターの出力形式を変更できます。
たとえば、フィルターがソース四角形に対して次の値を返しているとします。
- MinCroppingSize = (160, 120)
- MaxCroppingSize = (320,240)
- CropGranularityX = 4
- CropGranularityY = 8
- CropAlignX = 2
- CropAlignY = 4
CropAlignX メンバーと CropAlignY メンバーは、ソース四角形の左上隅を配置できる場所を定義します。 たとえば、次の四角形は、前の値を指定すると有効です。
- (0, 0, 160, 120)
- (2, 0, 162, 120)
- (2, 8, 162, 128)
キャプチャ フィルターの場合、MinFrameInterval メンバーと MaxFrameInterval メンバーは、VIDEOINFOHEADER または VIDEOINFOHEADER2 構造体の AvgTimePerFrame メンバーで指定されているように、各フレームの最小および最大期間を定義します。 フィルターは、これら 2 つの値の間にあるすべてのフレーム レートをサポートしていない場合があります。 IAMStreamConfig::SetFormat メソッドは、フレーム レートをフィルターがサポートする最も近い値に設定します。 SetFormat が成功した場合は、IAMStreamConfig::GetFormat を呼び出して実際のフレーム レートを決定します。
要件
Header | strmif.h (Dshow.h を含む) |