다음을 통해 공유


동작 보정 장치 드라이버와 운영 대응

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

이 섹션에는 DirectX VA 인터페이스의 동작 보정 디바이스 드라이버 쪽에 대한 설명이 포함되어 있습니다. (참조:Windows 2000 DDK - 그래픽 드라이버 - 디자인 가이드 - 3.0 DirectDraw DDI - 3.12 동작 보정. 구조체에 대한 설명서는 Windows DDK를 참조하세요.)

다음 항목은 DD_MOTIONCOMPCALLBACKS 구조를 통해 액세스되는 항목을 참조합니다.

  1. 관련 처리가 시작될 때 디바이스 드라이버의 DdMoCompCreate 사용하여 소프트웨어 디코더가 비디오 가속 개체 사용을 시작하도록 드라이버에 알립니다.
  2. IAMVideoAccelerator::GetVideoAcceleratorGUIDs에서 수신된 GUID는 디바이스 드라이버의 DdMoCompGetGUIDs.
  3. 다운스트림 입력 핀의 IAMVideoAccelerator::GetUncompFormatsSupported 대한 호출은 디바이스 드라이버의 DdMoCompGetFormats데이터를 반환합니다.
  4. 디코더의 IAMVideoAcceleratorNotify::GetCreateVideoAcceleratorData DXVA_ConnectMode 데이터 구조는 디바이스 드라이버의 DdMoCompCreate전달됩니다.
  5. IAMVideoAccelerator::GetCompBufferInfo 반환된 데이터는 디바이스 드라이버의 DdMoCompGetBuffInfo.
  6. IAMVideoAccelerator::Execute 사용하여 전송된 버퍼는 디바이스 드라이버의 DdMoCompRender수신됩니다.
  7. IAMVideoAccelerator::QueryRenderStatus 사용하여 디바이스 드라이버의 DdMoCompQueryStatus호출합니다. DdMoCompQueryStatus의 DDERR_WASSTILLDRAWING 반환 코드는 호스트 디코더에서 IAMVideoAccelerator::QueryRenderStatusE_PENDING 반환 코드로 표시됩니다.
  8. IAMVideoAccelerator::BeginFrame 전송된 데이터는 디바이스 드라이버의 DdMoCompBeginFrame수신됩니다. IAMVideoAccelerator::BeginFrame대한 응답으로 호스트 디코더가 E_PENDING 표시하려면 DdMoCompBeginFrame에서 E_PENDING 반환 코드가 필요합니다.
  9. IAMVideoAccelerator::EndFrame 전송된 데이터는 디바이스 드라이버의 DdMoCompEndFrame수신됩니다.
  10. 관련 처리가 끝나면 디바이스 드라이버의 DdMoCompDestroy 사용하여 드라이버가 필요한 정리를 수행할 수 있도록 현재 비디오 가속 개체가 더 이상 사용되지 않음을 드라이버에 알립니다.