## rtspsrc

rtspsrc — Receive data over the network via RTSP (RFC 2326)

## Properties

gboolean | debug | Read / Write
gchar * | location | Read / Write
GstRTSPLowerTrans | protocols | Read / Write
guint | retry | Read / Write
guint64 | timeout | Read / Write
guint | latency | Read / Write
guint64 | tcp-timeout | Read / Write
guint64 | connection-speed | Read / Write
GstRTSPNatMethod | nat-method | Read / Write
gboolean | do-rtcp | Read / Write
gchar * | proxy | Read / Write
guint | rtp-blocksize | Read / Write
gchar * | user-id | Read / Write
gchar * | user-pw | Read / Write
GstRTSPSrcBufferMode | buffer-mode | Read / Write
gchar * | port-range | Read / Write
gint | udp-buffer-size | Read / Write
gboolean | short-header | Read / Write
gboolean | do-rtsp-keep-alive | Read / Write
gboolean | drop-on-latency | Read / Write
guint | probation | Read / Write
gboolean | udp-reconnect | Read / Write
gchar * | proxy-id | Read / Write
gchar * | proxy-pw | Read / Write
gchar * | multicast-iface | Read / Write
gboolean | ntp-sync | Read / Write
gboolean | use-pipeline-clock | Read / Write
GstStructure * | sdes | Read / Write
GTlsCertificateFlags | tls-validation-flags | Read / Write

## Signals

void | handle-request |
void | on-sdp |
gboolean | select-stream | Run First

## Types and Values

struct | GstRTSPSrc

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstElement
                    ╰── GstBin
                        ╰── GstRTSPSrc

## Implemented Interfaces

GstRTSPSrc implements GstChildProxy and GstURIHandler.

## Description

Makes a connection to an RTSP server and read the data. rtspsrc strictly follows RFC 2326 and therefore does not (yet) support RealMedia/Quicktime/Microsoft extensions.

RTSP supports transport over TCP or UDP in unicast or multicast mode. By default rtspsrc will negotiate a connection in the following order: UDP unicast/UDP multicast/TCP. The order cannot be changed but the allowed protocols can be controlled with the “protocols” property.

rtspsrc currently understands SDP as the format of the session description. For each stream listed in the SDP a new rtp_stream`d` pad will be created with caps derived from the SDP media description. This is a caps of mime type "application/x-rtp" that can be connected to any available RTP depayloader element.

rtspsrc will internally instantiate an RTP session manager element that will handle the RTCP messages to and from the server, jitter removal, packet reordering along with providing a clock for the pipeline. This feature is implemented using the gstrtpbin element.

rtspsrc acts like a live source and will therefore only generate data in the PLAYING state.

### Example launch line

    gst-launch-1.0 rtspsrc location=rtsp://some.server/url ! fakesink

Establish a connection to an RTSP server and send the raw RTP packets to a fakesink.

Last reviewed on 2006-08-18 (0.10.5)

## Synopsis

### Element Information

plugin | rtsp
author | Wim Taymans <wim@fluendo.com>, Thijs Vermeir <thijs.vermeir@barco.com>, Lutz Mueller <lutz@topfrose.de>
class | Source/Network

### Element Pads

name | stream_%u
direction | source
presence | sometimes
details | application/x-rtp
| application/x-rdt

## Functions

## Types and Values

### struct GstRTSPSrc

    struct GstRTSPSrc;

## Property Details

### The `“debug”` property

      “debug”                    gboolean

Dump request and response messages to stdout.

Flags: Read / Write

Default value: FALSE

### The `“location”` property

      “location”                 gchar *

Location of the RTSP url to read.

Flags: Read / Write

Default value: NULL

### The `“protocols”` property

      “protocols”                GstRTSPLowerTrans

Allowed lower transport protocols.

Flags: Read / Write

Default value: GST_RTSP_LOWER_TRANS_UDP|GST_RTSP_LOWER_TRANS_UDP_MCAST|GST_RTSP_LOWER_TRANS_TCP

### The `“retry”` property

      “retry”                    guint

Max number of retries when allocating RTP ports.

Flags: Read / Write

Allowed values: <= 65535

Default value: 20

### The `“timeout”` property

      “timeout”                  guint64

Retry TCP transport after UDP timeout microseconds (0 = disabled).

Flags: Read / Write

Default value: 5000000

### The `“latency”` property

      “latency”                  guint

Amount of ms to buffer.

Flags: Read / Write

Default value: 2000

### The `“tcp-timeout”` property

      “tcp-timeout”              guint64

Fail after timeout microseconds on TCP connections (0 = disabled).

Flags: Read / Write

Default value: 20000000

### The `“connection-speed”` property

      “connection-speed”         guint64

Network connection speed in kbps (0 = unknown).

Flags: Read / Write

Allowed values: <= 18446744073709551

Default value: 0

### The `“nat-method”` property

      “nat-method”               GstRTSPNatMethod

Method to use for traversing firewalls and NAT.

Flags: Read / Write

Default value: Send Dummy packets

### The `“do-rtcp”` property

      “do-rtcp”                  gboolean

Send RTCP packets, disable for old incompatible server.

Flags: Read / Write

Default value: TRUE

### The `“proxy”` property

      “proxy”                    gchar *

