Packages
membrane_rtp_plugin
0.15.0-rc.1
0.31.5
0.31.4
0.31.3
0.31.2
0.31.1
0.31.0
0.30.0
0.29.1
0.29.0
0.28.0
0.27.1
0.27.0
0.26.0
0.25.0
0.24.1
0.24.0
0.23.2
0.23.1
0.23.0
0.22.1
0.22.0
0.21.0
0.20.0
0.19.1
0.19.0
0.18.0
0.17.1
0.17.0
0.16.0
0.15.0
0.15.0-rc.1
0.14.0
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.1-alpha.3
0.7.1-alpha.2
0.7.0-alpha.2
0.7.0-alpha.1
0.7.0-alpha
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0-alpha
Membrane Multimedia Framework plugin for RTP
Current section
Files
Jump to
Current section
Files
lib/membrane/rtp/depayloader_bin.ex
defmodule Membrane.RTP.DepayloaderBin do
@moduledoc """
Modules responsible for reordering incoming RTP packets using a jitter buffer
to later depayload packet's payload from RTP format.
"""
use Membrane.Bin
alias Membrane.RTP.JitterBuffer
def_options depayloader: [
spec: module(),
description: "Depayloader module that should be used for incoming stream"
],
clock_rate: [
spec: RTP.clock_rate_t()
]
def_input_pad :input,
caps: RTP,
demand_unit: :buffers
def_output_pad :output,
caps: RTP,
demand_unit: :buffers
@impl true
def handle_init(opts) do
links = [
link_bin_input()
|> to(:jitter_buffer, %JitterBuffer{clock_rate: opts.clock_rate})
|> to(:depayloader, opts.depayloader)
|> to_bin_output()
]
{{:ok, spec: %ParentSpec{links: links}}, %{}}
end
end