Feliks
Feliks
SMSoftware Mansion
Created by TonyLikeSocks on 4/1/2025 in #membrane-help
Testing a Membrane Bin used in a WebRTC Engine Endpoint
Did it solve your problem?
28 replies
SMSoftware Mansion
Created by TonyLikeSocks on 4/1/2025 in #membrane-help
Testing a Membrane Bin used in a WebRTC Engine Endpoint
you can plug this filter in between Testing Source and TrackReceiver
defmodule SimpleFilter do
use Membrane.Filter

def_input_pad :input, accepted_format: _any, flow_control: :auto
def_output_pad :output, accepted_format: _any, flow_control: :push

@impl true
def handle_buffer(:input, buffer, _ctx, state), do: {[buffer: {:output, buffer}], state}
end
defmodule SimpleFilter do
use Membrane.Filter

def_input_pad :input, accepted_format: _any, flow_control: :auto
def_output_pad :output, accepted_format: _any, flow_control: :push

@impl true
def handle_buffer(:input, buffer, _ctx, state), do: {[buffer: {:output, buffer}], state}
end
28 replies
SMSoftware Mansion
Created by TonyLikeSocks on 4/1/2025 in #membrane-help
Testing a Membrane Bin used in a WebRTC Engine Endpoint
(it is illegal to use flow_control: :auto in sources)
28 replies
SMSoftware Mansion
Created by TonyLikeSocks on 4/1/2025 in #membrane-help
Testing a Membrane Bin used in a WebRTC Engine Endpoint
Hmm, I don't know much about this specific repo, but you could try change flow_control: :push on flow_control: :auto in all filters and sinks
28 replies
SMSoftware Mansion
Created by TonyLikeSocks on 4/1/2025 in #membrane-help
Testing a Membrane Bin used in a WebRTC Engine Endpoint
Do you talk about this repository? https://github.com/fishjam-dev/membrane_rtc_engine
28 replies
SMSoftware Mansion
Created by TonyLikeSocks on 4/1/2025 in #membrane-help
Testing a Membrane Bin used in a WebRTC Engine Endpoint
I see that: 1. You don't link any bin pad in handle_pad_added for :input pad 2. You link :input pad in handle_pad_added for :output pad But where do you link :output pad? I seems it is skipped
28 replies
SMSoftware Mansion
Created by TonyLikeSocks on 4/1/2025 in #membrane-help
Testing a Membrane Bin used in a WebRTC Engine Endpoint
Give me please the implementation of handle_setup that you implement. Maybe the execution of it doesn't end? Please check as well if handle_playing is executed in children of your pipeline.
28 replies
SMSoftware Mansion
Created by TonyLikeSocks on 4/1/2025 in #membrane-help
Testing a Membrane Bin used in a WebRTC Engine Endpoint
Do you implement handle_setup in any child that is spawned in your Pipeline?
28 replies
SMSoftware Mansion
Created by TonyLikeSocks on 4/1/2025 in #membrane-help
Testing a Membrane Bin used in a WebRTC Engine Endpoint
Hm, the code that you posted seems to look good. Could you share assertions that fail as well?
28 replies
SMSoftware Mansion
Created by odingrail on 3/28/2025 in #membrane-help
High WebRTC CPU consumption
What do you mean by ExWebRTC-based pipeline? Do you use membrane_webrtc_plugin?
18 replies
SMSoftware Mansion
Created by odingrail on 3/28/2025 in #membrane-help
High WebRTC CPU consumption
to get events from a specific module, you can filter on telemetry_event_metadata.callback_context.module - telemetry metadata type is https://hexdocs.pm/membrane_core/Membrane.Telemetry.html#t:callback_span_metadata/0
18 replies
SMSoftware Mansion
Created by odingrail on 3/28/2025 in #membrane-help
High WebRTC CPU consumption
All Membrane :telemetry events names match the convention [:membrane, :element | :bin | :pipeline, callback, :start | :stop | :exception], more docs are there: https://hexdocs.pm/membrane_core/Membrane.Telemetry.html
18 replies
SMSoftware Mansion
Created by odingrail on 3/28/2025 in #membrane-help
High WebRTC CPU consumption
and there is no :telemetry event named "membrane.http_adaptive_streaming_parser.handle_buffer.start"
18 replies
SMSoftware Mansion
Created by odingrail on 3/28/2025 in #membrane-help
High WebRTC CPU consumption
@odingrail have you tried recompiling all dependencies?
18 replies
SMSoftware Mansion
Created by TonyLikeSocks on 2/6/2025 in #membrane-help
Testing a filter with flow control :auto?
FYI action redemand checks, if the whole output demand has been already satisfied. If no, it triggers calling handle_demand callback once again. In this case, it means that source_generator is executed once again
8 replies
SMSoftware Mansion
Created by TonyLikeSocks on 2/6/2025 in #membrane-help
Testing a filter with flow control :auto?
Add an action redemand: :output at the end of the list of actions returned in source_generator and let me know, if it helped
8 replies
SMSoftware Mansion
Created by ℓé on 1/21/2025 in #membrane-help
Get Video from RTSP and stream by RTMP
Could you provide some code and error messages? It is hard to solve your problem without that. Or maybe you don't know how to approach the problem and what operations have to be done in the pipeline you need?
9 replies
SMSoftware Mansion
Created by Sameer on 1/5/2025 in #membrane-help
How to send control events upstream/downstream ?
@Sameer there is no need to create a new link from :filter_3 to :filter_1. All you have to do is to return action [event: {:input, %My.Event{}}] in :filter_3 so it will be sent to the :filter_2. IDK what is the implementation of :filter_2, but if it doesn't do anything with events explicitly, %My.Event{} by default will be forwarded to :filter_1. Then, you will be able to handle it there in handle_event(:output, %My.Event{}, ctx, state) callback
7 replies
SMSoftware Mansion
Created by TonyLikeSocks on 10/3/2024 in #membrane-help
Pipeline Error: Pipeline Failed to Terminate within Timeout (5000ms)
It seems reasonable, that your element enters Ortex.run and it stays there for long enough, that default timeout in Pipeline.terminate is exceeded
13 replies
SMSoftware Mansion
Created by TonyLikeSocks on 10/3/2024 in #membrane-help
Pipeline Error: Pipeline Failed to Terminate within Timeout (5000ms)
handle_terminate_request is executed while the element process is still alive and an element might live for a while after this callback ends.
Ahh. Interesting, I did your method and got an entirely different result.
It means that probably the new element is responsible for the pipeline termination delay. It is hard for me to say something more without the code of the whole element
13 replies