# rtpopuspay

rtpopuspay encapsulates Opus-encoded audio data into RTP packets following the payload format described in RFC 7587.

In addition to the RFC, which assumes only mono and stereo payload, the element supports multichannel Opus audio streams using a non-standardized SDP config and "MULTIOPUS" codec developed by Google for libwebrtc. When the input data have more than 2 channels, rtpopuspay will add extra fields to output caps that can be used to generate SDP in the syntax understood by libwebrtc. For example in the case of 5.1 audio:

      a=rtpmap:96 multiopus/48000/6
      a=fmtp:96 num_streams=4;coupled_streams=2;channel_mapping=0,4,1,2,3,5

See https://webrtc-review.googlesource.com/c/src/+/129768 for more details on multichannel Opus in libwebrtc.

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstRTPBasePayload
                        ╰──rtpopuspay

## Factory details

Authors: – Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk></danilo.cesar@collabora.co.uk>

Classification: – `Codec/Payloader/Network/RTP`

Rank – primary

Plugin – rtp

Package – GStreamer Good Plug-ins

## Pad Templates

### `sink`

    audio/x-opus:
    channel-mapping-family: 0
    audio/x-opus:
    channel-mapping-family: 0
           channels: [ 1, 2 ]
    audio/x-opus:
    channel-mapping-family: 1
           channels: [ 3, 255 ]

Presence – always

Direction – sink

Object type – GstPad

### `src`

    application/x-rtp:
              media: audio
            payload: [ 96, 127 ]
         clock-rate: 48000
      encoding-name: { (string)OPUS, (string)X-GST-OPUS-DRAFT-SPITTKA-00, (string)MULTIOPUS }

Presence – always

Direction – src

Object type – GstPad

## Properties

### dtx

    “dtx” gboolean

If enabled, the payloader will not transmit empty packets.

Flags : Read / Write

Default value : false

Since : 1.20

The results of the search are