A meeting with the Safari Media / WebRTC team

The last post about Safari and webrtc, and the webrtc-in-webkit project was published almost a year ago, and a lot happened since.

Last month I had the opportunity to do a follow up meeting with the Media / WebRTC team at Apple in the valley, and I thought it would be a good time for a follow up.

The webrtc-in-webkit project has been very successful at laying down all the foundations. The JS APIs are in place, the webcore design is ready, and while not everything has been yet pushed into the main webkit repository, interoperability between the (webkit-based) linux browser and Chrome has been achieved last december. The majority of the work has been done by Adam B., editor of the webRTC specs, from Ericsson R&D, with help from Centricular, Igalia, and the openWebRTC team within Ericsson, among others.

Since January, Igalia has been officially contracted by several Sponsors including Citrix, to bring the code to the main webkit repository faster.

According to Apple things are “a million times easier now thanks to the webrtc in webkit effort” but there is still a lot of work to do. Since june last year, after a synchronization “IRC meeting”, Apple has been working on several Safari and web view specific parts, including but not limited to the capacity to acquire media from device using their native AVFoundation framework. The result was good enough for Apple to decide, in july 2015, to enable the Media Device API in the nightly builds.

More recently, we, at Citrix, updated the web-platform tests against the latest W3C specifications, and updated adapter.js to recognize and support Safari.

The IMTC, whose WebRTC Interoperability group I co-chair, sponsored Philip Hancke to upgrade adapter.js to shim ORTC in Edge better as well. WebRTC interoperability between browsers using adapter.js is getting better as we speak.

Unfortunately, the camera/microphone access security prompt being part of the Safari front end, which is not updated by webkit nightly, there is no way to test the Media Device API fully. In the mean time, Apple released the Safari Tech preview. the SafariTP is something of compromise between safari stable, and webkit nightly. It has newer features than safari stable. Without being as cutting edge as nightly, it offers two advantages over it: stability, and updates of the UI. Some features require the UI to be updated as well, and that was not possible with webkit nightly. My hope now is that in a future release of SafariTP we’re gonna see an implementation of the Media Device access Security prompt and be able to test all those APIs we can see but can’t use right now.

While the Media Device APIs seems to be all here and complete (one can check by recompiling webkit and running the tests, which control the prompt programmatically), no PeerConnection object seemed available.

According to Apple, “The design used for peerconnection in webkitGTK by webrtc-in-webkit (which leverages GStreamer and Ericsson’s OpenWebRTC) might not be directly reusable for Safari. The way GObjects are being used is problematic, and we usually prefer using the native frameworks like AVFoundation. Webrtc specs are also less mature than the Media Device ones“.  They did not confirm nor denied working on peer connection implementation.
For all the W3C members, and/or everybody in Lisbon at that time, the apple Media / WebRTC team should have representatives at the next W3C Technical plenary in September. Surely a great opportunity to revisit the status of webrtc in safari.
In the mean time, you can enjoy the new capacity Apple is providing you:
You can ask question live about this post at today’s standards update webinar.

Creative Commons License
This work by Dr. Alexandre Gouaillard is licensed under a Creative Commons Attribution 4.0 International License.

This blog is not about any commercial product or company, even if some might be mentioned or be the object of a post in the context of their usage of the technology. Most of the opinions expressed here are those of the author, and not of any corporate or organizational affiliation.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.