AVStream 코덱에서 스트림 끝 처리

HW MFT는 EOS(스트림 끝) 플래그가 설정된 샘플을 받으면 해당 샘플에 해당하는 KSSTREAM_HEADER 구조체의 OptionsFlag 멤버에서 KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM 설정합니다.

minidriver가 StreamHeader.OptionsFlag에 설정된 KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM 플래그가 있는 KSSTREAM_POINTER 받으면 미니드라이버가 출력 스트림 포인터에서 KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM 설정할 때까지 입력 핀은 새 입력 스트림 포인터를 수신하지 않습니다.

미니드라이버가 출력 스트림 포인터에서 KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM 설정하기 전에 현재 사용 가능한 입력을 사용하여 가능한 한 많은 출력 프레임을 생성해야 합니다.

그런 다음 미니 드라이버는 이러한 스트림 포인터와 연결된 데이터 외에도 이전에 처리된 스트림 포인터와 관련된 캐시된 정보를 지워야 합니다. 그런 다음 미니 드라이버는 출력 핀에 KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM 설정해야 합니다.

미니 드라이버는 이후에 도착하는 새 입력 스트림 포인터를 새 스트림의 일부로 처리해야 합니다. 미디어 스트림에서 불연속성으로 인해 EOS가 발생하는 경우는 예외입니다. 이 경우 새로 도착하는 스트림 포인터에는 KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY 또는 KSSTREAM_HEADER_OPTIONSF_TIMEDISCONTINUITY 플래그가 KSSTREAM_HEADER 설정됩니다. OptionsFlags. 이러한 플래그 중 하나가 설정된 스트림 포인터가 입력 핀에 도착하면 미니드라이버가 해당 출력 핀의 스트림 포인터에서 동일한 플래그를 설정해야 합니다.