RTP stream

I'm trying to get a simple RTP stream pipeline working but hit the following error:

16:22:57.782 [error] GenServer #PID<0.308.0> terminating
** (KeyError) key #Reference<0.1227858978.1981546498.158967> not found in: %{}
    :erlang.map_get(#Reference<0.1227858978.1981546498.158967>, %{})
    (membrane_rtp_plugin 0.24.1) lib/membrane/rtp/session_bin.ex:430: Membrane.RTP.SessionBin.handle_pad_added/3

This appears to be due to the ssrc_pt_mapping being empty - how does this get populated? This is my initial pipeline:

child(:video_src,
  %Membrane.UDP.Source{
    local_address: {127, 0, 0, 1},
    local_port_no: 1234
  })
|> via_in(:rtp_input)
|> child(:rtp, Membrane.RTP.SessionBin)
|> child(:out, %Membrane.File.Sink{location: "tmp.ts"})

The one key difference from the demo is I'm streaming an mpeg ts payload so payload type is 33. All works fine with ffplay so I guess I'm missing something in the Membrane setup.

11 responses