Do we know for sure that Flush() is used during seeking?
I just confirmed. I created an IMFMediaSession with a mock source, mock MFT and mock sink, if I call `IMFMediaSession::Pause` and then `IMFMediaSession::Start` with specific time I see the following: ``` 10410.469939|09800|transform_mock_ProcessMessage: Flush 10410.469975|03592|source_mock_Start: MEUpdatedStream 10410.470066|03592|transform_mock_ProcessOutput: need more input 10410.470078|03592|stream_mock_RequestSample: Work item scheduled 0000000000000000 10410.470171|09800|sink_mock_Flush: . 10410.470195|09800|clock_sink_OnClockStart: . ```
So it: 1. Flushes the MFT; 2. Starts the source; 3. Requests output from the MFT (which is probably related to an outstanding sink request. This is something I think we might still need to implement); 4. Requests a sample from the source stream (likely due to `MF_E_TRANSFORM_NEED_MORE_INPUT`) 5. Flushes the Sink (where I believe `IAudioClient_Reset` is called) 6. Starts the clock on the sink
In contrast, if I just restart without a seek (i.e. use current time) I get: ``` 9198.091103|03596|source_mock_Start: MEUpdatedStream 9198.091297|15820|clock_sink_OnClockStart: . ```
So no flushing or requesting of new samples.