# rtspclientsink

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBin
                        ╰──rtspclientsink

## Implemented interfaces

    GstChildProxy
    GstURIHandler

## Factory details

Authors: – Jan Schmidt

Classification: – `Sink/Network`

Rank – none

Plugin – rtspclientsink

Package – GStreamer RTSP Server Library

## Pad Templates

### `sink_%u`

    ANY

Presence – request

Direction – sink

Object type – GstRtspClientSinkPad

## Signals

### accept-certificate

    gboolean
    accept_certificate_callback (GstElement * rtsp_client_sink,
                                 GTlsConnection * peer_cert,
                                 GTlsCertificate * errors,
                                 GTlsCertificateFlags * user_data,
                                 gpointer udata)

    def accept_certificate_callback (rtsp_client_sink, peer_cert, errors, user_data, udata):
        #python callback for the 'accept-certificate' signal

    function accept_certificate_callback(rtsp_client_sink: GstElement * rtsp_client_sink, peer_cert: GTlsConnection * peer_cert, errors: GTlsCertificate * errors, user_data: GTlsCertificateFlags * user_data, udata: gpointer udata): {
        // javascript callback for the 'accept-certificate' signal
    }

This will directly map to GTlsConnection 's "accept-certificate" signal and be performed after the default checks of GstRTSPConnection (checking against the GTlsDatabase with the given GTlsCertificateFlags) have failed. If no GTlsDatabase is set on this connection, only this signal will be emitted.

Parameters:

`rtsp_client_sink` –

a rtspclientsink

`peer_cert` –

the peer's GTlsCertificate

`errors` –

the problems with peer_cert

`user_data` –

user data set when the signal handler was connected.

`udata` –
No description available
Returns (gboolean) –
No description available

Flags: Run Last

Since : 1.14

### handle-request

    handle_request_callback (GstElement * rtsp_client_sink,
                             GstRTSPMessage * request,
                             GstRTSPMessage * response,
                             gpointer udata)

    def handle_request_callback (rtsp_client_sink, request, response, udata):
        #python callback for the 'handle-request' signal

    function handle_request_callback(rtsp_client_sink: GstElement * rtsp_client_sink, request: GstRTSPMessage * request, response: GstRTSPMessage * response, udata: gpointer udata): {
        // javascript callback for the 'handle-request' signal
    }

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 rtsp_client_sink 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:

`rtsp_client_sink` –

a rtspclientsink

`request` –

a GstRTSPMessage

`response` –

a GstRTSPMessage

`udata` –
No description available

Flags:

### new-manager

    new_manager_callback (GstElement * rtsp_client_sink,
                          GstElement * manager,
                          gpointer udata)

    def new_manager_callback (rtsp_client_sink, manager, udata):
        #python callback for the 'new-manager' signal

    function new_manager_callback(rtsp_client_sink: GstElement * rtsp_client_sink, manager: GstElement * manager, udata: gpointer udata): {
        // javascript callback for the 'new-manager' signal
    }

Emitted after a new manager (like rtpbin) was created and the default properties were configured.

Parameters:

`rtsp_client_sink` –

a rtspclientsink

`manager` –

a GstElement

`udata` –
No description available

Flags: Run First

### new-payloader

    new_payloader_callback (GstElement * rtsp_client_sink,
                            GstElement * payloader,
                            gpointer udata)

    def new_payloader_callback (rtsp_client_sink, payloader, udata):
        #python callback for the 'new-payloader' signal

    function new_payloader_callback(rtsp_client_sink: GstElement * rtsp_client_sink, payloader: GstElement * payloader, udata: gpointer udata): {
        // javascript callback for the 'new-payloader' signal
    }

Emitted after a new RTP payloader was created and the default properties were configured.

Parameters:

`rtsp_client_sink` –

a rtspclientsink

`payloader` –

a GstElement

`udata` –
No description available

Flags: Run First

### request-rtcp-key

    GstCaps *
    request_rtcp_key_callback (GstElement * rtsp_client_sink,
                               guint num,
                               gpointer udata)

    def request_rtcp_key_callback (rtsp_client_sink, num, udata):
        #python callback for the 'request-rtcp-key' signal

    function request_rtcp_key_callback(rtsp_client_sink: GstElement * rtsp_client_sink, num: guint num, udata: gpointer udata): {
        // javascript callback for the 'request-rtcp-key' signal
    }

Signal emitted to get the crypto parameters relevant to the RTCP stream. User should provide the key and the RTCP encryption ciphers and authentication, and return them wrapped in a GstCaps.

Parameters:

`rtsp_client_sink` –

a rtspclientsink

`num` –

the stream number

`udata` –
No description available
Returns (GstCaps *) –
No description available

Flags: Run Last

### update-sdp

    update_sdp_callback (GstElement * rtsp_client_sink,
                         GstSDPMessage * sdp,
                         gpointer udata)

    def update_sdp_callback (rtsp_client_sink, sdp, udata):
        #python callback for the 'update-sdp' signal

    function update_sdp_callback(rtsp_client_sink: GstElement * rtsp_client_sink, sdp: GstSDPMessage * sdp, udata: gpointer udata): {
        // javascript callback for the 'update-sdp' signal
    }

Emitted right before the ANNOUNCE request is sent to the server with the generated SDP. The SDP can be updated from signal handlers but the order and number of medias must not be changed.

