On Thu Jan 15 19:46:05 2026 +0000, Nikolay Sivov wrote:
Does it mean that setting url/media item is enough to start the pipeline internally? Any indication if it's paused immediately, or something else is going on? 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. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9719#note_127251