From 4c89fab3908a5ff94a6218a207988b169fcbddd2 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Mon, 1 Jul 2013 18:22:46 -0300 Subject: [PATCH] dash: save 1 or 2 string copies when getting fragment uris Only create new string if required, saving maybe 1 or 2 str copies per fragment. --- ext/dash/gstmpdparser.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ext/dash/gstmpdparser.c b/ext/dash/gstmpdparser.c index 05fed03..cedb4a2 100644 --- a/ext/dash/gstmpdparser.c +++ b/ext/dash/gstmpdparser.c @@ -3356,19 +3356,25 @@ gst_mpd_client_get_next_fragment (GstMpdClient * client, } else if (strncmp (mediaURL, "http://", 7) != 0) { fragment->uri = g_strconcat (stream->baseURL, mediaURL, stream->queryURL, NULL); - } else { + g_free (mediaURL); + } else if (stream->queryURL) { fragment->uri = g_strconcat (mediaURL, stream->queryURL, NULL); + g_free (mediaURL); + } else { + fragment->uri = mediaURL; } - g_free (mediaURL); if (indexURL != NULL) { if (strncmp (indexURL, "http://", 7) != 0) { fragment->index_uri = g_strconcat (stream->baseURL, indexURL, stream->queryURL, NULL); - } else { + g_free (indexURL); + } else if (stream->queryURL) { fragment->index_uri = g_strconcat (indexURL, stream->queryURL, NULL); + g_free (indexURL); + } else { + fragment->index_uri = indexURL; } - g_free (indexURL); } else if (fragment->index_range_start || fragment->index_range_end != -1) { /* index has no specific URL but has a range, we should only use this if * the media also has a range, otherwise we are serving some data twice -- 2.7.4