# `Membrane.RTP`
[🔗](https://github.com/membraneframework/membrane_rtp_format/blob/v0.11.1/lib/rtp.ex#L1)

This module provides caps struct for RTP packet.

# `clock_rate`

```elixir
@type clock_rate() :: non_neg_integer()
```

Rate of the clock used for RTP timestamps in Hz

# `dynamic_encoding_name`

```elixir
@type dynamic_encoding_name() :: atom()
```

Dynamically assigned encoding names for payload types >= 96

They should be atoms matching the encoding name in SDP's attribute `rtpmap`. This is usually defined by
RFC for that payload format (e.g. for H264 there's RFC 6184 defining it must be "H264", so the atom `:H264` should be used
https://tools.ietf.org/html/rfc6184#section-8.2.1)

# `dynamic_payload_type`

```elixir
@type dynamic_payload_type() :: 96..127
```

RTP payload type that can be dynamically mapped to encoding and clock rate.

# `encoding_name`

```elixir
@type encoding_name() :: static_encoding_name() | dynamic_encoding_name()
```

Encoding name of RTP payload.

# `payload_format`

```elixir
@type payload_format() :: module() | nil
```

Module of a Membrane stream format which represents the payload format of this stream or `nil` if the payload format is not known.

# `payload_type`

```elixir
@type payload_type() :: static_payload_type() | dynamic_payload_type()
```

RTP payload type.

# `ssrc`

```elixir
@type ssrc() :: pos_integer()
```

The source of a stream of RTP packets, identified by a 32-bit numeric identifier.

# `static_encoding_name`

```elixir
@type static_encoding_name() ::
  :PCMU
  | :GSM
  | :G732
  | :DVI4
  | :LPC
  | :PCMA
  | :G722
  | :L16
  | :QCELP
  | :CN
  | :MPA
  | :G728
  | :G729
  | :CELB
  | :JPEG
  | :NV
  | :H261
  | :MPV
  | :MP2T
  | :H263
```

Predefined names of encoding for static payload types (< 96).

# `static_payload_type`

```elixir
@type static_payload_type() :: 0..95
```

RTP payload type that is statically mapped to encoding and clock rate.

# `t`

```elixir
@type t() :: %Membrane.RTP{payload_format: payload_format()}
```

# `is_payload_type_dynamic`
*macro* 

Determines if payload type is `t:dynamic_payload_type/0`.

# `is_payload_type_static`
*macro* 

Determines if payload type is `t:static_payload_type/0`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
