diff --git a/ext/gio/gstgiobasesink.c b/ext/gio/gstgiobasesink.c index 39d76cd37b..6a878717a1 100644 --- a/ext/gio/gstgiobasesink.c +++ b/ext/gio/gstgiobasesink.c @@ -119,6 +119,10 @@ gst_gio_base_sink_start (GstBaseSink * base_sink) GST_ELEMENT_ERROR (sink, RESOURCE, OPEN_WRITE, (NULL), ("No output stream provided by subclass")); return FALSE; + } else if (G_UNLIKELY (g_output_stream_is_closed (sink->stream))) { + GST_ELEMENT_ERROR (sink, LIBRARY, FAILED, (NULL), + ("Output stream is already closed")); + return FALSE; } GST_DEBUG_OBJECT (sink, "started sink"); diff --git a/ext/gio/gstgiobasesrc.c b/ext/gio/gstgiobasesrc.c index 6ef4190949..cfeab575b8 100644 --- a/ext/gio/gstgiobasesrc.c +++ b/ext/gio/gstgiobasesrc.c @@ -130,6 +130,10 @@ gst_gio_base_src_start (GstBaseSrc * base_src) GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (NULL), ("No input stream provided by subclass")); return FALSE; + } else if (G_UNLIKELY (g_input_stream_is_closed (src->stream))) { + GST_ELEMENT_ERROR (src, LIBRARY, FAILED, (NULL), + ("Input stream is already closed")); + return FALSE; } GST_DEBUG_OBJECT (src, "started source");