View Source ExSDP.Attribute.FMTP (ExSDP v1.0.0)

This module represents fmtp (RFC 5576).

Parameters for:

  • H264 (not all, RFC 6184),
  • H265 (not all, RFC 7798)
  • VP8, VP9, OPUS (RFC 7587)
  • AV1 (no RFC, https://aomediacodec.github.io/av1-rtp-spec/)
  • RTX (RFC 4588)
  • FLEXFEC (RFC 8627)
  • Telephone Events (RFC 4733)
  • RED (RFC 2198)
  • G.722.1 (RFC 5577)

are currently supported.

Summary

Types

Key that can be used for searching this attribute using ExSDP.Media.get_attribute/2.

Reason of parsing failure.

t()

Types

@type attr_key() :: :fmtp

Key that can be used for searching this attribute using ExSDP.Media.get_attribute/2.

@type reason() ::
  :invalid_fmtp
  | :invalid_ps
  | :invalid_pt
  | :invalid_sprop_parameter_sets
  | :string_nan
  | :string_not_hex
  | :string_not_0_nor_1

Reason of parsing failure.

@type t() :: %ExSDP.Attribute.FMTP{
  apt: ExSDP.Attribute.RTPMapping.payload_type_t() | nil,
  bitrate: non_neg_integer() | nil,
  cbr: boolean() | nil,
  dtmf_tones: String.t() | nil,
  interop_constraints: non_neg_integer() | nil,
  level_asymmetry_allowed: boolean() | nil,
  level_id: non_neg_integer() | nil,
  level_idx: non_neg_integer() | nil,
  max_br: non_neg_integer() | nil,
  max_dpb: non_neg_integer() | nil,
  max_fr: non_neg_integer() | nil,
  max_fs: non_neg_integer() | nil,
  max_mbps: non_neg_integer() | nil,
  max_smbps: non_neg_integer() | nil,
  maxaveragebitrate: non_neg_integer() | nil,
  maxplaybackrate: non_neg_integer() | nil,
  maxptime: non_neg_integer() | nil,
  minptime: non_neg_integer() | nil,
  packetization_mode: non_neg_integer() | nil,
  profile: non_neg_integer() | nil,
  profile_id: non_neg_integer() | nil,
  profile_level_id: non_neg_integer() | nil,
  profile_space: non_neg_integer() | nil,
  pt: term(),
  ptime: non_neg_integer() | nil,
  redundant_payloads: [ExSDP.Attribute.RTPMapping.payload_type_t()] | nil,
  repair_window: non_neg_integer() | nil,
  rtx_time: non_neg_integer() | nil,
  sprop_maxcapturerate: non_neg_integer() | nil,
  sprop_parameter_sets: %{sps: binary(), pps: binary()} | nil,
  sprop_pps: [binary()] | nil,
  sprop_sps: [binary()] | nil,
  sprop_vps: [binary()] | nil,
  stereo: boolean() | nil,
  tier: non_neg_integer() | nil,
  tier_flag: non_neg_integer() | nil,
  unknown: [String.t()],
  usedtx: boolean() | nil,
  useinbandfec: boolean() | nil
}

Functions

@spec parse(binary()) :: {:ok, t()} | {:error, reason()}