Packages
membrane_rtmp_plugin
0.28.0
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/responses.ex
defmodule Membrane.RTMP.Responses do
@moduledoc false
alias Membrane.RTMP.Messages
@type transaction_id_t :: float() | non_neg_integer()
@doc """
Returns a default success response on connect request.
"""
@spec connection_success() :: struct()
def connection_success() do
%Messages.Anonymous{
name: "_result",
# transaction ID is always 1 for connect request/responses
tx_id: 1,
properties: [
%{
"fmsVer" => "FMS/3,0,1,123",
"capabilities" => 31.0
},
%{
"level" => "status",
"code" => "NetConnection.Connect.Success",
"description" => "Connection succeeded.",
"objectEncoding" => 0.0
}
]
}
end
@doc """
Returns a publishment success message.
"""
@spec publish_success(String.t()) :: struct()
def publish_success(stream_key) do
%Messages.Anonymous{
name: "onStatus",
# transaction ID is always 0 for publish request/responses
tx_id: 0,
properties: [
:null,
%{
"level" => "status",
"code" => "NetStream.Publish.Start",
"description" => "#{stream_key} is now published",
"details" => stream_key
}
]
}
end
@doc """
Returns a bandwidth measurement done message.
"""
@spec on_bw_done() :: struct()
def on_bw_done() do
%Messages.Anonymous{
name: "onBWDone",
tx_id: 0,
properties: [
:null,
# from ffmpeg rtmp server implementation
8192.0
]
}
end
@doc """
Returns a default `_result` response with arbitrary body.
The body can be set by specifying the properties list.
"""
@spec default_result(transaction_id_t(), [any()]) :: struct()
def default_result(tx_id, properties) do
%Messages.Anonymous{
name: "_result",
tx_id: tx_id,
properties: properties
}
end
end