View Source ExSDP.Attribute.FMTP (ExSDP v1.1.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)
  • AAC (RFC 3640) 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,
  auxillarydatasizelength: non_neg_integer() | nil,
  bitrate: non_neg_integer() | nil,
  cbr: boolean() | nil,
  config: binary() | nil,
  constantduration: non_neg_integer() | nil,
  constantsize: non_neg_integer() | nil,
  ctsdeltalength: non_neg_integer() | nil,
  de_interleavebuffersize: non_neg_integer() | nil,
  dtmf_tones: String.t() | nil,
  dtsdeltalength: non_neg_integer() | nil,
  indexdeltalength: non_neg_integer() | nil,
  indexlength: non_neg_integer() | 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,
  maxdisplacement: non_neg_integer() | nil,
  maxplaybackrate: non_neg_integer() | nil,
  maxptime: non_neg_integer() | nil,
  minptime: non_neg_integer() | nil,
  mode: :generic | :CELP_cbr | :CELP_vbr | :AAC_lbr | :AAC_hbr | nil,
  objecttype: 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,
  randomaccessindication: boolean() | nil,
  redundant_payloads: [ExSDP.Attribute.RTPMapping.payload_type_t()] | nil,
  repair_window: non_neg_integer() | nil,
  rtx_time: non_neg_integer() | nil,
  sizelength: 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,
  streamstateindication: non_neg_integer() | nil,
  streamtype: non_neg_integer() | 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()}