## GstRTSPUrl GstRTSPUrl — handling RTSP urls |

## Functions

GstRTSPResult | gst_rtsp_url_parse ()
GstRTSPUrl * | gst_rtsp_url_copy ()
void | gst_rtsp_url_free ()
gchar * | gst_rtsp_url_get_request_uri ()
GstRTSPResult | gst_rtsp_url_set_port ()
GstRTSPResult | gst_rtsp_url_get_port ()
gchar ** | gst_rtsp_url_decode_path_components ()

## Types and Values

#define | GST_RTSP_DEFAULT_PORT
struct | GstRTSPUrl

## Includes

    #include <gst/rtsp/gstrtspurl.h>

## Description

Provides helper functions to handle RTSP urls.

## Functions

### gst_rtsp_url_parse ()

    GstRTSPResult
    gst_rtsp_url_parse (const gchar *urlstr,
                        GstRTSPUrl **url);

Parse the RTSP `urlstr` into a newly allocated GstRTSPUrl. Free after usage with `gst_rtsp_url_free()`.

#### Parameters

urlstr | the url string to parse |
url | location to hold the result. | [out]

#### Returns

a GstRTSPResult.

### gst_rtsp_url_copy ()

    GstRTSPUrl *
    gst_rtsp_url_copy (const GstRTSPUrl *url);

Make a copy of `url` .

#### Parameters

url | a GstRTSPUrl |

#### Returns

a copy of `url` . Free with `gst_rtsp_url_free()` after usage.

### gst_rtsp_url_free ()

    void
    gst_rtsp_url_free (GstRTSPUrl *url);

Free the memory used by `url` .

#### Parameters

url | a GstRTSPUrl |

### gst_rtsp_url_get_request_uri ()

    gchar *
    gst_rtsp_url_get_request_uri (const GstRTSPUrl *url);

Get a newly allocated string describing the request URI for `url` .

#### Parameters

url | a GstRTSPUrl |

#### Returns

a string with the request URI. `g_free()` after usage.

### gst_rtsp_url_set_port ()

    GstRTSPResult
    gst_rtsp_url_set_port (GstRTSPUrl *url,
                           guint16 port);

Set the port number in `url` to `port` .

#### Parameters

url | a GstRTSPUrl |
port | the port |

#### Returns

GST_RTSP_OK.

### gst_rtsp_url_get_port ()

    GstRTSPResult
    gst_rtsp_url_get_port (const GstRTSPUrl *url,
                           guint16 *port);

Get the port number of `url` .

#### Parameters

url | a GstRTSPUrl |
port | location to hold the port. | [out]

#### Returns

GST_RTSP_OK.

### gst_rtsp_url_decode_path_components ()

    gchar **
    gst_rtsp_url_decode_path_components (const GstRTSPUrl *url);

Splits the path of `url` on '/' boundaries, decoding the resulting components,

The decoding performed by this routine is "URI decoding", as defined in RFC 3986, commonly known as percent-decoding. For example, a string "foo%2fbar" will decode to "foo/bar" -- the %2f being replaced by the corresponding byte with hex value 0x2f. Note that there is no guarantee that the resulting byte sequence is valid in any given encoding. As a special case, %00 is not unescaped to NUL, as that would prematurely terminate the string.

Also note that since paths usually start with a slash, the first component will usually be the empty string.

#### Parameters

url | a GstRTSPUrl |

#### Returns

`NULL`-terminated array of URL components. Free with `g_strfreev()` when no longer needed.

[transfer full]

## Types and Values

### GST_RTSP_DEFAULT_PORT

    #define GST_RTSP_DEFAULT_PORT       554

The default RTSP port to connect to.

### struct GstRTSPUrl

    struct GstRTSPUrl {
      GstRTSPLowerTrans  transports;
      GstRTSPFamily      family;
      gchar             *user;
      gchar             *passwd;
      gchar             *host;
      guint16            port;
      gchar             *abspath;
      gchar             *query;
    };

This structure contains the result of a parsed RTSP URL

#### Members

GstRTSPLowerTrans `transports`; | the transports allowed |
GstRTSPFamily `family`; | the family |
gchar *`user`; | the user |
gchar *`passwd`; | the password |
gchar *`host`; | the host |
guint16 `port`; | the port |
gchar *`abspath`; | the absolute path |
gchar *`query`; | additional query parameters |