AVStream 코덱에서 하드웨어 매체 사용

프라이빗 매체를 지원하는 AVStream 미니드라이버가 시스템 메모리로 중간 전송 없이 디바이스 하드웨어의 데이터를 전송할 수 있습니다.

특히 두 필터가 동일한 프라이빗 매체 및 중간 instance 공유하는 경우 Media Foundation은 디바이스 하드웨어에서만 미디어를 전송합니다. 이 전송은 시스템 메모리에 함수를 가져오지 않고 발생합니다. 예를 들어 동일한 디바이스의 디코더와 인코더는 프라이빗 매체를 공유할 수 있으므로 성능이 크게 향상됩니다.

프라이빗 매체를 사용하려면 미니드라이버가 핀의 AVStrMiniPinProcess 함수에서 다음을 수행해야 합니다.

  1. 핀 연결에 대해 드라이버의 사용자 지정 매체를 선택한 경우(예: 핀의 미디어가 KSMEDIUMSETID_Standard 않음) 드라이버는 프라이빗 버스를 통해 데이터를 라우팅해야 합니다. AVStream은 사용자 지정 매체를 사용하여 연결된 핀에 스트림 포인터 전송을 사용하도록 설정하지 않습니다.

  2. 드라이버는 KsPinGetConnectedPinFileObject를 호출하여 연결된 핀을 확인할 수 있습니다.

  3. 그런 다음 드라이버는 버퍼에서 작업을 수행하고 사용자 지정 매체를 통해 연결된 핀/필터 개체로 라우팅할 수 있습니다.