Packages
membrane_rtp_plugin
0.5.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/rtcp/forwarder.ex
defmodule Membrane.RTCP.Forwarder do
@moduledoc """
Serializes and forwards `Membrane.RTCP.CompoundPacket`s via output pad.
"""
use Membrane.Source
alias Membrane.{Buffer, RemoteStream, RTCP}
def_output_pad :output,
mode: :push,
caps: {RemoteStream, type: :packetized, content_format: RTCP}
@impl true
def handle_init(_options) do
{:ok, %{}}
end
@impl true
def handle_prepared_to_playing(_ctx, state) do
{{:ok, caps: {:output, %RemoteStream{type: :packetized, content_format: RTCP}}}, state}
end
@impl true
def handle_other({:report, %RTCP.CompoundPacket{} = report}, _ctx, state) do
buffer = %Buffer{payload: RTCP.CompoundPacket.serialize(report)}
{{:ok, buffer: {:output, buffer}}, state}
end
end