IMFTransform::SetOutputBounds 메서드(mftransform.h)
클라이언트가 출력에 필요한 타임스탬프를 설정합니다.
구문
HRESULT SetOutputBounds(
LONGLONG hnsLowerBound,
LONGLONG hnsUpperBound
);
매개 변수
hnsLowerBound
가장 빠른 타임스탬프를 지정합니다. MFT(Media Foundation 변환)는 현재 시작되는 출력 샘플을 생성할 때까지 입력을 허용합니다. 또는 이 시간 이상에서 끝나는 샘플을 생성할 수 있습니다. 하한이 없으면 MFT_OUTPUT_BOUND_LOWER_UNBOUNDED 값을 사용합니다.
hnsUpperBound
최신 타임스탬프를 지정합니다. MFT는 이 시간보다 늦게 타임스탬프가 있는 출력 샘플을 생성하지 않습니다. 상한이 없으면 MFT_OUTPUT_BOUND_UPPER_UNBOUNDED 값을 사용합니다.
반환 값
이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.
반환 코드 | Description |
---|---|
|
메서드가 성공했습니다. |
|
구현되지 않았습니다. |
|
미디어 유형이 하나 이상의 스트림에서 설정되지 않았습니다. |
설명
이 메서드를 사용하여 사전 등록을 최적화할 수 있습니다. 특히 타임스탬프를 사이의 간격이 있는 형식 또는 MPEG-2와 같은 동기화 지점에서 데이터를 시작해야 하는 형식에서 사용할 수 있습니다. 이 메서드를 호출하는 것은 선택 사항이며 MFT에서 이 메서드를 구현하는 것은 선택 사항입니다. MFT가 메서드를 구현하지 않으면 반환 값이 E_NOTIMPL.
MFT가 이 메서드를 구현하는 경우 출력 데이터를 hnsLowerBound 및 hnsUpperBound로 지정된 시간 범위로 제한해야 합니다. MFT는 이 범위 내에서 출력을 생성하는 데 필요하지 않은 모든 입력 데이터를 삭제합니다. 샘플 경계가 범위와 정확히 일치하지 않는 경우 MFT는 가능한 경우 출력 샘플을 분할해야 합니다. 그렇지 않으면 출력 샘플이 범위와 겹칠 수 있습니다.
예를 들어 출력 범위가 100~150밀리초(밀리초)이고 출력 형식이 각 프레임이 33ms인 비디오라고 가정합니다. 타임스탬프가 67ms인 샘플은 범위(67 + 33 = 100)와 겹치며 출력으로 생성됩니다. 타임스탬프가 66ms인 샘플은 삭제됩니다(66 + 33 = 99). 마찬가지로 타임스탬프가 150ms인 샘플은 출력으로 생성되지만 타임스탬프가 151인 샘플은 삭제됩니다.
mftransform.h를 포함하기 전에 MFT_UNIQUE_METHOD_NAMES 정의된 경우 이 메서드의 이름은 MFTSetOutputBounds로 바뀝니다. 하이브리드 DMO/MFT 개체 만들기를 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | mftransform.h |
라이브러리 | Mfuuid.lib |