ExSDP.Media (ExSDP v1.1.2)

View Source

This module represents the Media field of SDP.

For more details please see RFC4566 Section 5.14

Summary

Types

t()

Represents type of media. In RFC4566 there are defined "audio", "video", "text", "application", and "message" types.

Types

t()

@type t() :: %ExSDP.Media{
  attributes: [ExSDP.Attribute.t()],
  bandwidth: [ExSDP.Bandwidth.t()],
  connection_data: [ExSDP.ConnectionData.t()],
  encryption: ExSDP.Encryption.t() | nil,
  fmt: binary() | [0..127],
  port: :inet.port_number(),
  port_count: non_neg_integer(),
  protocol: binary(),
  title: binary() | nil,
  type: type()
}

type()

@type type() :: :audio | :video | :text | :application | :message | binary()

Represents type of media. In RFC4566 there are defined "audio", "video", "text", "application", and "message" types.

Known types are represented as atoms others are binaries.

Functions

add_attribute(media, attribute)

This function is deprecated. Use ExSDP.add_attribute/2 instead.
@spec add_attribute(t(), ExSDP.Attribute.t()) :: t()

add_attributes(media, attributes)

This function is deprecated. Use ExSDP.add_attributes/2 instead.
@spec add_attributes(t(), [ExSDP.Attribute.t()]) :: t()

apply_session(media, session)

@spec apply_session(t(), ExSDP.t()) :: t()

get_attribute(media, key)

This function is deprecated. Use ExSDP.get_attribute/2 instead.
@spec get_attribute(t(), ExSDP.Attribute.key()) :: ExSDP.Attribute.t() | nil

get_attributes(media, key)

This function is deprecated. Use ExSDP.get_attributes/2 instead.
@spec get_attributes(t(), ExSDP.Attribute.key()) :: [ExSDP.Attribute.t()]

new(type, port, protocol, fmt, opts \\ [])

@spec new(type(), :inet.port_number(), binary(), binary() | 0..127 | [0..127], [
  {:port_count, non_neg_integer()}
]) :: t()

parse(media)

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

parse_optional(lines, media)

@spec parse_optional([binary()], t()) :: {:ok, {[binary()], t()}} | {:error, atom()}