Skip to content

mf: Restart transforms and sinks on seek.

Brendan McGrath requested to merge redmcg/wine:bm_cw_25191_seek into master

This MR fixes seek in VRChat by copying the sequence of flushes/stop/starts that Windows does.

The order on Windows is:

  1. Stop sources;
  2. Flush MFTs;
  3. Start sources;
  4. Request output down the chain of sink inputs;
  5. Flush sinks; and
  6. Start the clock

This takes place whether we pause before we seek or seek without pause.

Changes in version 2:

  1. Add test to see when SAR requests new samples;
  2. Add test to examine when step 4 from above takes place;
  3. Adjust the seek implementation in mf/session.c to match findings from the new tests;
  4. Adjust mfmediaengine to reflect findings from the new tests;
  5. Refactored if statement in session_start to be a switch again
Edited by Brendan McGrath

Merge request reports

Loading