mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
Revert "rtspsrc: Only EOS on timeout if all streams are timed out/EOS"
This reverts commit d186e19568
.
This unearthed a whole bunch of other issues for which lots of
other fixes all over the place were required, so let's revert
the backport into the stable branch for now.
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1530
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3271
Fixes #1532
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3422>
This commit is contained in:
parent
f74e856255
commit
989ac0f0c0
1 changed files with 2 additions and 35 deletions
|
@ -3620,39 +3620,8 @@ on_timeout_common (GObject * session, GObject * source, GstRTSPStream * stream)
|
||||||
GST_WARNING_OBJECT (src, "source %08x, stream %08x in session %u timed out",
|
GST_WARNING_OBJECT (src, "source %08x, stream %08x in session %u timed out",
|
||||||
ssrc, stream->ssrc, stream->id);
|
ssrc, stream->ssrc, stream->id);
|
||||||
|
|
||||||
if (ssrc == stream->ssrc) {
|
if (ssrc == stream->ssrc)
|
||||||
GList *walk;
|
gst_rtspsrc_do_stream_eos (src, stream);
|
||||||
gboolean all_eos = TRUE;
|
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (src, "setting stream for session %u to EOS", stream->id);
|
|
||||||
stream->eos = TRUE;
|
|
||||||
|
|
||||||
/* Only EOS all streams at once if they're all EOS. Otherwise it is
|
|
||||||
* possible for timed out streams to reappear at a later time time: they
|
|
||||||
* might just be inactive currently.
|
|
||||||
*/
|
|
||||||
|
|
||||||
for (walk = src->streams; walk; walk = g_list_next (walk)) {
|
|
||||||
GstRTSPStream *stream = (GstRTSPStream *) walk->data;
|
|
||||||
|
|
||||||
/* Skip streams that were not set up at all */
|
|
||||||
if (!stream->setup)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!stream->eos) {
|
|
||||||
all_eos = FALSE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (all_eos) {
|
|
||||||
GST_DEBUG_OBJECT (src, "sending EOS on all streams");
|
|
||||||
for (walk = src->streams; walk; walk = g_list_next (walk)) {
|
|
||||||
GstRTSPStream *stream = (GstRTSPStream *) walk->data;
|
|
||||||
gst_rtspsrc_stream_push_event (src, stream, gst_event_new_eos ());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -3693,8 +3662,6 @@ on_ssrc_active (GObject * session, GObject * source, GstRTSPStream * stream)
|
||||||
{
|
{
|
||||||
GST_DEBUG_OBJECT (stream->parent, "source in session %u is active",
|
GST_DEBUG_OBJECT (stream->parent, "source in session %u is active",
|
||||||
stream->id);
|
stream->id);
|
||||||
|
|
||||||
stream->eos = FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in a new issue