diff options
-rw-r--r-- | gst-libs/gst/uridownloader/gsturidownloader.c | 49 | ||||
-rw-r--r-- | gst-libs/gst/uridownloader/gsturidownloader.h | 6 |
2 files changed, 21 insertions, 34 deletions
diff --git a/gst-libs/gst/uridownloader/gsturidownloader.c b/gst-libs/gst/uridownloader/gsturidownloader.c index 45f53439a..f0deee6c6 100644 --- a/gst-libs/gst/uridownloader/gsturidownloader.c +++ b/gst-libs/gst/uridownloader/gsturidownloader.c @@ -323,7 +323,7 @@ gst_uri_downloader_set_range (GstUriDownloader * downloader, static gboolean gst_uri_downloader_set_uri (GstUriDownloader * downloader, const gchar * uri, - const gchar * referer, gboolean compress) + const gchar * referer, gboolean compress, gboolean refresh) { GstPad *pad; GObjectClass *gobject_class; @@ -379,10 +379,15 @@ gst_uri_downloader_set_uri (GstUriDownloader * downloader, const gchar * uri, if (g_object_class_find_property (gobject_class, "keep-alive")) g_object_set (downloader->priv->urisrc, "keep-alive", TRUE, NULL); if (g_object_class_find_property (gobject_class, "extra-headers")) { - if (referer) { - GstStructure *extra_headers = - gst_structure_new ("headers", "Referer", G_TYPE_STRING, referer, - NULL); + if (referer || refresh) { + GstStructure *extra_headers = gst_structure_new_empty ("headers"); + + if (referer) + gst_structure_set (extra_headers, "Referer", G_TYPE_STRING, referer, + NULL); + if (refresh) + gst_structure_set (extra_headers, "Cache-Control", G_TYPE_STRING, + "max-age=0", NULL); g_object_set (downloader->priv->urisrc, "extra-headers", extra_headers, NULL); @@ -408,32 +413,16 @@ gst_uri_downloader_set_uri (GstUriDownloader * downloader, const gchar * uri, } GstFragment * -gst_uri_downloader_fetch_uri (GstUriDownloader * downloader, const gchar * uri, - gboolean compress, GError ** err) -{ - return gst_uri_downloader_fetch_uri_with_range_and_referer (downloader, uri, - NULL, compress, 0, -1, err); -} - -GstFragment * -gst_uri_downloader_fetch_uri_with_referer (GstUriDownloader * downloader, - const gchar * uri, const gchar * referer, gboolean compress, GError ** err) -{ - return gst_uri_downloader_fetch_uri_with_range_and_referer (downloader, uri, - referer, compress, 0, -1, err); -} - -GstFragment * -gst_uri_downloader_fetch_uri_with_range (GstUriDownloader * downloader, - const gchar * uri, gboolean compress, gint64 range_start, gint64 range_end, - GError ** err) +gst_uri_downloader_fetch_uri (GstUriDownloader * downloader, + const gchar * uri, const gchar * referer, gboolean compress, + gboolean refresh, GError ** err) { - return gst_uri_downloader_fetch_uri_with_range_and_referer (downloader, uri, - NULL, compress, range_start, range_end, err); + return gst_uri_downloader_fetch_uri_with_range (downloader, uri, + referer, compress, refresh, 0, -1, err); } /** - * gst_uri_downloader_fetch_uri_with_range_and_referer: + * gst_uri_downloader_fetch_uri_with_range: * @downloader: the #GstUriDownloader * @uri: the uri * @range_start: the starting byte index @@ -442,9 +431,9 @@ gst_uri_downloader_fetch_uri_with_range (GstUriDownloader * downloader, * Returns the downloaded #GstFragment */ GstFragment * -gst_uri_downloader_fetch_uri_with_range_and_referer (GstUriDownloader * +gst_uri_downloader_fetch_uri_with_range (GstUriDownloader * downloader, const gchar * uri, const gchar * referer, gboolean compress, - gint64 range_start, gint64 range_end, GError ** err) + gboolean refresh, gint64 range_start, gint64 range_end, GError ** err) { GstStateChangeReturn ret; GstFragment *download = NULL; @@ -461,7 +450,7 @@ gst_uri_downloader_fetch_uri_with_range_and_referer (GstUriDownloader * goto quit; } - if (!gst_uri_downloader_set_uri (downloader, uri, referer, compress)) { + if (!gst_uri_downloader_set_uri (downloader, uri, referer, compress, refresh)) { GST_WARNING_OBJECT (downloader, "Failed to set URI"); goto quit; } diff --git a/gst-libs/gst/uridownloader/gsturidownloader.h b/gst-libs/gst/uridownloader/gsturidownloader.h index e35aee2d5..a087fd1b3 100644 --- a/gst-libs/gst/uridownloader/gsturidownloader.h +++ b/gst-libs/gst/uridownloader/gsturidownloader.h @@ -56,10 +56,8 @@ struct _GstUriDownloaderClass GType gst_uri_downloader_get_type (void); GstUriDownloader * gst_uri_downloader_new (void); -GstFragment * gst_uri_downloader_fetch_uri (GstUriDownloader * downloader, const gchar * uri, gboolean compress, GError ** err); -GstFragment * gst_uri_downloader_fetch_uri_with_range (GstUriDownloader * downloader, const gchar * uri, gboolean compress, gint64 range_start, gint64 range_end, GError ** err); -GstFragment * gst_uri_downloader_fetch_uri_with_referer (GstUriDownloader * downloader, const gchar * uri, const gchar * referer, gboolean compress, GError ** err); -GstFragment * gst_uri_downloader_fetch_uri_with_range_and_referer (GstUriDownloader * downloader, const gchar * uri, const gchar * referer, gboolean compress, gint64 range_start, gint64 range_end, GError ** err); +GstFragment * gst_uri_downloader_fetch_uri (GstUriDownloader * downloader, const gchar * uri, const gchar * referer, gboolean compress, gboolean refresh, GError ** err); +GstFragment * gst_uri_downloader_fetch_uri_with_range (GstUriDownloader * downloader, const gchar * uri, const gchar * referer, gboolean compress, gboolean refresh, gint64 range_start, gint64 range_end, GError ** err); void gst_uri_downloader_reset (GstUriDownloader *downloader); void gst_uri_downloader_cancel (GstUriDownloader *downloader); void gst_uri_downloader_free (GstUriDownloader *downloader); |