Packages
membrane_rtp_plugin
0.5.0
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/rtcp/app_packet.ex
defmodule Membrane.RTCP.AppPacket do
@moduledoc """
Parses RTCP Application-defined (APP) packets
defined in [RFC3550](https://tools.ietf.org/html/rfc3550#section-6.7)
"""
defstruct [:subtype, :ssrc, :name, :data]
@type t :: %__MODULE__{
subtype: non_neg_integer(),
ssrc: non_neg_integer(),
name: String.t(),
data: binary()
}
@packet_type 204
@behaviour Membrane.RTCP.Packet
@impl true
def decode(<<ssrc::32, name::bitstring-size(32), data::binary>>, subtype) do
{:ok,
%__MODULE__{
subtype: subtype,
ssrc: ssrc,
name: name,
data: data
}}
end
@impl true
def encode(%__MODULE__{
subtype: subtype,
ssrc: ssrc,
name: name,
data: data
}) do
{<<ssrc::32, name::bitstring-size(32), data::binary>>, @packet_type, subtype}
end
end