DirectShow DirectShow 레퍼런스 DirectShow 구조체 VIDEO_STREAM_CONFIG_CAPS   [목차열람] [주소복사] [슬롯비우기]
VIDEO_STREAM_CONFIG_CAPS 구조체
 
Microsoft DirectX 9.0

VIDEO_STREAM_CONFIG_CAPS 구조체

VIDEO_STREAM_CONFIG_CAPS 구조체는, 일정한 범위내의 비디오 포맷을 기술한다. 비디오 압축 필터나 비디오 캡춰 필터는 이 구조체를 사용해, 생성할 수 있는 포맷을 기술한다.

구문

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

전송원직사각형의 수평 방향의 세분도. 이 값에는,MinCroppingSizeMaxCroppingSize 의 사이에 유효한 증분을 지정한다.

CropGranularityY

전송원직사각형의 수직 방향의 세분도. 이 값에는,MinCroppingSizeMaxCroppingSize 의 사이에 유효한 증분을 지정한다.

CropAlignX

전송원직사각형에 필요한 수평 방향의 alignment.

CropAlignY

전송원직사각형에 필요한 수직 방향의 alignment.

MinOutputSize

최소 출력 사이즈.

MaxOutputSize

최대 출력 사이즈.

OutputGranularityX

출력의 폭의 세분도. 이 값에는,MinOutputSizeMaxOutputSize 의 사이에 유효한 증분을 지정한다.

OutputGranularityY

출력의 높음의 세분도. 이 값에는,MinOutputSizeMaxOutputSize 의 사이에 유효한 증분을 지정한다.

StretchTapsX

필터가 이미지를 수평 방향으로 신장 할 수 있는 길이를 나타낸다.

StretchTapsY

필터가 이미지를 수직 방향으로 신장 할 수 있는 길이를 나타낸다.

ShrinkTapsX

필터가 이미지를 수평 방향으로 축소할 수 있는 길이를 나타낸다.

ShrinkTapsY

필터가 이미지를 수직 방향으로 축소할 수 있는 길이를 나타낸다.

위에의 4 개의 구조체 멤버는, 다음의 값을 사용한다.

설명
0 신장/축소를 지원 하고 있지 않다.
1 픽셀 더블링 (신장)을 사용하는지, 또는 픽셀을 제거 (축소)한다.
2 보간 (탭수 2)을 사용한다.
3 이상 보간 (탭수 2 보다 크다)을 사용한다.

MinFrameInterval

최소의 프레임 시간폭 (100 나노초단위). 이 값은, 캡춰 필터에만 적용된다.

MaxFrameInterval

최대의 프레임 시간폭 (100 나노초단위). 이 값은, 캡춰 필터에만 적용된다.

MinBitsPerSecond

이 핀을 생성할 수 있는 최소의 데이터 레이트.

MaxBitsPerSecond

이 핀을 생성할 수 있는 최대의 데이터 레이트.

주의

IAMStreamConfig::GetStreamCaps 메서드는 이 구조체를 돌려준다. 애플리케이션은 이 정보를 사용해, 비디오 압축 필터 또는 비디오 캡춰 필터의 출력 포맷을 수정할 수 있다.

예를 들어, 필터가 전송원직사각형에 대해 다음의 값을 돌려주어 온다고 한다.

이러한 수치에 의해,VIDEOINFOHEADER 구조체 또는 VIDEOINFOHEADER2 구조체의 rcSource 멤버로서 유효한 일련의 직사각형이 정의된다. 이 예에서는, 최소의 전송원직사각형은 폭 160 픽셀 × 높이 120 픽셀이다. 폭은 4 픽셀 간격으로 최대 320 픽셀까지 신장 할 수 있다. 높이는 8 픽셀 간격으로 최대 240 픽셀까지 신장 할 수 있다. 즉, 유효한 폭과는 160, 164, 168 ... 320 이며, 유효한 높이란, 120, 128, 136 ... 240 이다.

CropAlignX 멤버 및 CropAlignY 멤버에 의해, 전송원직사각형의 맨 왼쪽 위쪽의 위치가 정의된다. 예를 들어, 전의 값을 전제와 하면, 다음의 직사각형이 유효하다.

똑같이,MinOutputSize 멤버,MaxOutputSize 멤버,OutputGranularityX 멤버,OutputGranularityY 멤버에 의해,BITMAPINFOHEADER 구조체의 biWidth 멤버 및 biHeight 멤버에 대해 지원 되고 있는 유효한 값이 정의된다.

캡춰 필터의 경우,VIDEOINFOHEADER 구조체 또는 VIDEOINFOHEADER2 구조체의 AvgTimePerFrame 멤버로 값이 지정되고 있으면 가정해,MinFrameInterval 멤버 및 MaxFrameInterval 멤버에 의해 각 프레임의 최소 시간폭 및 최대 시간폭이 정의된다. 필터가 이것들 2 개의 값의 사이에 들어가는 frame rate를 모두 지원 하고 있다고는 할 수 없다. IAMStreamConfig::SetFormat 메서드는, frame rate에 필터가 지원 하는 값에 가장 가까운 값을 설정한다. SetFormat 가 성공했을 경우는,IAMStreamConfig::GetFormat 를 호출해 실제의 frame rate를 특정한다.

참조

↑TOP