AVStream에서 처리 다시 시작

다음 조건 중 하나라도 충족되면 AVStream에서 처리를 중지합니다.

  • 핀 중심 환경에서는 현재 핀에서 사용할 수 있는 데이터가 없습니다.

  • 필터 중심 환경에서는 KSPIN_DESCRIPTOR_EX 구조의 Flags 멤버가 KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING 설정되지 않은 핀 하나 이상에는 처리 대기 중인 데이터가 없습니다. 기본적으로 이 플래그는 설정되지 않습니다.

  • 미니드라이버의 처리 디스패치 콜백 루틴은 프레임 가용성에 관계없이 STATUS_PENDING 반환합니다. 미니드라이버가 핀 중심 처리 또는 필터 중심 처리를 구현하는지 여부에 따라 처리 디스패치는 AVStrMiniFilterProcess 또는 AVStrMiniPinProcess일 수 있습니다.

AVStream은 새 데이터가 이전에 빈 큐에 도착하면 처리를 시작합니다. 따라서 연결된 큐가 가득 찼을 때 미니드라이버의 처리 디스패치가 STATUS_PENDING 반환하는 경우 미니드라이버가 처리를 다시 시작하도록 호출되지 않습니다. 미니 드라이버가 STATUS_PENDING 설정하는 경우 미니 드라이버는 KsPinAttemptProcessing 또는 KsFilterAttemptProcessing을 호출하여 처리를 다시 시작해야 합니다.

미니드라이버가 실제로 데이터를 처리하지 않는 경우 처리 디스패치에서 STATUS_SUCCESS 반환하지 마세요. 이로 인해 AVStream이 즉시 미니드라이버를 다시 호출하므로 AVStream과 처리 디스패치 간에 무한 루프가 발생합니다.