VIDEO_STREAM_CONFIG_CAPS (Compact 2013)

3/26/2014

This structure contains information about possible connections.

Syntax

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;

Members

  • guid
    Will set MEDIATYPE_Video to indicate a video sample.
  • VideoStandard
    The analog video standard supported.

    This member is set in the AnalogVideoStandard enumeration type

    This value is set to 0 if not supported.

  • InputSize
    Size of the incoming signal, expressed through the Win32 SIZE structure as the image rectangle's width and height in pixels.

    For a compressor, the size is taken from the width and height members of the Win32 BITMAPINFOHEADER structure in the input pin's AM_MEDIA_TYPE structure.

    For a capture filter, the size is the largest signal the filter can digitize with every pixel remaining unique.

  • MinCroppingSize
    Smallest cropping rectangle allowed, as specified in the VIDEOINFOHEADER structure's rcSource member.
  • MaxCroppingSize
    Largest cropping rectangle allowed, as specified in the VIDEOINFOHEADER structure's rcSource member.
  • CropGranularityX
    Granularity of the cropping size.

    For example, you could specify that the only valid widths are an even multiple of four.

  • CropGranularityY
    Granularity of the cropping size.

    For example, you could specify that the only valid heights are an even multiple of four.

  • CropAlignX
    Alignment of the cropping rectangle inside InputSize.

    For example, you could specify that rectangles must start on a boundary that is a multiple of four.

  • CropAlignY
    Alignment of the cropping rectangle inside InputSize.

    For example, you could specify that rectangles must start on a boundary that is a multiple of four.

  • MinOutputSize
    Smallest bitmap this pin can produce.
  • MaxOutputSize
    Largest bitmap this pin can produce.
  • OutputGranularityX
    Granularity of output bitmap width.
  • OutputGranularityY
    Granularity of output bitmap height.
  • StretchTapsX
    Value indicating how well the filter can stretch the image's width.

    0 means the filter cannot stretch.

    1 means it uses pixel doubling.

    2 means it uses interpolation (2 taps).

    3 and higher indicate it implements better interpolation.

  • StretchTapsY
    Value indicating how well the filter can stretch the image's height.

    0 means the filter cannot stretch.

    1 means it uses pixel doubling.

    2 means it uses interpolation (2 taps).

    3 and higher indicate it implements better interpolation.

  • ShrinkTapsX
    Value indicating how well the filter can shrink the image's width.

    0 means the filter cannot shrink.

    1 means it just eliminates some rows of pixels.

    2 means it uses interpolation (2 taps).

    3 and higher indicate it implements better interpolation.

  • ShrinkTapsY
    Value indicating how well the filter can shrink the image's height.

    0 means the filter cannot shrink.

    1 means it just eliminates some rows of pixels.

    2 means it uses interpolation (2 taps).

    3 and higher indicate it implements better interpolation.

  • MinFrameInterval
    Minimum frame rate allowed.

    This applies to the capture filter only.

  • MaxFrameInterval
    Maximum frame rate allowed.

    This applies to the capture filter only.

  • MinBitsPerSecond
    Minimum data rate this pin can produce.
  • MaxBitsPerSecond
    Maximum data rate this pin can produce.

Remarks

For example, assume the following values for some of the structure members:

  • MinCroppingSize = (160, 120)
  • MaxCroppingSize = (320, 240)
  • CropGranularityX = 4
  • CropGranularityY = 8

These values indicate that valid cropping sizes begin at MinCroppingSize and increase in steps in the x-direction by CropGranularityX and in the y-direction by CropGranularityY.

In this case the x-value can be anywhere from 160 to 320 pixels in steps of 4 and the y-value can be anywhere from 120 to 240 pixels in steps of 8.

In this scenario a few of the valid sizes are as follows:

  • 160 x 120, 164 x 120, 168 x 120, 172 x 120, and so on
  • 160 x 128, 164 x 128, 168 x 128, 172 x 128, and so on
  • 160 x 136, 164 x 136, 168 x 136, 172 x 136, and so on

CropAlignX and CropAlignY indicate where the cropping rectangle can be inside the input size rectangle.

Given a 160 × 120 sized cropping rectangle and the following:

  • CropAlignX = 2
  • CropAlignY = 4

Some valid values for the VIDEOINFOHEADER structure's rcSource member are as follows:

  • (0, 0, 160, 120)
  • (2, 0, 162, 120)
  • (2, 4, 162, 124)
  • (2, 8, 162, 128)

For a 320 × 240 cropping rectangle and the same cropping alignment values, (2, 4, 322, 244) is one example of the many legal rectangles.

The structure members discussed in this section work together to specify what values of rcSource are valid for the VIDEOINFOHEADER structure that describes the output pin's media type.

Of the remaining structure members, MinOutputSize, MaxOutputSize, OutputGranularityX, and OutputGranularityY describe the biWidth and biHeight members of the BITMAPINFOHEADER structure contained in the output pin's media type VIDEOINFOHEADER structure.

Requirements

Header

dshow.h

Library

Strmiids.lib

See Also

Reference

DirectShow Structures