Skip to content

Commit 38c775d

Browse files
committed
Add logs about duration of SDK initialization
1 parent 203741e commit 38c775d

File tree

2 files changed

+39
-4
lines changed

2 files changed

+39
-4
lines changed

lib/agora/agora_sink.ex

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ defmodule Membrane.Agora.Sink do
55
"""
66
use Membrane.Sink
77

8+
require Membrane.Logger
89
require Membrane.Pad, as: Pad
910

1011
alias Membrane.Agora.Sink.Native
@@ -62,9 +63,25 @@ defmodule Membrane.Agora.Sink do
6263

6364
@impl true
6465
def handle_setup(_ctx, state) do
65-
{:ok, native_state} =
66+
native_state =
6667
try do
67-
Native.create(state.app_id, state.token, state.channel_name, state.user_id)
68+
start_time = Membrane.Time.os_time()
69+
70+
{:ok, native_state} =
71+
Native.create(state.app_id, state.token, state.channel_name, state.user_id)
72+
73+
duration = Membrane.Time.os_time() - start_time
74+
duration_ms = Membrane.Time.as_milliseconds(duration, :round)
75+
Membrane.Logger.info("Agora SDK initialization took: #{duration_ms} ms")
76+
77+
if duration_ms > 500 do
78+
Membrane.Logger.warning("""
79+
Agora SDK initialization took #{duration_ms} ms which is longer than expected.
80+
The initial demand made by this sink might be delayed.
81+
""")
82+
end
83+
84+
native_state
6885
rescue
6986
_e in UndefinedFunctionError ->
7087
reraise(

lib/agora/agora_source.ex

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ defmodule Membrane.Agora.Source do
55
"""
66
use Membrane.Source
77

8+
require Membrane.Logger
9+
810
alias Membrane.Agora.Source.Native
911
alias Membrane.Buffer
1012

@@ -62,9 +64,25 @@ defmodule Membrane.Agora.Source do
6264

6365
@impl true
6466
def handle_playing(_ctx, state) do
65-
{:ok, native_state} =
67+
native_state =
6668
try do
67-
Native.create(state.app_id, state.token, state.channel_name, state.user_id, self())
69+
start_time = Membrane.Time.os_time()
70+
71+
{:ok, native_state} =
72+
Native.create(state.app_id, state.token, state.channel_name, state.user_id)
73+
74+
duration = Membrane.Time.os_time() - start_time
75+
duration_ms = Membrane.Time.as_milliseconds(duration, :round)
76+
Membrane.Logger.info("Agora SDK initialization took: #{duration_ms} ms")
77+
78+
if duration_ms > 500 do
79+
Membrane.Logger.warning("""
80+
Agora SDK initialization took #{duration_ms} ms which is longer than expected.
81+
The initial demand made by this sink might be delayed.
82+
""")
83+
end
84+
85+
native_state
6886
rescue
6987
_e in UndefinedFunctionError ->
7088
reraise(

0 commit comments

Comments
 (0)