AVStream コーデックのストリームの終了処理

HW MFT は、ストリームの終了 (EOS) フラグが設定されたサンプルを受け取ると、そのサンプルに対応する KSSTREAM_HEADER 構造体の OptionsFlag メンバーに KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM を設定します。

ミニドライバーが 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。 これらのフラグのいずれかが設定されたストリーム ポインターが入力ピンに到着した場合、ミニドライバーは、対応する出力ピンのストリーム ポインターに同じフラグを設定する必要があります。