IMemAllocator::GetBuffer 메서드(strmif.h)

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

GetBuffer 메서드는 빈 버퍼가 포함된 미디어 샘플을 검색합니다.

구문

HRESULT GetBuffer(
  [out] IMediaSample   **ppBuffer,
  [in]  REFERENCE_TIME *pStartTime,
  [in]  REFERENCE_TIME *pEndTime,
  [in]  DWORD          dwFlags
);

매개 변수

[out] ppBuffer

버퍼의 IMediaSample 인터페이스에 대한 포인터를 받습니다. 호출자는 인터페이스를 해제해야 합니다.

[in] pStartTime

샘플의 시작 시간 또는 NULL에 대한 포인터입니다.

[in] pEndTime

샘플의 종료 시간 또는 NULL에 대한 포인터입니다.

[in] dwFlags

다음 플래그 중 0개 이상의 비트 조합:

플래그 설명
AM_GBF_NOTASYNCPOINT 이 샘플은 동기화 지점이 아닙니다. 이 샘플에서는 동적 형식 변경이 허용되지 않습니다. 오버레이 믹서 또는 VMR에서 호출되는 경우 이 플래그는 반환된 버퍼에 전달된 마지막 이미지와 동일한 이미지가 포함됨을 의미합니다.
AM_GBF_PREVFRAMESKIPPED 이 샘플은 불연속성 이후 첫 번째 샘플입니다. (비디오 렌더러만 이 플래그를 사용합니다.)
AM_GBF_NOWAIT 버퍼를 사용할 수 있게 될 때까지 기다리지 마세요.
AM_GBF_NODDSURFACELOCK 비디오 혼합 렌더러 필터 7과 함께 잠금 해제된 DirectDraw 표면을 요청하는 데 사용됩니다. 자세한 내용은 Direct3D 렌더링 대상 작업을 참조하세요.

반환 값

HRESULT 값을 반환합니다. 가능한 값에는 다음 표에 표시된 값이 포함됩니다.

반환 코드 설명
S_OK
성공.
VFW_E_NOT_COMMITTED
할당자는 커밋 해제됩니다.
VFW_E_TIMEOUT
초과.

설명

기본적으로 이 메서드는 무료 샘플을 사용할 수 있거나 할당자가 커밋 해제될 때까지 차단됩니다. 호출자가 AM_GBF_NOWAIT 플래그를 지정하고 샘플을 사용할 수 없는 경우 할당자는 반환 값이 VFW_E_TIMEOUT 즉시 반환할 수 있습니다. 그러나 할당자는 이 플래그를 지원할 필요가 없습니다.

ppBuffer에서 반환된 샘플에는 유효한 버퍼 포인터가 있습니다. 호출자는 타임스탬프, 미디어 시간 또는 동기화 지점 속성과 같은 샘플의 다른 속성을 설정해야 합니다. (자세한 내용은 IMediaSample을 참조하세요.)

pStartTime 및 pEndTime 매개 변수는 샘플에 적용되지 않습니다. 할당자는 이러한 값을 사용하여 검색하는 버퍼를 결정할 수 있습니다. 예를 들어 Video Renderer 필터는 이러한 값을 사용하여 DirectDraw 표면 간 전환을 동기화합니다. 샘플에서 타임스탬프를 설정하려면 IMediaSample::SetTime 메서드를 호출합니다.

이 메서드를 호출하기 전에 IMemAllocator::Commit 메서드를 호출해야 합니다. IMemAllocator::D ecommit 메서드가 호출된 후 이 메서드가 실패합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 strmif.h(Dshow.h 포함)
라이브러리 Strmiids.lib

추가 정보

오류 및 성공 코드

IMemAllocator 인터페이스