다음을 통해 공유


비디오 샘플

비디오 샘플 개체는 EVR(Enhanced Video Renderer)에서 사용할 IMFSample 인터페이스의 특수 구현입니다. 이 개체의 instance 만들려면 MFCreateVideoSampleFromSurface 함수를 호출합니다. 함수는 Direct3D 표면에 대한 포인터를 사용하고 IMFSample 인터페이스에 대한 포인터를 반환합니다. 다음 유형의 개체는 이 함수를 사용하여 샘플을 할당해야 합니다.

비디오 샘플 개체는 다음 인터페이스를 구현합니다.

MFCreateVideoSampleFromSurfacepUnkSurface 매개 변수가 NULL이 아닌 경우 결과 비디오 샘플에는 Direct3D 표면을 캡슐화하는 단일 미디어 버퍼가 포함됩니다. 이 버퍼 개체에는 제한된 기능이 있습니다.

버퍼에서 표면에 액세스하는 유일한 방법은 서비스 식별자 MR_BUFFER_SERVICE 사용하여 IMFGetService::GetService를 호출하는 것입니다.

pUnkSurface 매개 변수가 NULL이면 미디어 버퍼가 없는 비디오 샘플이 만들어집니다. 샘플 버퍼를 추가하려면 다음을 수행합니다.

  1. Direct3D 표면을 만듭니다.

  2. MFCreateDXSurfaceBuffer를 호출하여 표면 버퍼를 만듭니다. 자세한 내용은 DirectX Surface 버퍼를 참조하세요.

  3. IMFSample::AddBuffer를 호출하여 샘플에 버퍼를 추가합니다.

IMF2DBuffer 인터페이스를 통해 Surface 메모리에 액세스할 수 있어야 하는 경우 이 방법을 사용합니다.

미디어 버퍼

미디어 샘플