From 315857dce64b7d1e0e57234f791abe533b18a9e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Thu, 30 Jul 2015 18:43:19 -0400 Subject: [PATCH] oggdemux: Return FLUSHING if pad if flushing If the initial seek fails because the pad is flushing, then return GST_FLOW_FLUSHING instead of an error. --- ext/ogg/gstoggdemux.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c index b758934914..3042fcaa92 100644 --- a/ext/ogg/gstoggdemux.c +++ b/ext/ogg/gstoggdemux.c @@ -4778,9 +4778,18 @@ chain_read_failed: } seek_failed: { - GST_ELEMENT_ERROR (ogg, STREAM, DEMUX, (NULL), - ("failed to start demuxing ogg")); - ret = GST_FLOW_ERROR; + gboolean flushing; + + GST_OBJECT_LOCK (pad); + flushing = GST_PAD_IS_FLUSHING (pad); + GST_OBJECT_UNLOCK (pad); + if (flushing) { + ret = GST_FLOW_FLUSHING; + } else { + GST_ELEMENT_ERROR (ogg, STREAM, DEMUX, (NULL), + ("failed to start demuxing ogg")); + ret = GST_FLOW_ERROR; + } goto pause; } pause: