Packages
membrane_rtmp_plugin
0.29.4
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/messages/additional_media.ex
defmodule Membrane.RTMP.Messages.AdditionalMedia do
@moduledoc false
@behaviour Membrane.RTMP.Message
alias Membrane.RTMP.AMF0.Encoder
@enforce_keys [:id, :media]
defstruct @enforce_keys
@type t :: %__MODULE__{
id: String.t(),
media: binary()
}
@names ["additionalMedia", "@additionalMedia"]
@impl true
def from_data([name, %{"id" => id, "media" => media}]) when name in @names do
%__MODULE__{id: id, media: media}
end
@doc false
@spec to_map(t()) :: map()
def to_map(%__MODULE__{id: id, media: media}) do
# TODO: this media should be AMF3 encoded
%{"id" => id, "media" => media}
end
defimpl Membrane.RTMP.Messages.Serializer do
require Membrane.RTMP.Header
@impl true
def serialize(%@for{} = message) do
Encoder.encode([@for.to_map(message)])
end
@impl true
def type(%@for{}), do: Membrane.RTMP.Header.type(:amf_data)
end
end