[PATCH 4/6] winegstreamer: Also wait for the no-more-pads signal when pausing the filter.

Zebediah Figura z.figura12 at gmail.com
Sat Nov 30 21:17:50 CST 2019


On 11/30/19 7:48 PM, Zebediah Figura wrote:
> Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
> ---
>   dlls/winegstreamer/gstdemux.c | 9 +++++++++
>   1 file changed, 9 insertions(+)
> 
> diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
> index 479077b48f..dc8db85b72 100644
> --- a/dlls/winegstreamer/gstdemux.c
> +++ b/dlls/winegstreamer/gstdemux.c
> @@ -1433,8 +1433,17 @@ static HRESULT WINAPI GST_Run(IBaseFilter *iface, REFERENCE_TIME tStart)
>       }
>   
>       EnterCriticalSection(&This->filter.csFilter);
> +
> +    if (This->no_more_pads_event)
> +        ResetEvent(This->no_more_pads_event);
> +
>       gst_element_set_state(This->container, GST_STATE_PLAYING);
>   
> +    /* Make sure that all of our pads are connected before returning, lest we
> +     * e.g. try to seek and fail. */
> +    if (This->no_more_pads_event)
> +        WaitForSingleObject(This->no_more_pads_event, INFINITE);
> +
>       for (i = 0; i < This->cStreams; i++) {
>           hr = BaseOutputPinImpl_Active(&This->ppPins[i]->pin);
>           if (SUCCEEDED(hr)) {
> 

Please ignore the last three patches in this series; as the test 
failures show I clearly missed a spot.



More information about the wine-devel mailing list