It’s been a long time since the last blogpost, but that doesn’t mean that there haven’t been any progress. On the contrary, a bunch of new features from WebRTC 1.0 have been implemented and the upstreaming to the official WebKit repository is complete. Let’s start by looking at a new feature.
One major update is the introduction of the RTCRtpTranscevier object. It ties together an RTCRtpSender and an RTCRtpReceiver and represents a media description, also known as a “m= line”, in SDP. When you do addTrack() and get an RTCRtpSender, an RTCRtpTransceiver is also created automatically. With the transceiver, you also get an RTCRtpReceiver with a track, representing incoming media, that you can start rendering right away, but it will remain muted until you have negotiated media with the remote peer. There’s also a dedicated API, addTransceiver(), to work directly with transceivers. This API lets you do more advanced stuff like offering to receive five video tracks without sending any video yourself.
As described in previous blogposts, we have kept our experimental code in a fork of WebKit, but the intention has always been to upstream and work in the main WebKit repository. We are happy to say that we have reached a point where we can retire our fork and continue the development upstream. This means that you will get all our code when you do a regular checkout, or clone, of WebKit. We will keep the fork around for a while since it still contains some experimental code and hacks that we want to keep easily accessible.
Finally, some other great news. Philippe and Alex (Igalia) decided make the WebKit GTK+ MiniBrowser work in the wild with some real WebRTC-based services. As of this time, they have AppRTC and appear.in working.