Packages
membrane_core
1.3.0
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.7
1.2.6
1.2.5
retired
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.2.0-rc1
1.1.2
1.1.1
1.1.0
1.1.0-rc1
1.1.0-rc0
1.0.1
1.0.0
1.0.0-rc1
1.0.0-rc0
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
retired
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.1
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.2
0.2.1
0.2.0
0.1.1
0.1.0
Membrane Multimedia Framework (Core)
Current section
Files
Jump to
Current section
Files
lib/membrane/core/utils.ex
defmodule Membrane.Core.Utils do
@moduledoc false
# For some reason GenServer processes sometimes don't print logs about crash, so
# we add this macro, to ensure that error logs are always printed
defmacro log_on_error(do: code) do
error_source =
case __CALLER__.module do
Membrane.Core.Element -> "Membrane Element"
Membrane.Core.Bin -> "Membrane Bin"
Membrane.Core.Pipeline -> "Membrane Pipeline"
other -> inspect(other)
end
quote do
try do
unquote(code)
rescue
error ->
require Membrane.Logger
Membrane.Logger.error("""
Error occured in #{unquote(error_source)}:
#{Exception.format(:error, error, __STACKTRACE__)}
""")
reraise error, __STACKTRACE__
end
end
end
end