Packages
membrane_rtp_plugin
0.4.0-alpha
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 :: 0..2
@typedoc """
Indicates whether a packet contains additional padding at the end.
The last octet of the padding contains a count of padding octets that should be ignored, including itself.
"""
@type padding :: boolean()
@typedoc """
If the extension bit is set, the fixed header MUST be followed by exactly one header extension
"""
@type extension :: boolean()
@typedoc """
The interpretation of the marker is defined by a profile
"""
@type marker :: boolean()
@type t :: %__MODULE__{
version: version(),
padding: padding(),
extension_header: extension(),
csrc_count: 0..15,
ssrc: non_neg_integer(),
marker: marker(),
payload_type: RTP.raw_payload_type_t(),
timestamp: non_neg_integer(),
sequence_number: non_neg_integer(),
csrcs: [non_neg_integer()],
extension_header_data: __MODULE__.Extension.t() | nil
}
@enforce_keys [
:version,
:padding,
:extension_header,
:csrc_count,
:ssrc,
:marker,
:payload_type,
:timestamp,
:sequence_number,
:csrcs
]
defstruct @enforce_keys ++ [:extension_header_data]
end