DirectShow DirectShow 레퍼런스 인터페이스 IAMStreamConfig GetFormat [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
GetFormat 메서드는, 현재의 출력 포맷 또는 우선 출력 포맷을 얻어온다.
구문
HRESULT GetFormat(
AM_MEDIA_TYPE **pmt
);
파라미터
pmt
[out] AM_MEDIA_TYPE 구조체의 포인터 주소.
반환값
HRESULT 값을 돌려준다. 가능한 값은 다음과 같다.
반환 코드 | 설명 |
S_OK | 성공. |
E_OUTOFMEMORY | 메모리 부족. |
E_POINTER | NULL 포인터값. |
VFW_E_NOT_CONNECTED | 입력 핀이 접속되지 않다. |
주의
핀이 접속되고 있는 경우, 이 메서드는, 핀이 현재 사용하고 있는 포맷을 돌려준다. 그렇지 않은 경우, 이 메서드는, 다음의 핀 접속에 사용하는 핀의 우선 포맷을 돌려준다. 포맷을 설정하기 위해서 이미 IAMStreamConfig::SetFormat 메서드를 호출했을 경우,GetFormat 는 같은 포맷을 돌려준다. 그렇지 않은 경우는,IPin::EnumMediaTypes 메서드에 의해 지정된, 핀의 우선 포맷 리스트의 최초의 포맷을 돌려준다.
이 메서드는,AM_MEDIA_TYPE 구조체에 메모리를 할당해 구조체에 묻어,pmt 인수내에 돌려준다. 호출원래는, 포맷 블록을 포함해 메모리를 릴리즈 할 필요가 있다. base class 라이브러리의 헬퍼-함수 DeleteMediaType 를 사용할 수 있다.
몇개의 압축 필터에서는, 필터의 입력 핀이 접속되지 않은 경우, 이 메서드는 실패한다.
샘플 코드
IAMStreamConfig *pConfig = NULL;
// IAMStreamConfig 에 대해서 출력 핀을 문의한다 (여기에서는 나타나지 않았다).
AM_MEDIA_TYPE *pmt = NULL;
hr = pConfig->GetFormat(&pmt);
if (SUCCEEDED(hr))
{
/* 필요한 정보를 위해서(때문에) 미디어 타입을 조사한다. */
DeleteMediaType(pmt);
}
pConfig->Release();
참조