[PATCH v2 3/5] winegstreamer: Don't wait for the no-more-pads signal if playback fails.

Andrew Eikum aeikum at codeweavers.com
Thu Feb 22 11:12:59 CST 2018


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>

On Thu, Feb 22, 2018 at 09:06:15AM -0600, Zebediah Figura wrote:
> Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
> ---
>  dlls/winegstreamer/gstdemux.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
> index b4c29db..8ccf0ad 100644
> --- a/dlls/winegstreamer/gstdemux.c
> +++ b/dlls/winegstreamer/gstdemux.c
> @@ -1081,7 +1081,6 @@ static GstBusSyncReply watch_bus(GstBus *bus, GstMessage *msg, gpointer data)
>          gst_message_parse_error(msg, &err, &dbg_info);
>          FIXME("%s: %s\n", GST_OBJECT_NAME(msg->src), err->message);
>          WARN("%s\n", dbg_info);
> -        SetEvent(This->event);
>      } else if (GST_MESSAGE_TYPE(msg) & GST_MESSAGE_WARNING) {
>          gst_message_parse_warning(msg, &err, &dbg_info);
>          WARN("%s: %s\n", GST_OBJECT_NAME(msg->src), err->message);
> @@ -1159,7 +1158,6 @@ static HRESULT GST_Connect(GSTInPin *pPin, IPin *pConnectPin, ALLOCATOR_PROPERTI
>      This->initial = This->discont = TRUE;
>      ResetEvent(This->event);
>      gst_element_set_state(This->container, GST_STATE_PLAYING);
> -    WaitForSingleObject(This->event, -1);
>      ret = gst_element_get_state(This->container, NULL, NULL, -1);
>  
>      if (ret == GST_STATE_CHANGE_FAILURE)
> @@ -1168,6 +1166,8 @@ static HRESULT GST_Connect(GSTInPin *pPin, IPin *pConnectPin, ALLOCATOR_PROPERTI
>          return E_FAIL;
>      }
>  
> +    WaitForSingleObject(This->event, INFINITE);
> +
>      gst_pad_query_duration(This->ppPins[0]->their_src, GST_FORMAT_TIME, &duration);
>      for (i = 0; i < This->cStreams; ++i)
>      {
> -- 
> 2.7.4
> 
> 
> 



More information about the wine-devel mailing list