Proxy settings for HTTP tunneling. Format: [http://][user:passwd@]host[:port].

Flags: Read / Write

Default value: NULL

### The `“rtp-blocksize”` property

      “rtp-blocksize”            guint

RTP package size to suggest to server (0 = disabled).

Flags: Read / Write

Allowed values: <= 65536

Default value: 0

### The `“user-id”` property

      “user-id”                  gchar *

RTSP location URI user id for authentication.

Flags: Read / Write

Default value: NULL

### The `“user-pw”` property

      “user-pw”                  gchar *

RTSP location URI user password for authentication.

Flags: Read / Write

Default value: NULL

### The `“buffer-mode”` property

      “buffer-mode”              GstRTSPSrcBufferMode

Control the buffering algorithm in use.

Flags: Read / Write

Default value: Choose mode depending on stream live

### The `“port-range”` property

      “port-range”               gchar *

Client port range that can be used to receive RTP and RTCP data, eg. 3000-3005 (NULL = no restrictions).

Flags: Read / Write

Default value: NULL

### The `“udp-buffer-size”` property

      “udp-buffer-size”          gint

Size of the kernel UDP receive buffer in bytes, 0=default.

Flags: Read / Write

Allowed values: >= 0

Default value: 524288

### The `“short-header”` property

      “short-header”             gboolean

Only send the basic RTSP headers for broken encoders.

Flags: Read / Write

Default value: FALSE

### The `“do-rtsp-keep-alive”` property

      “do-rtsp-keep-alive”       gboolean

Send RTSP keep alive packets, disable for old incompatible server.

Flags: Read / Write

Default value: TRUE

### The `“drop-on-latency”` property

      “drop-on-latency”          gboolean

Tells the jitterbuffer to never exceed the given latency in size.

Flags: Read / Write

Default value: FALSE

### The `“probation”` property

      “probation”                guint

Consecutive packet sequence numbers to accept the source.

Flags: Read / Write

Default value: 2

### The `“udp-reconnect”` property

      “udp-reconnect”            gboolean

Reconnect to the server if RTSP connection is closed when doing UDP.

Flags: Read / Write

Default value: TRUE

### The `“proxy-id”` property

      “proxy-id”                 gchar *

HTTP proxy URI user id for authentication.

Flags: Read / Write

Default value: ""

### The `“proxy-pw”` property

      “proxy-pw”                 gchar *

HTTP proxy URI user password for authentication.

Flags: Read / Write

Default value: ""

### The `“multicast-iface”` property

      “multicast-iface”          gchar *

The network interface on which to join the multicast group.

Flags: Read / Write

Default value: NULL

### The `“ntp-sync”` property

      “ntp-sync”                 gboolean

Synchronize received streams to the NTP clock.

Flags: Read / Write

Default value: FALSE

### The `“use-pipeline-clock”` property

      “use-pipeline-clock”       gboolean

Use the pipeline running-time to set the NTP time in the RTCP SR messages.

Flags: Read / Write

Default value: FALSE

### The `“sdes”` property

      “sdes”                     GstStructure *

The SDES items of this session.

Flags: Read / Write

### The `“tls-validation-flags”` property

      “tls-validation-flags”     GTlsCertificateFlags

TLS certificate validation flags used to validate the server certificate.

Flags: Read / Write

Default value: G_TLS_CERTIFICATE_UNKNOWN_CA|G_TLS_CERTIFICATE_BAD_IDENTITY|G_TLS_CERTIFICATE_NOT_ACTIVATED|G_TLS_CERTIFICATE_EXPIRED|G_TLS_CERTIFICATE_REVOKED|G_TLS_CERTIFICATE_INSECURE|G_TLS_CERTIFICATE_GENERIC_ERROR

## Signal Details

### The `“handle-request”` signal

    void
    user_function (GstRTSPSrc *rtspsrc,
                   gpointer    request,
                   gpointer    response,
                   gpointer    user_data)

Handle a server request in `request` and prepare `response` .

This signal is called from the streaming thread, you should therefore not do any state changes on `rtspsrc` because this might deadlock. If you want to modify the state as a result of this signal, post a GST_MESSAGE_REQUEST_STATE message on the bus or signal the main thread in some other way.

#### Parameters

rtspsrc | a GstRTSPSrc |
request | a GstRTSPMessage |
response | a GstRTSPMessage |
user_data | user data set when the signal handler was connected. |

Since 1.2

### The `“on-sdp”` signal

    void
    user_function (GstRTSPSrc    *rtspsrc,
                   GstSDPMessage *sdp,
                   gpointer       user_data)

Emited when the client has retrieved the SDP and before it configures the streams in the SDP. `sdp` can be inspected and modified.

This signal is called from the streaming thread, you should therefore not do any state changes on `rtspsrc` because this might deadlock. If you want to modify the state as a result of this signal, post a GST_MESSAGE_REQUEST_STATE message on the bus or signal the main thread in some other way.

#### Parameters

rtspsrc | a GstRTSPSrc |
sdp | a GstSDPMessage |
user_data | user data set when the signal handler was connected. |

Since 1.2

### The `“select-stream”` signal

    gboolean
    user_function (GstRTSPSrc *rtspsrc,
                   guint       num,
                   GstCaps    *caps,
                   gpointer    user_data)

Emited before the client decides to configure the stream `num` with `caps` .

#### Parameters

rtspsrc | a GstRTSPSrc |
num | the stream number |
caps | the stream caps |
user_data | user data set when the signal handler was connected. |

#### Returns

`TRUE` when the stream should be selected, `FALSE` when the stream is to be ignored.

Flags: Run First

Since 1.2