From b645caff030b54d04fb9dd7d6cd417e56ee023c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kita?= Date: Fri, 14 Feb 2025 10:45:01 +0100 Subject: [PATCH] Add client timeout option in the RTMP Source --- lib/membrane_rtmp_plugin/rtmp/source/source.ex | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/membrane_rtmp_plugin/rtmp/source/source.ex b/lib/membrane_rtmp_plugin/rtmp/source/source.ex index 3109a10..e191486 100644 --- a/lib/membrane_rtmp_plugin/rtmp/source/source.ex +++ b/lib/membrane_rtmp_plugin/rtmp/source/source.ex @@ -36,6 +36,13 @@ defmodule Membrane.RTMP.Source do An URL on which the client is expected to connect, for example: rtmp://127.0.0.1:1935/app/stream_key """ + ], + client_timeout: [ + default: Membrane.Time.seconds(5), + spec: Membrane.Time.t(), + description: """ + Time after which an unused client connection is automatically closed. Defaults to 5 seconds. + """ ] defguardp is_builtin_server(opts) @@ -54,7 +61,8 @@ defmodule Membrane.RTMP.Source do url: opts.url, mode: :builtin_server, client_ref: nil, - use_ssl?: nil + use_ssl?: nil, + client_timeout: opts.client_timeout } {[], state} @@ -94,7 +102,7 @@ defmodule Membrane.RTMP.Source do port: port, use_ssl?: use_ssl?, handle_new_client: handle_new_client, - client_timeout: Membrane.Time.milliseconds(100) + client_timeout: state.client_timeout ) state = %{state | app: app, stream_key: stream_key, server: server_pid}