From d74ceb343aea60c6f3dea76bb90e7730682c6e8b Mon Sep 17 00:00:00 2001 From: Jonathan Karlsson Date: Mon, 18 Jun 2018 13:01:50 +0200 Subject: [PATCH] curlhttpsink: Support for multipart/form-data Content-Type Add support to set multipart/form-data as Content-Type by sending a caps event to the curlhttpsink with a field named "boundary". https://bugzilla.gnome.org/show_bug.cgi?id=796618 --- ext/curl/gstcurlhttpsink.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ext/curl/gstcurlhttpsink.c b/ext/curl/gstcurlhttpsink.c index 3df2555743..657a40d682 100644 --- a/ext/curl/gstcurlhttpsink.c +++ b/ext/curl/gstcurlhttpsink.c @@ -466,7 +466,16 @@ gst_curl_http_sink_set_mime_type (GstCurlBaseSink * bcsink, GstCaps * caps) structure = gst_caps_get_structure (caps, 0); mime_type = gst_structure_get_name (structure); - sink->content_type = g_strdup (mime_type); + + if (!g_strcmp0 (mime_type, "multipart/form-data") && + gst_structure_has_field_typed (structure, "boundary", G_TYPE_STRING)) { + const gchar *boundary; + + boundary = gst_structure_get_string (structure, "boundary"); + sink->content_type = g_strconcat (mime_type, "; boundary=", boundary, NULL); + } else { + sink->content_type = g_strdup (mime_type); + } } static gboolean