# rtprtxsend

See rtprtxreceive for examples

The purpose of the sender RTX object is to keep a history of RTP packets up to a configurable limit (max-size-time or max-size-packets). It will listen for upstream custom retransmission events (GstRTPRetransmissionRequest) that comes from downstream (#GstRtpSession). When receiving a request it will look up the requested seqnum in its list of stored packets. If the packet is available, it will create a RTX packet according to RFC 4588 and send this as an auxiliary stream. RTX is SSRC-multiplexed

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──rtprtxsend

## Factory details

Authors: – Julien Isorce <julien.isorce></julien.isorce>

Classification: – `Codec`

Rank – none

Plugin – rtpmanager

Package – GStreamer Good Plug-ins

## Pad Templates

### `sink`

    application/x-rtp:

Presence – always

Direction – sink

Object type – GstPad

### `src`

    application/x-rtp:

Presence – always

Direction – src

Object type – GstPad

## Action Signals

### add-extension

    g_signal_emit_by_name (param_0, "add-extension", arg0);

    ret = param_0.emit ("add-extension", arg0)

    let ret = param_0.emit ("add-extension", arg0);

Add ext as an extension for writing part of an RTP header extension onto outgoing RTP packets. Currently only supports using the following extension URIs. All other RTP header extensions are copied as-is.

- "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id": will be removed
- "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id": will be written instead of the "rtp-stream-id" header extension.

Parameters:

`param_0` (GstElement *) –
No description available
`arg0` (GstRTPHeaderExtension *) –
No description available

Flags: Run Last / Action

Since : 1.22

### clear-extensions

    g_signal_emit_by_name (object, "clear-extensions");

    ret = object.emit ("clear-extensions")

    let ret = object.emit ("clear-extensions");

Clear all RTP header extensions used by this rtprtxsend.

Parameters:

`object` (GstElement *) –

the GstRTPBasePayload

Flags: Run Last / Action

Since : 1.22

## Properties

### clock-rate-map

    “clock-rate-map” GstStructure *

Map of payload types to their clock rates

Flags : Read / Write

### max-size-packets

    “max-size-packets” guint

Amount of packets to queue (0 = unlimited)

Flags : Read / Write

Default value : 100

### max-size-time

    “max-size-time” guint

Amount of ms to queue (0 = unlimited)

Flags : Read / Write

Default value : 0

### num-rtx-packets

    “num-rtx-packets” guint

Number of retransmission packets sent

Flags : Read

Default value : 0

### num-rtx-requests

    “num-rtx-requests” guint

Number of retransmission events received

Flags : Read

Default value : 0

### payload-type-map

    “payload-type-map” GstStructure *

Map of original payload types to their retransmission payload types

Flags : Read / Write

### ssrc-map

    “ssrc-map” GstStructure *

Map of SSRCs to their retransmission SSRCs for SSRC-multiplexed mode (default = random)

Flags : Read / Write

The results of the search are