On Sat Jan 17 00:11:43 2026 +0000, Brendan McGrath wrote:
Yep. I have a test app using the `MF_MEDIA_ENGINE_EXTENSION`. Here's the relevant output: ``` 1178.781125|09504|WinMain: SetSource 0 1178.789417|04504|extension_BeginCreateObject 1178.910865|04504|extension_EndCreateObject: hr 0 1179.127780|04504|rate_control_SetRate: hr 0, thin 0, rate 0.000000 1179.129822|04504|media_source_Start 1179.151951|12024|audio|media_stream_RequestSample: hr 0 1179.152564|06964|video|media_stream_RequestSample: hr 0 1179.169550|04504|engine_notify_EventNotify: 1009 (MF_MEDIA_ENGINE_EVENT_FIRSTFRAMEREADY) 1179.202141|12028|media_source_Pause: hr 0 1179.204330|04504|rate_control_SetRate: hr 0, thin 0, rate 1.000000 ``` So after calling `IMFMediaEngine::SetSource` (I never call `Play` in this test), it immediately: - creates the media source - sets rate to 0 (via `IMFRateControl::SetRate`) - calls `IMFMediaSource::Start` - requests samples from both streams (more than one from each, but I've only included one from each in the relevant output) - post the `FIRSTFRAMEREADY` event - pause - set rate back to 1 Do you think it is worth implementing the `MF_MEDIA_ENGINE_EXTENSION` just so I can add wine tests against it? Alternatively, I could use an MFT (as suggested by @besentv). For now I've also included a test to show that the `FIRSTFRAMEREADY` event is not sent prior to the `SetSource` call. It depends on how much extra code this implies. I think having a test program outside of wine tests is enough for something so involved. Is the plan to implement correct startup sequence, to match these discoveries? Since this is obviously visible with user extension code.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/9719#note_127712