rtsp: add method to parse options list

This commit is contained in:
Wim Taymans 2012-11-27 11:02:19 +01:00
parent 9e8e3dfef4
commit b511f938d4
3 changed files with 42 additions and 0 deletions

View file

@ -1275,6 +1275,7 @@ gst_rtsp_header_as_text
gst_rtsp_header_allow_multiple
gst_rtsp_status_as_text
gst_rtsp_options_as_text
gst_rtsp_options_from_text
gst_rtsp_find_header_field
gst_rtsp_find_method
<SUBSECTION Standard>

View file

@ -465,6 +465,46 @@ gst_rtsp_options_as_text (GstRTSPMethod options)
return g_string_free (str, FALSE);
}
/**
* gst_rtsp_options_from_text:
* @options: a comma separated list of options
*
* Convert the comma separated list @options to a #GstRTSPMethod bitwise or
* of methods. This functions is the reverse of gst_rtsp_options_as_text().
*
* Returns: a #GstRTSPMethod
*
* Since: 1.1.1
*/
GstRTSPMethod
gst_rtsp_options_from_text (const gchar * options)
{
GstRTSPMethod methods;
gchar **ostr;
gint i;
/* The string is like:
* OPTIONS, DESCRIBE, ANNOUNCE, PLAY, SETUP, ...
*/
ostr = g_strsplit (options, ",", 0);
methods = 0;
for (i = 0; ostr[i]; i++) {
gchar *stripped;
GstRTSPMethod method;
stripped = g_strstrip (ostr[i]);
method = gst_rtsp_find_method (stripped);
/* keep bitfield of supported methods */
if (method != GST_RTSP_INVALID)
methods |= method;
}
g_strfreev (ostr);
return methods;
}
/**
* gst_rtsp_header_allow_multiple:
* @field: a #GstRTSPHeaderField

View file

@ -399,6 +399,7 @@ const gchar* gst_rtsp_header_as_text (GstRTSPHeaderField field);
const gchar* gst_rtsp_status_as_text (GstRTSPStatusCode code);
gchar* gst_rtsp_options_as_text (GstRTSPMethod options);
GstRTSPMethod gst_rtsp_options_from_text (const gchar *options);
GstRTSPHeaderField gst_rtsp_find_header_field (const gchar *header);
GstRTSPMethod gst_rtsp_find_method (const gchar *method);