On Mon Oct 16 21:55:32 2023 +0000, Alfred Agrell wrote:
Unfortunately, we do. I had sleeps everywhere during development, then removed every one I could, but that specific one is load-bearing. https://testbot.winehq.org/JobDetails.pl?Key=138782&f101=exe64.report https://testbot.winehq.org/JobDetails.pl?Key=138783&f101=exe64.report I tried swapping it for IBaseFilter_GetState(), but that just returned immediately then gave the same segfault. https://testbot.winehq.org/JobDetails.pl?Key=138786&f101=exe64.report Calling GetState twice worked, but I'm pretty sure that's just because those calls take long enough to satisfy its timing demands. A sleep is cleaner. (Slightly. Still ugly.) I could also move the sleep, but I don't think that would accomplish anything.
Hrm, that's suspicious, IMemAllocator::GetBuffer() returns VFW_E_NOT_COMMITTED. Does the VMR's IMemAllocator change by any chance when we reconnect? I.e. is IMemInputPin::GetAllocator() actually returning the same allocator that it was returning before?