mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
mssdemux: avoid deadlocking when erroring
It might get stuck when posting the message while a reconfigure event is being pushed upstream
This commit is contained in:
parent
a1f87d0b4f
commit
ce7319c62d
1 changed files with 11 additions and 4 deletions
|
@ -1519,9 +1519,7 @@ gst_mss_demux_download_loop (GstMssDemuxStream * stream)
|
||||||
if (ret <= GST_FLOW_ERROR) {
|
if (ret <= GST_FLOW_ERROR) {
|
||||||
GST_WARNING_OBJECT (mssdemux, "Error while downloading fragment");
|
GST_WARNING_OBJECT (mssdemux, "Error while downloading fragment");
|
||||||
if (++stream->download_error_count >= MAX_DOWNLOAD_ERROR_COUNT) {
|
if (++stream->download_error_count >= MAX_DOWNLOAD_ERROR_COUNT) {
|
||||||
GST_ELEMENT_ERROR (mssdemux, RESOURCE, NOT_FOUND,
|
goto download_error;
|
||||||
(_("Couldn't download fragments")),
|
|
||||||
("fragment downloading has failed too much consecutive times"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1532,13 +1530,22 @@ gst_mss_demux_download_loop (GstMssDemuxStream * stream)
|
||||||
gst_mss_demux_stream_push_event (stream, gst_event_new_eos ());
|
gst_mss_demux_stream_push_event (stream, gst_event_new_eos ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
end:
|
||||||
GST_LOG_OBJECT (stream->pad, "download loop end");
|
GST_LOG_OBJECT (stream->pad, "download loop end");
|
||||||
return;
|
return;
|
||||||
|
|
||||||
cancelled:
|
cancelled:
|
||||||
{
|
{
|
||||||
GST_DEBUG_OBJECT (stream->pad, "Stream has been cancelled");
|
GST_DEBUG_OBJECT (stream->pad, "Stream has been cancelled");
|
||||||
return;
|
goto end;
|
||||||
|
}
|
||||||
|
download_error:
|
||||||
|
{
|
||||||
|
GST_OBJECT_UNLOCK (mssdemux);
|
||||||
|
GST_ELEMENT_ERROR (mssdemux, RESOURCE, NOT_FOUND,
|
||||||
|
(_("Couldn't download fragments")),
|
||||||
|
("fragment downloading has failed too much consecutive times"));
|
||||||
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue