defmodule Membrane.RTCP.FeedbackPacket.FIR do @behaviour Membrane.RTCP.FeedbackPacket @enforce_keys [:target_ssrc, :seq_num] defstruct @enforce_keys @impl true def encode(%__MODULE__{} = packet) do <> end @impl true def encode(packets) when is_list(packets) do Enum.map_join(packets, &encode/1) end @impl true def decode(binary) do do_decode(binary, []) end defp do_decode(<<>>, acc) do {:ok, Enum.reverse(acc)} end defp do_decode(<>, acc) do do_decode(rest, [%__MODULE__{target_ssrc: target_ssrc, seq_num: seq_num} | acc]) end defp do_decode(_binary, _acc) do {:error, :malformed_packet} end end