ExRTMP.Message.UserControl.Event (RTMP Server and Client v0.4.1)

View Source

Module describing user control message payload.

Summary

Functions

Creates a new user control event message payload.

Parses a binary into a user control event message payload.

Types

t()

@type t() :: %ExRTMP.Message.UserControl.Event{data: any(), type: type()}

type()

@type type() ::
  :stream_begin
  | :stream_eof
  | :stream_dry
  | :set_buffer_length
  | :stream_is_recorded
  | :ping_request
  | :ping_response

Functions

new(type, data)

@spec new(type(), any()) :: t()

Creates a new user control event message payload.

parse(payload)

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

Parses a binary into a user control event message payload.

Examples

iex> ExRTMP.Message.UserControl.Event.parse(<<0, 0, 0, 0, 0, 1>>)
{:ok, %ExRTMP.Message.UserControl.Event{type: :stream_begin, data: 1}}

iex> ExRTMP.Message.UserControl.Event.parse(<<0, 1, 0, 0, 0, 3>>)
{:ok, %ExRTMP.Message.UserControl.Event{type: :stream_eof, data: 3}}

iex> ExRTMP.Message.UserControl.Event.parse(<<0, 2, 0, 0, 0, 5>>)
{:ok, %ExRTMP.Message.UserControl.Event{type: :stream_dry, data: 5}}

iex> ExRTMP.Message.UserControl.Event.parse(<<0, 3, 0, 0, 0, 4, 0, 0, 3, 232>>)
{:ok, %ExRTMP.Message.UserControl.Event{type: :set_buffer_length, data: {4, 1000}}}

iex> ExRTMP.Message.UserControl.Event.parse(<<0, 4, 0, 0, 0, 2>>)
{:ok, %ExRTMP.Message.UserControl.Event{type: :stream_is_recorded, data: 2}}

iex> ExRTMP.Message.UserControl.Event.parse(<<0, 6, 104, 220, 201, 210>>)
{:ok, %ExRTMP.Message.UserControl.Event{type: :ping_request, data: 1759300050}}

iex> ExRTMP.Message.UserControl.Event.parse(<<0, 7, 104, 220, 201, 210>>)
{:ok, %ExRTMP.Message.UserControl.Event{type: :ping_response, data: 1759300050}}

iex> ExRTMP.Message.UserControl.Event.parse(<<0, 8, 0, 1, 0, 0, 0, 42>>)
{:error, :unknown_type}

iex> ExRTMP.Message.UserControl.Event.parse(<<0, 3, 0, 1, 0, 0, 0, 42>>)
{:error, :invalid_payload}