Parameters:

`rtsp_client_sink` –

a rtspclientsink

`sdp` –

a GstSDPMessage

`udata` –
No description available

Flags:

Since : 1.20

## Properties

### debug

    “debug” gboolean

Dump request and response messages to stdout

Flags : Read / Write

Default value : false

### do-rtsp-keep-alive

    “do-rtsp-keep-alive” gboolean

Enable RTSP keep alive support. Some old server don't like RTSP keep alive and then this property needs to be set to FALSE.

Flags : Read / Write

Default value : true

### latency

    “latency” guint

Amount of ms to buffer

Flags : Read / Write

Default value : 2000

### location

    “location” gchararray

Location of the RTSP url to read

Flags : Read / Write

Default value : NULL

### multicast-iface

    “multicast-iface” gchararray

The network interface on which to join the multicast group

Flags : Read / Write

Default value : NULL

### ntp-time-source

    “ntp-time-source” GstRTSPClientSinkNtpTimeSource *

allows to select the time source that should be used for the NTP time in outgoing packets

Flags : Read / Write

Default value : ntp (0)

### port-range

    “port-range” gchararray

Configure the client port numbers that can be used to send RTP and receive RTCP.

Flags : Read / Write

Default value : NULL

### profiles

    “profiles” GstRTSPProfile *

Allowed RTSP profiles

Flags : Read / Write

Default value : avp

### protocols

    “protocols” GstRTSPLowerTrans *

Allowed lower transport protocols

Flags : Read / Write

Default value : tcp+udp-mcast+udp

### proxy

    “proxy” gchararray

Set the proxy parameters. This has to be a string of the format [http://][user:passwd@]host[:port].

Flags : Read / Write

Default value : NULL

### proxy-id

    “proxy-id” gchararray

Sets the proxy URI user id for authentication. If the URI set via the "proxy" property contains a user-id already, that will take precedence.

Flags : Read / Write

Default value : NULL

### proxy-pw

    “proxy-pw” gchararray

Sets the proxy URI password for authentication. If the URI set via the "proxy" property contains a password already, that will take precedence.

Flags : Read / Write

Default value : NULL

### publish-clock-mode

    “publish-clock-mode” GstRTSPPublishClockMode *

Sets if and how the media clock should be published according to RFC7273.

Flags : Read / Write

Default value : clock (1)

Since : 1.22

### retry

    “retry” guint

Max number of retries when allocating RTP ports.

Flags : Read / Write

Default value : 20

### rtp-blocksize

    “rtp-blocksize” guint

RTP package size to suggest to server.

Flags : Read / Write

Default value : 0

### rtx-time

    “rtx-time” guint

Amount of ms to buffer for retransmission. 0 disables retransmission

Flags : Read / Write

Default value : 500

### sdes

    “sdes” GstStructure *

The SDES items of this session

Flags : Read / Write

### tcp-timeout

    “tcp-timeout” guint64

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

Flags : Read / Write

Default value : 20000000

### timeout

    “timeout” guint64

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

Flags : Read / Write

Default value : 5000000

### tls-database

    “tls-database” GTlsDatabase *

TLS database with anchor certificate authorities used to validate the server certificate.

Flags : Read / Write

### tls-interaction

    “tls-interaction” GTlsInteraction *

A GTlsInteraction object to be used when the connection or certificate database need to interact with the user. This will be used to prompt the user for passwords where necessary.

Flags : Read / Write

### tls-validation-flags

    “tls-validation-flags” GTlsCertificateFlags *

TLS certificate validation flags used to validate server certificate.

GLib guarantees that if certificate verification fails, at least one error will be set, but it does not guarantee that all possible errors will be set. Accordingly, you may not safely decide to ignore any particular type of error.

For example, it would be incorrect to mask G_TLS_CERTIFICATE_EXPIRED if you want to allow expired certificates, because this could potentially be the only error flag set even if other problems exist with the certificate.

Flags : Read / Write

Default value : validate-all

### udp-buffer-size

    “udp-buffer-size” gint

Size of the kernel UDP receive buffer in bytes.

Flags : Read / Write

Default value : 524288

### udp-reconnect

    “udp-reconnect” gboolean

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

Flags : Read / Write

Default value : true

### user-agent

    “user-agent” gchararray

The string to set in the User-Agent header.

Flags : Read / Write

Default value : GStreamer/{VERSION}

### user-id

    “user-id” gchararray

RTSP location URI user id for authentication

Flags : Read / Write

Default value : NULL

### user-pw

    “user-pw” gchararray

RTSP location URI user password for authentication

Flags : Read / Write

Default value : NULL

## Named constants

### GstRTSPClientSinkNtpTimeSource

#### Members

`ntp` (0) – NTP time based on realtime clock
`unix` (1) – UNIX time based on realtime clock
`running-time` (2) – Running time based on pipeline clock
`clock-time` (3) – Pipeline clock time

## GstRtspClientSinkPad

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstPad
                    ╰──GstProxyPad
                        ╰──GstGhostPad
                            ╰──GstRtspClientSinkPad

### Properties

#### payloader

    “payloader” GstElement *

The payloader element to use (NULL = default automatically selected)

Flags : Read / Write

#### ulpfec-percentage

    “ulpfec-percentage” guint

The percentage of ULP redundancy to apply

Flags : Read / Write

Default value : 0

The results of the search are