From ae81cfd048163c6e139b4fcfe92804a7d9b50ccf Mon Sep 17 00:00:00 2001 From: Mateusz Front Date: Fri, 24 Nov 2023 15:01:22 +0100 Subject: [PATCH 1/3] fix removing children in the session bin --- lib/membrane/rtp/session_bin.ex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/membrane/rtp/session_bin.ex b/lib/membrane/rtp/session_bin.ex index 17f59445..3b8974db 100644 --- a/lib/membrane/rtp/session_bin.ex +++ b/lib/membrane/rtp/session_bin.ex @@ -594,7 +594,7 @@ defmodule Membrane.RTP.SessionBin do |> Enum.map(&{&1, ref}) |> Enum.filter(&Map.has_key?(ctx.children, &1)) - {[remove_child: children], state} + {[remove_children: children], state} end @impl true @@ -608,7 +608,7 @@ defmodule Membrane.RTP.SessionBin do _other -> [] end) - {[remove_child: to_remove], state} + {[remove_children: to_remove], state} end @impl true @@ -627,7 +627,7 @@ defmodule Membrane.RTP.SessionBin do child && not child.terminating? end) - {[remove_child: to_remove], state} + {[remove_children: to_remove], state} end @impl true From 900702fb2742baf0eac690cdd78a18d10fe93723 Mon Sep 17 00:00:00 2001 From: Mateusz Front Date: Mon, 27 Nov 2023 10:13:43 +0100 Subject: [PATCH 2/3] fix end of stream --- lib/membrane/rtp/outbound_tracking_serializer.ex | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/membrane/rtp/outbound_tracking_serializer.ex b/lib/membrane/rtp/outbound_tracking_serializer.ex index 4baf3e87..94f16a99 100644 --- a/lib/membrane/rtp/outbound_tracking_serializer.ex +++ b/lib/membrane/rtp/outbound_tracking_serializer.ex @@ -259,6 +259,18 @@ defmodule Membrane.RTP.OutboundTrackingSerializer do {[buffer: {:output, buffer}], %{state | any_buffer_sent?: true}} end + @impl true + def handle_end_of_stream(_pad, ctx, state) do + if ctx.pads + |> Map.values() + |> Enum.filter(&(&1.direction == :input)) + |> Enum.all?(& &1.end_of_stream?) do + {[forward: :end_of_stream], state} + else + {[], state} + end + end + @impl true def handle_parent_notification(:send_stats, ctx, state) do %{rtcp_output_pad: rtcp_output} = state From 2cfb9545d5a8eb20824b158df3482dd8fdd7944a Mon Sep 17 00:00:00 2001 From: Mateusz Front Date: Mon, 27 Nov 2023 11:25:09 +0100 Subject: [PATCH 3/3] bump version --- README.md | 2 +- mix.exs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9a3135cf..a997989b 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ The package can be installed by adding `membrane_rtp_plugin` to your list of dep ```elixir def deps do [ - {:membrane_rtp_plugin, "~> 0.24.0"}, + {:membrane_rtp_plugin, "~> 0.24.1"}, {:ex_libsrtp, ">= 0.0.0"} # required only if SRTP/SRTCP support is needed ] end diff --git a/mix.exs b/mix.exs index 92bf8f82..f3594b42 100644 --- a/mix.exs +++ b/mix.exs @@ -1,7 +1,7 @@ defmodule Membrane.RTP.Plugin.MixProject do use Mix.Project - @version "0.24.0" + @version "0.24.1" @github_url "https://github.com/membraneframework/membrane_rtp_plugin" def project do