From a4a27fdca82d7e1e2ade89bc78734e3e6fd61943 Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Mon, 11 Jun 2018 18:32:28 +0200 Subject: [PATCH] sdp: Add new constructor, sdp_message_from_text Helper function for bindings, in python for example users can now replace: res, msg = GstSdp.SDPMessage.new() GstSdp.sdp_message_parse_buffer(bytes(text.encode()), msg) with: res, msg = GstSdp.SDPMessage.new_from_text(text) https://bugzilla.gnome.org/show_bug.cgi?id=796563 --- docs/libs/gst-plugins-base-libs-sections.txt | 1 + gst-libs/gst/sdp/gstsdpmessage.c | 24 ++++++++++++++++++++ gst-libs/gst/sdp/gstsdpmessage.h | 3 +++ 3 files changed, 28 insertions(+) diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt index b28864e260..04af5c4d1f 100644 --- a/docs/libs/gst-plugins-base-libs-sections.txt +++ b/docs/libs/gst-plugins-base-libs-sections.txt @@ -1983,6 +1983,7 @@ GstSDPMedia GstSDPMessage gst_sdp_message_new +gst_sdp_message_new_from_text gst_sdp_message_copy gst_sdp_message_init gst_sdp_message_uninit diff --git a/gst-libs/gst/sdp/gstsdpmessage.c b/gst-libs/gst/sdp/gstsdpmessage.c index 791c7fa11d..965bd09b09 100644 --- a/gst-libs/gst/sdp/gstsdpmessage.c +++ b/gst-libs/gst/sdp/gstsdpmessage.c @@ -236,6 +236,30 @@ gst_sdp_message_new (GstSDPMessage ** msg) return gst_sdp_message_init (newmsg); } +/** + * gst_sdp_message_new_from_text: + * @msg: (out) (transfer full): pointer to new #GstSDPMessage + * @text: A dynamically allocated string representing the SDP description + * + * Parse @text and create a new SDPMessage from these. + * + * Returns: a #GstSDPResult. + * Since: 1.16 + */ +GstSDPResult +gst_sdp_message_new_from_text (const gchar * text, GstSDPMessage ** msg) +{ + GstSDPResult res; + + if ((res = gst_sdp_message_new (msg)) != GST_SDP_OK) + return res; + + res = + gst_sdp_message_parse_buffer ((const guint8 *) text, strlen (text), *msg); + + return res; +} + /** * gst_sdp_message_init: * @msg: a #GstSDPMessage diff --git a/gst-libs/gst/sdp/gstsdpmessage.h b/gst-libs/gst/sdp/gstsdpmessage.h index a16ccd2e09..7049f2c8f6 100644 --- a/gst-libs/gst/sdp/gstsdpmessage.h +++ b/gst-libs/gst/sdp/gstsdpmessage.h @@ -340,6 +340,9 @@ GstSDPResult gst_sdp_message_parse_buffer (const guint8 *data, GST_SDP_API gchar* gst_sdp_message_as_text (const GstSDPMessage *msg); +GST_SDP_API +GstSDPResult gst_sdp_message_new_from_text (const gchar *text, GstSDPMessage ** msg); + /* convert from/to uri */ GST_SDP_API