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