Nikolay Sivov (@nsivov) commented about dlls/mf/tests/mf.c:
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + IMFSample_Release(first_sample); + + nonthin_sample_desc.sample_time += first_sample_time; + for (UINT i = 0; i < 3; i++) + thin_sample_desc[i].sample_time += first_sample_time; + } + + /* test thinned */ + + thin_sample_desc[1].todo_time = TRUE; + thin_sample_desc[2].todo_time = TRUE; + + grab_samples_from_start(session, callback, grabber_callback, 3); + check_mf_sample_collection(grabber_callback->samples, thin_sample_desc, L"rgb32-3frames.bmp"); This is again too complicated and potentially unrelated. Source is responsible for acting on a thinning request, whatever samples it produces after makes no difference to pipeline logic, comparing to a regular playback.
What we need to test is that SetRate(thin=true) propagates to sources, and that MESessionRateChanged is raised accordingly. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8184#note_105012