Releases: elixir-webrtc/ex_webrtc
v0.14.0
- [BREAKING] - So far, RTPReceiver was always expecting to receive a single codec i.e. a single payload type. When it received RTP packet with the same SSRC but different payload type, it was forwarding this packet to the user but it was also logging this fact as a warning. Right now, RTPReceiver can receive any codec from the list of transceiver's codecs. This also means, that the meaning of the
codec
field inRTPTransceiver
struct changed its meaning - now it is a codec whose clock rate was used to initialize RTCP report generators. To see the list of all supported (by RTPReceiver) codecs, check RTPTransceiver codecs field.
What's Changed
- Fix retriving ice-lite attribute by @OctopusRage in #217
- Add support for receiving DTMF tones by @mickel8 in #215
New Contributors
- @OctopusRage made their first contribution in #217
Full Changelog: v0.13.0...v0.14.0
v0.13.0
v0.12.0
v0.11.0
v0.10.0
-
[BREAKING] - PeerConnection process no longer terminates after moving to the failed state. From now on, it's user responsibility to decide when to terminate PeerConnection process. This was introduced to make it possible to gather statistics when the connection fails. It also makes it possible to perform ICE restart. For better explanation see: #202
An example code that closes both PC and the controlling process (assuming they are linked) when the PC moves to the failed state could look like this:
defp handle_webrtc_msg({:connection_state_change, conn_state}, state) do Logger.info("Connection state changed: #{conn_state}") if conn_state == :failed do # shutdown will bring PeerConnection process down if it is linked to **this** process {:stop, {:shutdown, :pc_failed}, state} else {:ok, state} end end
Check #202 to see how we migrated our examples!
-
Candidates are no longer removed from PeerConnection stats when their sockets are closed, pairs that use them fail, or ICE moves to the completed state. So far, we have been clearing ICE Agent from candidates when they were no longer needed. From now on, they will remain in stats until PeerConnection process is closed so it's possible to debug ICE connectivity issues
What's Changed
- Don't terminate PeerConnection after moving to the failed state by @mickel8 in #202
- Add candidate pairs stats by @mickel8 in #203
Full Changelog: v0.9.0...v0.10.0
v0.9.0
v0.8.1
v0.8.0
[BREAKING] PeerConnection now compares FMTP when negotiating codecs. If sdp_fmtp_line
in RTPCodecParameters
is nil
, FMTP comparision always passes.
MID RTP header extension is no longer required - see d74a937
What's Changed
- Use track id in get_stats by @roznawsk in #176
- Improve RTPCodecParameters docs by @mickel8 in #178
- Handle ICE candidates with missing
usernameFragment
by @samrat in #181 - Add PeerConneciton.set_packet_loss by @mickel8 in #182
- Track recordings by @sgfn in #180
- Don't forward user's RTP header extensions in
send_rtp/4
by @mickel8 in #184 - Add ssrc attributes to the SDP by @mickel8 in #185
- Fix RC in data_channel_test.exs by @mickel8 in #189
- Hide generate_data_mline function by @mickel8 in #188
- Pass all codecs instead of selected one to the rtp_receiver and rtp_sender by @mickel8 in #187
- Add set_sender_codec by @mickel8 in #190
New Contributors
Full Changelog: v0.7.0...v0.8.0
v0.7.0
What's Changed
- Fix ICECandidate types by @roznawsk in #174
- Update deps. Bump version to 0.7.0
Full Changelog: v0.6.3...v0.7.0