Packages
membrane_rtp_plugin
0.7.0-alpha.2
0.31.5
0.31.4
0.31.3
0.31.2
0.31.1
0.31.0
0.30.0
0.29.1
0.29.0
0.28.0
0.27.1
0.27.0
0.26.0
0.25.0
0.24.1
0.24.0
0.23.2
0.23.1
0.23.0
0.22.1
0.22.0
0.21.0
0.20.0
0.19.1
0.19.0
0.18.0
0.17.1
0.17.0
0.16.0
0.15.0
0.15.0-rc.1
0.14.0
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.1-alpha.3
0.7.1-alpha.2
0.7.0-alpha.2
0.7.0-alpha.1
0.7.0-alpha
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0-alpha
Membrane Multimedia Framework plugin for RTP
Current section
Files
Jump to
Current section
Files
lib/membrane/rtp/header.ex
defmodule Membrane.RTP.Header do
@moduledoc """
Describes RTP Header defined in [RFC3550](https://tools.ietf.org/html/rfc3550#page-13)
```
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC |M| PT | sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| synchronization source (SSRC) identifier |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| contributing source (CSRC) identifiers |
| .... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
```
"""
alias Membrane.RTP
@typedoc """
This field identifies the version of RTP. The version defined by this specification is 2.
"""
@type version :: 2
@typedoc """
The interpretation of the marker is defined by a profile
"""
@type marker :: boolean()
@typedoc """
Timestamp of a packet in ticks of clock according to `t:RTP.clock_rate_t/0`.
Its initial value is random, so it should not be interpreted as an absolute time, but rather used to calculate
time difference from other timestamps.
"""
@type timestamp_t() :: non_neg_integer()
@typedoc """
A 16-bit integer sequential number of a packet.
Its initial value should be random.
"""
@type sequence_number_t() :: non_neg_integer()
@type t :: %__MODULE__{
version: version(),
ssrc: RTP.ssrc_t(),
marker: marker(),
payload_type: RTP.payload_type_t(),
timestamp: timestamp_t(),
sequence_number: sequence_number_t(),
csrcs: [RTP.ssrc_t()],
extension: __MODULE__.Extension.t() | nil
}
@enforce_keys [
:ssrc,
:payload_type,
:timestamp,
:sequence_number
]
defstruct @enforce_keys ++
[
version: 2,
marker: false,
csrcs: [],
extension: nil
]
end