Packages
membrane_rtp_plugin
0.31.2
0.31.5
0.31.4
0.31.3
0.31.2
0.31.1
0.31.0
0.30.0
0.29.1
0.29.0
0.28.0
0.27.1
0.27.0
0.26.0
0.25.0
0.24.1
0.24.0
0.23.2
0.23.1
0.23.0
0.22.1
0.22.0
0.21.0
0.20.0
0.19.1
0.19.0
0.18.0
0.17.1
0.17.0
0.16.0
0.15.0
0.15.0-rc.1
0.14.0
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.1-alpha.3
0.7.1-alpha.2
0.7.0-alpha.2
0.7.0-alpha.1
0.7.0-alpha
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0-alpha
Membrane Multimedia Framework plugin for RTP
Current section
Files
Jump to
Current section
Files
lib/membrane/rtp/payload_format_resolver.ex
defmodule Membrane.RTP.PayloadFormatResolver do
@moduledoc """
Wrapper over `Membrane.RTP.PayloadFormat` that returns payloaders and depayloaders, or an error
if they can't be resolved.
"""
alias Membrane.RTP
alias Membrane.RTP.PayloadFormat
@type encoding_mapper_t :: %{RTP.encoding_name() => module()}
@doc """
Tries to resolve a depayloader based on given encoding.
"""
@spec depayloader(RTP.encoding_name()) :: {:ok, module()} | :error
def depayloader(encoding) do
case PayloadFormat.get(encoding).depayloader do
nil -> :error
depayloader -> {:ok, depayloader}
end
end
@doc """
Tries to resolve a payloader based on given encoding.
"""
@spec payloader(RTP.encoding_name()) :: {:ok, module()} | :error
def payloader(encoding) do
case PayloadFormat.get(encoding).payloader do
nil -> :error
payloader -> {:ok, payloader}
end
end
@spec keyframe_detector(atom()) :: {:ok, (binary() -> boolean())} | :error
def keyframe_detector(encoding) do
case PayloadFormat.get(encoding).keyframe_detector do
nil -> :error
keyframe_detector -> {:ok, keyframe_detector}
end
end
@spec frame_detector(atom()) :: {:ok, (binary() -> boolean())} | :error
def frame_detector(encoding) do
case PayloadFormat.get(encoding).frame_detector do
nil -> :error
frame_detector -> {:ok, frame_detector}
end
end
end