디코더에 대한 요구 사항

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

VMR에 샘플을 제공하는 디코더는 다음 규칙을 준수해야 합니다.

  • 각 비디오 프레임에 대해 VMR에 전달되는 하나의 하위픽처 프레임이 있어야 합니다. 두 프레임에는 동일한 타임스탬프를 가져야 합니다.
  • 하위 정보가 변경되지 않은 경우 IMemAllocator::GetBuffer 메서드의 AM_GBF_NOTASYNCPOINT 플래그를 사용하여 할당자가 VMR에 전달된 마지막 프레임이 포함된 버퍼를 강제로 반환합니다. 샘플에 새 타임스탬프를 넣고 VMR에 다시 배달하기만 하면 됩니다. 하위 항목의 명성이 비어 있으면 계속 전달해야 합니다. VMR은 빈 프레임을 감지하고 비디오와 혼합하지 않습니다. 이 테스트는 VGA 칩에 의해 수행되며 재생 성능에 영향을 주지 않습니다.
  • 라이브 스트림을 제외한 모든 샘플에는 유효한 시작 및 중지 타임스탬프를 연결해야 합니다. (DVD는 라이브 스트림이 아닙니다.)
  • 미디어 샘플 타임스탬프는 연속되어야 합니다.
  • 디코더는 그래프 작성기에서 사용할 VMR 지원으로 자신을 식별해야 합니다.
  • 이제 하위픽처 스트림에 포함된 픽셀당 알파 값이 포함되어야 합니다. ARGB4444 표면 유형은 하위 작업에 이상적입니다.
  • 하위픽처의 보폭이 표면 너비와 동일하다고 가정하지 마세요. 항상 VMR의 경우는 아닙니다.

DirectX 비디오 가속 정보