Packages
membrane_rtc_engine
0.14.0
0.25.0
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.1
0.17.0
0.16.0
0.15.1
0.15.0
0.14.2
0.14.1
0.14.0
0.13.0
0.12.1
0.12.0
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.0
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.0
0.1.0
0.1.0-alpha.2
0.1.0-alpha.1
0.1.0-alpha
Membrane RTC Engine and its client library
Current section
Files
Jump to
Current section
Files
lib/membrane_rtc_engine/exception.ex
defmodule Membrane.RTC.Engine.Exception do
@moduledoc false
defmodule PublishTrackError do
defexception [:message]
@impl true
def exception(opts) do
track = Keyword.fetch!(opts, :track)
msg = """
Tried to publish track with invalid variants. For video tracks variants
has to be a list with at least one variant of type Track.variant().
Audio tracks can have just one variant (:high), therefore for audio tracks
variants has to be a list in form of [:high].
Track: #{inspect(track)}.
"""
%__MODULE__{message: msg}
end
end
defmodule TrackReadyError do
defexception [:message]
@impl true
def exception(opts) do
track = Keyword.fetch!(opts, :track)
variant = Keyword.fetch!(opts, :variant)
msg = """
Tried to mark track variant: #{inspect(variant)} as ready but given
track hasn't been published with such variant.
Track: #{inspect(track)}.
"""
%__MODULE__{message: msg}
end
end
defmodule RequestTrackVariantError do
defexception [:message]
@impl true
def exception(opts) do
requester = Keyword.fetch!(opts, :requester)
requested_variant = Keyword.fetch!(opts, :requested_variant)
track = Keyword.fetch!(opts, :track)
msg = """
Endpoint: #{inspect(requester)} requested non-existing track variant: \
#{inspect(requested_variant)} for track: #{inspect(track)}.
"""
%__MODULE__{message: msg}
end
end
defmodule TrackVariantStateError do
defexception [:message]
@impl true
def exception(opts) do
track = Keyword.fetch!(opts, :track)
track_variant = Keyword.fetch!(opts, :variant)
msg = """
Endpoint: #{inspect(track.origin)} sent data for inactive track variant: #{inspect(track_variant)}. \
Data can be sent only for active track variants. \
To mark track variant as active send TrackVariantResumed event on your output pad.\
"""
%__MODULE__{message: msg}
end
end
defmodule VoiceActivityError do
defexception [:message]
@impl true
def exception(opts) do
track = Keyword.fetch!(opts, :track)
msg = """
Endpoint: #{inspect(track.origin)} sent VoiceActivityChanged event for video track #{inspect(track.id)}. \
VoiceActivityChanged can only be sent for audio tracks.
"""
%__MODULE__{message: msg}
end
end
end