Behandeln des Datenstromendes in AVStream-Codecs
Wenn ein HW MFT ein Beispiel mit einem EOS-Flag (End of Stream) empfängt, wird KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM im OptionsFlag-Member der KSSTREAM_HEADER-Struktur festgelegt, die diesem Beispiel entspricht.
Nachdem der Minitreiber einen KSSTREAM_POINTER mit dem in StreamHeader.OptionsFlag festgelegten KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM-Flag empfängt, empfängt der Eingabepin keine neuen Eingabedatenstromzeiger, bis der Minitreiber KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM für einen Ausgabestreamzeiger festlegt.
Bevor der Minitreiber KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM auf einen Ausgabestreamzeiger festlegt, sollte er mit derzeit verfügbaren Eingaben so viele Ausgabeframes wie möglich generieren.
Der Minitreiber sollte dann alle zwischengespeicherten Informationen im Zusammenhang mit zuvor verarbeiteten Streamzeigern löschen, zusätzlich zu den Daten, die diesen Streamzeigern zugeordnet sind. Anschließend sollte der Minidriver KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM am Ausgabepin festlegen.
Der Minidriver sollte neue Eingabedatenstromzeiger behandeln, die später als Teil eines neuen Datenstroms eingehen. Eine Ausnahme ist, wenn die EOS als Folge einer Diskontinuität im Mediendatenstrom auftritt. Wenn dies der Fall ist, werden für den neu eingehenden Streamzeiger KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY oder KSSTREAM_HEADER_OPTIONSF_TIMEDISCONTINUITY oder beide Flags in KSSTREAM_HEADER festgelegt. OptionsFlags. Wenn Streamzeiger mit einem dieser Flags am Eingabenadel ankommen, muss der Minitreiber die gleichen Flags für den Streamzeiger des entsprechenden Ausgabepins festlegen.