CBaseAllocator.Alloc 메서드

메서드는 Alloc 버퍼에 대한 메모리를 할당합니다.

구문

virtual HRESULT Alloc();

매개 변수

이 메서드에는 매개 변수가 없습니다.

반환 값

다음 HRESULT 값 중 하나를 반환합니다.

반환 코드 설명
S_FALSE
버퍼 요구 사항은 변경되지 않았습니다.
S_OK
버퍼 요구 사항이 변경되었습니다.
VFW_E_SIZENOTSET
버퍼 요구 사항이 설정되지 않았습니다.

설명

이 메서드는 CBaseAllocator::Commit 메서드에 의해 호출됩니다.

기본 클래스에서 이 메서드는 메모리를 할당하지 않습니다. 버퍼 요구 사항이 설정되지 않은 경우 오류를 반환하고, 요구 사항이 변경되지 않은 경우 S_FALSE, 요구 사항이 변경되었는지 S_OK.

파생 클래스는 실제 메모리 할당을 수행하려면 이 메서드를 재정의해야 합니다. 일반적으로 파생 클래스는 다음 단계를 수행합니다.

  1. 기본 클래스 구현을 호출하여 메모리를 실제로 할당해야 하는지 여부를 확인합니다.
  2. 메모리를 할당합니다.
  3. 2단계에서 메모리 청크를 포함하는 CMediaSample 개체를 만듭니다.
  4. 무료 샘플 목록에 각 CMediaSample 개체를 추가합니다(CBaseAllocator::m_lFree).

예제는 CMemAllocator::Alloc를 참조하세요.

요구 사항

요구 사항
헤더
Amfilter.h(스트림.h 포함)
라이브러리
Strmbase.lib(소매 빌드);
Strmbasd.lib(디버그 빌드)

추가 정보

CBaseAllocator 클래스