diff --git a/subprojects/gst-plugins-good/gst/multifile/gstimagesequencesrc.c b/subprojects/gst-plugins-good/gst/multifile/gstimagesequencesrc.c index 3d59ec74a7..da96ee2af4 100644 --- a/subprojects/gst-plugins-good/gst/multifile/gstimagesequencesrc.c +++ b/subprojects/gst-plugins-good/gst/multifile/gstimagesequencesrc.c @@ -46,6 +46,7 @@ #include #include +#include #include "gstimagesequencesrc.h" @@ -564,7 +565,12 @@ gst_image_sequence_src_get_filename (GstImageSequenceSrc * self) gchar *filename; GST_DEBUG ("Reading filename at index %d.", self->index); - filename = g_strdup_printf (self->path, self->index); + if (self->path != NULL) { + filename = g_strdup_printf (self->path, self->index); + } else { + GST_WARNING_OBJECT (self, "No filename location set!"); + filename = NULL; + } return filename; } @@ -604,7 +610,7 @@ gst_image_sequence_src_create (GstPushSrc * src, GstBuffer ** buffer) UNLOCK (self); if (!filename) - goto handle_error; + goto error_no_filename; ret = g_file_get_contents (filename, &data, &size, &error); if (!ret) @@ -645,6 +651,12 @@ gst_image_sequence_src_create (GstPushSrc * src, GstBuffer ** buffer) self->index += self->reverse ? -1 : 1; return GST_FLOW_OK; +error_no_filename: + { + GST_ELEMENT_ERROR (self, RESOURCE, NOT_FOUND, + (_("No file name specified for reading.")), (NULL)); + return GST_FLOW_ERROR; + } handle_error: { if (error != NULL) { diff --git a/subprojects/gst-plugins-good/gst/multifile/gstmultifilesrc.c b/subprojects/gst-plugins-good/gst/multifile/gstmultifilesrc.c index 48221b9ada..e984e85dd4 100644 --- a/subprojects/gst-plugins-good/gst/multifile/gstmultifilesrc.c +++ b/subprojects/gst-plugins-good/gst/multifile/gstmultifilesrc.c @@ -46,7 +46,7 @@ #endif #include "gstmultifilesrc.h" - +#include static GstFlowReturn gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer); @@ -392,7 +392,12 @@ gst_multi_file_src_get_filename (GstMultiFileSrc * multifilesrc) gchar *filename; GST_DEBUG ("%d", multifilesrc->index); - filename = g_strdup_printf (multifilesrc->filename, multifilesrc->index); + if (multifilesrc->filename != NULL) { + filename = g_strdup_printf (multifilesrc->filename, multifilesrc->index); + } else { + GST_WARNING_OBJECT (multifilesrc, "No filename location set!"); + filename = NULL; + } return filename; } @@ -424,6 +429,9 @@ gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer) filename = gst_multi_file_src_get_filename (multifilesrc); + if (!filename) + goto error_no_filename; + GST_DEBUG_OBJECT (multifilesrc, "reading from file \"%s\".", filename); ret = g_file_get_contents (filename, &data, &size, &error); @@ -472,6 +480,12 @@ gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer) *buffer = buf; return GST_FLOW_OK; +error_no_filename: + { + GST_ELEMENT_ERROR (multifilesrc, RESOURCE, NOT_FOUND, + (_("No file name specified for reading.")), (NULL)); + return GST_FLOW_ERROR; + } handle_error: { if (error != NULL) {