Packages
membrane_rtmp_plugin
0.20.2
0.29.5
0.29.4
0.29.3
0.29.2
0.29.1
0.29.0
0.28.1
0.28.0
0.27.3
0.27.2
0.27.0
0.26.0
0.25.0
0.24.0
0.23.3
0.23.2
0.23.1
0.23.0
0.22.1
0.22.0
0.21.0
0.20.2
0.20.1
0.20.0
0.19.3
0.19.2
retired
0.19.1
0.19.0
0.18.0
0.17.3
0.17.2
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.1
0.9.0
0.8.1
0.8.0
0.7.0
0.6.1
0.6.0
0.5.0
0.4.1
0.4.0
0.3.0
0.2.1
0.2.0
0.1.1
0.1.0
RTMP Plugin for Membrane Multimedia Framework
Current section
Files
Jump to
Current section
Files
lib/membrane_rtmp_plugin/rtmp/source/messages/anonymous.ex
defmodule Membrane.RTMP.Messages.Anonymous do
@moduledoc """
A catch-all module for all the messages that don't have a dedicated module, eg. `onBWDone`, `onStatus`, `_result`.
"""
@behaviour Membrane.RTMP.Message
@enforce_keys [:name, :properties]
defstruct [tx_id: nil] ++ @enforce_keys
@type t :: %__MODULE__{
name: String.t(),
properties: any(),
tx_id: non_neg_integer() | nil
}
@impl true
def from_data([name, tx_id | properties]) when is_binary(name) do
%__MODULE__{name: name, tx_id: tx_id, properties: properties}
end
def from_data([name]) when is_binary(name) do
%__MODULE__{name: name, tx_id: nil, properties: []}
end
defimpl Membrane.RTMP.Messages.Serializer do
require Membrane.RTMP.Header
alias Membrane.RTMP.AMF.Encoder
@impl true
def serialize(%@for{name: name, tx_id: nil, properties: properties}) do
Encoder.encode([name | properties])
end
def serialize(%@for{name: name, tx_id: tx_id, properties: properties}) do
Encoder.encode([name, tx_id | properties])
end
@impl true
def type(%@for{}), do: Membrane.RTMP.Header.type(:amf_command)
end
end