CBaseAllocator.Alloc 메서드
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
메서드는 Alloc
버퍼에 대한 메모리를 할당합니다.
구문
virtual HRESULT Alloc();
매개 변수
이 메서드에는 매개 변수가 없습니다.
반환 값
다음 HRESULT 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
버퍼 요구 사항은 변경되지 않았습니다. |
|
버퍼 요구 사항이 변경되었습니다. |
|
버퍼 요구 사항이 설정되지 않았습니다. |
설명
이 메서드는 CBaseAllocator::Commit 메서드에 의해 호출됩니다.
기본 클래스에서 이 메서드는 메모리를 할당하지 않습니다. 버퍼 요구 사항이 설정되지 않은 경우 S_FALSE 요구 사항이 변경되지 않은 경우 오류를 반환하고 요구 사항이 변경되었는지 S_OK.
파생 클래스는 실제 메모리 할당을 수행하려면 이 메서드를 재정의해야 합니다. 일반적으로 파생 클래스는 다음 단계를 수행합니다.
- 기본 클래스 구현을 호출하여 메모리에 실제로 할당이 필요한지 여부를 확인합니다.
- 메모리를 할당합니다.
- 2단계에서 메모리 청크를 포함하는 CMediaSample 개체를 만듭니다.
- 무료 샘플 목록에 각 CMediaSample 개체를 추가합니다(CBaseAllocator::m_lFree).
예제는 CMemAllocator::Alloc를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|