## GstRTSPRange

GstRTSPRange — dealing with RTSP transports

## Functions

GstRTSPResult | gst_rtsp_transport_new ()
GstRTSPResult | gst_rtsp_transport_init ()
GstRTSPResult | gst_rtsp_transport_parse ()
gchar * | gst_rtsp_transport_as_text ()
GstRTSPResult | gst_rtsp_transport_get_mime ()
GstRTSPResult | gst_rtsp_transport_get_manager ()
GstRTSPResult | gst_rtsp_transport_free ()

## Types and Values

enum | GstRTSPTransMode
enum | GstRTSPProfile
struct | GstRTSPRange
enum | GstRTSPLowerTrans
struct | GstRTSPTransport

## Includes

    #include <gst/rtsp/gstrtsptransport.h>

## Description

Provides helper functions to deal with RTSP transport strings.

## Functions

### gst_rtsp_transport_new ()

    GstRTSPResult
    gst_rtsp_transport_new (GstRTSPTransport **transport);

Allocate a new initialized GstRTSPTransport. Use `gst_rtsp_transport_free()` after usage.

#### Parameters

transport | location to hold the new GstRTSPTransport |

#### Returns

a GstRTSPResult.

### gst_rtsp_transport_init ()

    GstRTSPResult
    gst_rtsp_transport_init (GstRTSPTransport *transport);

Initialize `transport` so that it can be used.

#### Parameters

transport | a GstRTSPTransport |

#### Returns

GST_RTSP_OK.

### gst_rtsp_transport_parse ()

    GstRTSPResult
    gst_rtsp_transport_parse (const gchar *str,
                              GstRTSPTransport *transport);

Parse the RTSP transport string `str` into `transport` .

#### Parameters

str | a transport string |
transport | a GstRTSPTransport |

#### Returns

a GstRTSPResult.

### gst_rtsp_transport_as_text ()

    gchar *
    gst_rtsp_transport_as_text (GstRTSPTransport *transport);

Convert `transport` into a string that can be used to signal the transport in an RTSP SETUP response.

#### Parameters

transport | a GstRTSPTransport |

#### Returns

a string describing the RTSP transport or `NULL` when the transport is invalid.

### gst_rtsp_transport_get_mime ()

    GstRTSPResult
    gst_rtsp_transport_get_mime (GstRTSPTransMode trans,
                                 const gchar **mime);

`gst_rtsp_transport_get_mime` is deprecated and should not be used in newly-written code.

This functions only deals with the GstRTSPTransMode and only returns the mime type for GST_RTSP_PROFILE_AVP. Use `gst_rtsp_transport_get_media_type()` instead.

Get the mime type of the transport mode `trans` . This mime type is typically used to generate GstCaps events.

#### Parameters

trans | a GstRTSPTransMode |
mime | location to hold the result |

#### Returns

GST_RTSP_OK.

### gst_rtsp_transport_get_manager ()

    GstRTSPResult
    gst_rtsp_transport_get_manager (GstRTSPTransMode trans,
                                    const gchar **manager,
                                    guint option);

Get the GstElement that can handle the buffers transported over `trans` .

It is possible that there are several managers available, use `option` to selected one.

`manager` will contain an element name or `NULL` when no manager is needed/available for `trans` .

#### Parameters

trans | a GstRTSPTransMode |
manager | location to hold the result. | [out][nullable][transfer none]
option | option index. |

#### Returns

GST_RTSP_OK.

### gst_rtsp_transport_free ()

    GstRTSPResult
    gst_rtsp_transport_free (GstRTSPTransport *transport);

Free the memory used by `transport` .

#### Parameters

transport | a GstRTSPTransport |

#### Returns

GST_RTSP_OK.

## Types and Values

### enum GstRTSPTransMode

The transfer mode to use.

#### Members

GST_RTSP_TRANS_UNKNOWN | invalid tansport mode |
GST_RTSP_TRANS_RTP | transfer RTP data |
GST_RTSP_TRANS_RDT | transfer RDT (RealMedia) data |

### enum GstRTSPProfile

The transfer profile to use.

#### Members

GST_RTSP_PROFILE_UNKNOWN | invalid profile |
GST_RTSP_PROFILE_AVP | the Audio/Visual profile (RFC 3551) |
GST_RTSP_PROFILE_SAVP | the secure Audio/Visual profile (RFC 3711) |
GST_RTSP_PROFILE_AVPF | the Audio/Visual profile with feedback (RFC 4585) |
GST_RTSP_PROFILE_SAVPF | the secure Audio/Visual profile with feedback (RFC 5124) |

### struct GstRTSPRange

    struct GstRTSPRange {
      gint min;
      gint max;
    };

A type to specify a range.

#### Members

gint `min`; | minimum value of the range |
gint `max`; | maximum value of the range |

### enum GstRTSPLowerTrans

The different transport methods.

#### Members

GST_RTSP_LOWER_TRANS_UNKNOWN | invalid transport flag |
GST_RTSP_LOWER_TRANS_UDP | stream data over UDP |
GST_RTSP_LOWER_TRANS_UDP_MCAST | stream data over UDP multicast |
GST_RTSP_LOWER_TRANS_TCP | stream data over TCP |
GST_RTSP_LOWER_TRANS_HTTP | stream data tunneled over HTTP. |
GST_RTSP_LOWER_TRANS_TLS | encrypt TCP and HTTP with TLS |

### struct GstRTSPTransport

    struct GstRTSPTransport {
      GstRTSPTransMode  trans;
      GstRTSPProfile    profile;
      GstRTSPLowerTrans lower_transport;

      gchar         *destination;
      gchar         *source;
      guint          layers;
      gboolean       mode_play;
      gboolean       mode_record;
      gboolean       append;
      GstRTSPRange   interleaved;

      /* multicast specific */
      guint  ttl;
      GstRTSPRange   port;

      /* UDP/TCP specific */
      GstRTSPRange   client_port;
      GstRTSPRange   server_port;
      /* RTP specific */
      guint          ssrc;
    };

A structure holding the RTSP transport values.

#### Members

GstRTSPTransMode `trans`; | the transport mode |
GstRTSPProfile `profile`; | the tansport profile |
GstRTSPLowerTrans `lower_transport`; | the lower transport |
gchar *`destination`; | the destination ip/hostname |
gchar *`source`; | the source ip/hostname |
guint `layers`; | the number of layers |
gboolean `mode_play`; | if play mode was selected |
gboolean `mode_record`; | if record mode was selected |
gboolean `append`; | is append mode was selected |
GstRTSPRange `interleaved`; | the interleave range |
guint `ttl`; | the time to live for multicast UDP |
GstRTSPRange `port`; | the port pair for multicast sessions |
GstRTSPRange `client_port`; | the client port pair for receiving data. For TCP based transports, applications can use this field to store the sender and receiver ports of the client. |
GstRTSPRange `server_port`; | the server port pair for receiving data. For TCP based transports, applications can use this field to store the sender and receiver ports of the server. |
guint `ssrc`; | the ssrc that the sender/receiver will use |