defmodule Membrane.WebRTC.Track.Encoding do
@moduledoc """
A struct holding data passed via SDP about a possible encoding of a track
"""
alias ExSDP.Attribute.{FMTP, RTCPFeedback}
@type t :: %__MODULE__{
payload_type: non_neg_integer(),
name: String.t(),
clock_rate: pos_integer(),
rtx: %{payload_type: non_neg_integer(), rtx_time: non_neg_integer() | nil} | nil,
red_payload_type: non_neg_integer() | nil,
audio_channels: pos_integer() | nil,
rtcp_feedback: MapSet.t(RTCPFeedback.t()),
format_params: FMTP.t() | nil
}
@enforce_keys [:payload_type, :name, :clock_rate]
defstruct @enforce_keys ++
[
rtx: nil,
red_payload_type: nil,
audio_channels: nil,
rtcp_feedback: MapSet.new(),
format_params: nil
]
end