DirectShow DirectShow 레퍼런스 DirectShow 구조체 VIDEOINFOHEADER [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
VIDEOINFOHEADER 구조체는, 비디오 이미지의 비트 맵과 색정보를 기술한다.
구문
typedef struct tagVIDEOINFOHEADER {
RECT rcSource,
RECT rcTarget;
DWORD dwBitRate;
DWORD dwBitErrorRate;
REFERENCE_TIME AvgTimePerFrame;
BITMAPINFOHEADER bmiHeader;
} VIDEOINFOHEADER;
멤버
rcSource
전송원비디오 윈도우를 지정하는 RECT 구조체. 소스 비디오 스트림의 일부를 선택하기 위해(때문에), 이 구조체를 클리핑 직사각형이라고 해도 좋다.
rcTarget
목적지 비디오 윈도우를 지정하는 RECT 구조체.
dwBitRate
비디오 스트림의 대체로의 데이터 레이트 (비트/초).
dwBitErrorRate
데이터 에러 레이트 (비트 에러/초) .
AvgTimePerFrame
필요한 비디오 프레임의 평균 표시 시간 (100 나노초단위) . 실제의 프레임 근처의 표시 시간은 길어질 가능성이 있다. 「주의」를 참조.
bmiHeader
비디오 이미지의 비트 맵의 색정보 및 넓이 정보가 저장 된 BITMAPINFOHEADER 구조체. 포맷 블록에 컬러 테이블 또는 색마스크가 포함되는 경우는,bmiHeader 멤버의 곧 뒤로 계속된다. 최초의 컬러 엔트리를 얻어오려면, 멤버의 주소를 BITMAPINFO 포인터에 캐스트 한다.
주의
rcSource 멤버와 rcTarget 멤버의 사용법의 더 자세한 정보는, 「비디오 렌더러에 있어서의 전송원직사각형과 목적지 직사각형」을 참조할것.
frame rate
AvgTimePerFrame 의 값은 보통, 소스 필터가 설정한다. 소스 필터는 미디어 스트림으로부터 값을 얻어온다. 이 값을 사용해 생성시의 frame rate를 계산할 수 있다. 생성시의 frame rate란, 비디오를 렌더링하기 위한 frame rate이다. 재생중은, 시스템은 생성시의 레이트로 스트림을 렌더링 할 수 없는 것도 있으므로, 실제의 frame rate는 이것보다 작은 일이 있다. 이러한 상황은, 머신의 리소스가 과잉에 위탁되었을 경우에 일어날 수 있다. 또, 모니터의 refresh rate가 비디오의 재생 레이트에 영향을 줄 가능성도 있다. 예를 들어, 목적의 레이트가 60,000/1001 (NTSC TV)로 모니터의 refresh rate가 60Hz 로 하면, 목적의 레이트와 실제의 레이트는 결코 일치하지 않는다. 재생시에 달성한 실제의 frame rate를 얻어오려면, 비디오 렌더러의 IQualProp::get_AvgFrameRate 메서드를 사용한다.
재생시에, 애플리케이션은 다음의 방법으로 생성시의 frame rate를 취득할 수 있다.
비디오 파일의 생성시의 frame rate를 렌더링 하지 않고 얻어오려면,IMediaDet::get_FrameRate 를 사용하는 것.
참조