[PATCH 1/2] strmbase: Leave critical section when waiting for the renderer state change.

Anton Baskanov baskanov at gmail.com
Sun Jun 6 23:17:26 CDT 2021


There is also one in pin_ConnectedTo, which is called like this:

sink_EndOfStream() -> sink_eos() -> strmbase_passthrough_eos()
-> MediaSeekingPassThru_GetStopPosition() -> get_connected() 
-> pin_ConnectedTo().

It is this one that causes problems for me. We should probably get rid of both 
to fix the test failures.

On суббота, 5 июня 2021 г. 05:02:09 +07 you wrote:
> On 5/28/21 2:05 AM, Anton Baskanov wrote:
> > Sometimes streaming thread gets stuck in IPin::EndOfStream trying to
> > acquire the filter critical section for more than 1 second, causing
> > intermittent test failures.
> > 
> > Signed-off-by: Anton Baskanov <baskanov at gmail.com>
> 
> Sorry for the late review.
> 
> The streaming thread shouldn't be doing that; that's basically one of
> the underdocumented rules of quartz, you can't access the filter CS from
> the streaming thread.
> 
> I'm presuming this is the part where it tries to check "pin->flushing";
> this is basically wrong as-is, but it needs some extra work to solve,
> including (ideally) wineqtdecoder either being restructured or going
> away entirely.







More information about the wine-devel mailing list