GstMssStreamFragment *previous_fragment = NULL;
guint fragment_number = 0;
guint64 fragment_time_accum = 0;
- GError *gerror = NULL;
stream->xmlnode = node;
stream->current_fragment = stream->fragments;
stream->current_quality = stream->qualities;
- stream->regex_bitrate = g_regex_new ("\\{[Bb]itrate\\}", 0, 0, &gerror);
- stream->regex_position = g_regex_new ("\\{start[ _]time\\}", 0, 0, &gerror);
+ stream->regex_bitrate = g_regex_new ("\\{[Bb]itrate\\}", 0, 0, NULL);
+ stream->regex_position = g_regex_new ("\\{start[ _]time\\}", 0, 0, NULL);
}
GstMssManifest *
gchar *prop = (gchar *) xmlGetProp (stream->xmlnode, (xmlChar *) "Type");
GstMssStreamType ret = MSS_STREAM_TYPE_UNKNOWN;
+ if (prop == NULL)
+ return MSS_STREAM_TYPE_UNKNOWN;
+
if (strcmp (prop, "video") == 0) {
ret = MSS_STREAM_TYPE_VIDEO;
} else if (strcmp (prop, "audio") == 0) {
guint8 *data;
gint nl;
+ if (GST_BUFFER_SIZE (sps) < 4)
+ return NULL;
+
sps_size += GST_BUFFER_SIZE (sps) + 2;
profile_idc = GST_BUFFER_DATA (sps)[1];
profile_comp = GST_BUFFER_DATA (sps)[2];
g_value_reset (&sps_value);
g_value_reset (&pps_value);
- gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, buffer, NULL);
- gst_buffer_unref (buffer);
+ if (buffer != NULL) {
+ gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, buffer, NULL);
+ gst_buffer_unref (buffer);
+ }
}
static GstCaps *
g_free (tmp);
g_free (start_time_str);
+
+ if (*url == NULL)
+ return GST_FLOW_ERROR;
+
return GST_FLOW_OK;
}