다음을 통해 공유


VIDEO_STREAM_CONFIG_CAPS 구조체(strmif.h)

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

VIDEO_STREAM_CONFIG_CAPS 구조는 다양한 비디오 형식을 설명합니다. 비디오 압축 및 비디오 캡처 필터는 이 구조를 사용하여 생성할 수 있는 형식을 설명합니다.

참고 다음 구조체 멤버를 제외하고 이 구조체의 대부분은 더 이상 사용되지 않습니다.
  • guid
  • VideoStandard
  • MinFrameInterval
  • MaxFrameInterval
애플리케이션은 MinFrameIntervalMaxFrameInterval 을 사용하여 비디오 캡처 디바이스에서 지원되는 프레임 속도 범위를 가져올 수 있습니다. 애플리케이션은 이 구조체의 다른 멤버를 사용하지 않아야 합니다. 대신 IAMStreamConfig::GetFormat 메서드에서 반환된 AM_MEDIA_TYPE 구조를 사용합니다.
 

구문

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

필터가 이미지를 세로로 축소할 수 있는 정도를 나타냅니다.

참고 되지 않는.
 
이전 4개의 구조체 멤버는 다음 값을 사용합니다.
의미
0
확장/축소를 지원하지 않습니다.
1
픽셀 두 배(늘이기)를 사용하거나 픽셀을 제거합니다(축소).
2
보간 사용(탭 2개)
3 이상
보간 사용(>탭 2개)

MinFrameInterval

최소 프레임 기간(100나노초 단위)입니다. 이 값은 캡처 필터에만 적용됩니다.

MaxFrameInterval

최대 프레임 기간(100나노초 단위)입니다. 이 값은 캡처 필터에만 적용됩니다.

MinBitsPerSecond

이 핀이 생성할 수 있는 최소 데이터 속도입니다.

참고 되지 않는.
 

MaxBitsPerSecond

이 핀이 생성할 수 있는 최대 데이터 속도입니다.

참고 되지 않는.
 

설명

IAMStreamConfig::GetStreamCaps 메서드는 이 구조를 반환합니다. 애플리케이션은 이 정보를 사용하여 비디오 압축 필터 또는 비디오 캡처 필터의 출력 형식을 수정할 수 있습니다.

예를 들어 필터가 원본 사각형에 대해 다음 값을 반환한다고 가정합니다.

  • MinCroppingSize = (160, 120)
  • MaxCroppingSize = (320, 240)
  • CropGranularityX = 4
  • CropGranularityY = 8
  • CropAlignX = 2
  • CropAlignY = 4
이러한 숫자는 VIDEOINFOHEADER 또는 VIDEOINFOHEADER2 구조체의 rcSource 멤버에 유효한 사각형 집합 정의합니다. 이 예제에서 최소 원본 사각형은 너비 160픽셀 x 높이 120픽셀입니다. 너비는 4픽셀의 단계에서 최대 320으로 늘릴 수 있습니다. 8픽셀의 단계에서 최대 240픽셀까지 높이를 늘릴 수 있습니다. 즉, 유효한 너비는 160, 164, 168 ... 320; 유효한 높이는 120, 128, 136 ... 240.

CropAlignXCropAlignY 멤버는 원본 사각형의 왼쪽 위 모서리가 배치할 수 있는 위치를 정의합니다. 예를 들어 이전 값을 고려할 때 다음 사각형은 유효합니다.

  • (0, 0, 160, 120)
  • (2, 0, 162, 120)
  • (2, 8, 162, 128)
비슷한 방식으로 MinOutputSize, MaxOutputSize, OutputGranularityXOutputGranularityY 멤버는 BITMAPINFOHEADER 구조체의 biWidthbiHeight 멤버에 대해 지원되는 값을 정의합니다.

캡처 필터의 경우 MinFrameIntervalMaxFrameInterval 멤버는 VIDEOINFOHEADER 또는 VIDEOINFOHEADER2 구조체의 AvgTimePerFrame 멤버에 지정된 대로 각 프레임의 최소 및 최대 기간을 정의합니다. 필터는 이러한 두 값 사이에 속하는 모든 프레임 속도를 지원하지 않을 수 있습니다. IAMStreamConfig::SetFormat 메서드는 프레임 속도를 필터가 지원하는 가장 가까운 값으로 설정합니다. SetFormat이 성공하면 IAMStreamConfig::GetFormat을 호출하여 실제 프레임 속도를 확인합니다.

요구 사항

   
머리글 strmif.h(Dshow.h 포함)

추가 정보

DirectShow 구조체