Personal tools

Mobile/Projects/WebRTC platform support

From MozillaWiki

Jump to: navigation, search


WebRTC Platform Support

Goals for Fx25

  • Now that we have the support for video uplink and WebRTC preff'd on by default; the focus for Fx25 is to fix crashes and increase call quality by decreasing audio latency:
    • [ON TRACK] bug 902431 - crash in webrtc::videocapturemodule::VideoCaptureAndroid::AttachAndUseAndroidDeviceInfoObjects
    • [ON TRACK] bug 884365 - Audio realtime input clock mismatch (drift) blows up delay in MediaStreamGraph
  • Continued testing of a variety of network configs:

Goals for Fx26

  • Continued improvements to stability
    • [ON TRACK] bug 918372 - Repeated WebRTC sessions exhaust the JNI LocalRef table

Goals for Fx27

  • Continued improvements to decrease audio latency:
    • [ON TRACK] bug 864654 - Video RTCP SR's are never sent because of conduit split
  • It looks like a fix for, may be uplifted, but I'm confirming: bug 943461 - Camera LED doesn't turn off after stream.stop() is called

Goals for Fx28

  • [ON TRACK] Update to WebRTC v3.43 and complete related code cleanup to avoid any regressions
  • [ON TRACK] bug 946865 - LoadMonitor::Init uses preferences off the main thread

Goals for Fx29

  • [ON TRACK] Support VP8 codec (we currently use VP8 for all of our real-time video compression)
  • [PROPOSED]H.264 support
  • [ON TRACK] No support for Android 2.2
  • [ON TRACK]No support for ARMv6 devices
  • Bluetooth support is not required for initial release

User stories

Developers are the target audience for Fx24 and Fx25
End users will be the target audience in a future version

UX design

  • For the first release in Fx24, we really don't have "UX" beyond the drop-down asking the user to share their camera/audio mic upon visiting a WebRTC web page and/or inciting a call.

Quality criteria


With developers being the target audience, our assumed user demographic is one with a higher tolerance for bugs and issues
  • General quality allows for a ~5min calls that allow for testing on part of developers
  • We want to make sure we preserve user control and shut down gracefully upon calls ending so we're pushing for a "root cause" fix for bug 904784 - Local shared active media does not stop recording on tab close

Post-Fx24 GA [ON TRACK]

While we can't predict what may arise after we ship, we want to be sure to target our efforts and respond to issues that truly meet the bar for dot releases and chem spills. This includes
  • Privacy or security issues that put our users at risk
  • Regressions in basic functionality of the browser
  • An intense spike in start-up crashes

Fx25 Goals [ON TRACK]

  • Reduced Audio latency for ~5 min calls as compared to Fx24
  • [ON TRACK] A fix for bug 902431 crash in webrtc::videocapturemodule::VideoCaptureAndroid::AttachAndUseAndroidDeviceInfoObjects
  • No critical regressions we would consider blocking on

Fx26 Goals [ON TRACK]

Fx27 Goals

Fx28 Goals

Fx28 Goals


ID Priority Summary Status Assigned to
819854 -- make WebRTC signalling unit tests pass on Android NEW dmose
859430 -- Add Bluetooth headset functionality to WebRTC calls ASSIGNED
862839 -- Disallow saving or sharing of a LocalMediaStream blob object from the source of a video element NEW
881153 -- Cannot share the front camera and back camera across different tabs at the same time on FxAndroid REOPENED
905699 -- Support application preferences for cameras and mics in getUserMedia() prompts (Android) NEW
910964 -- pad block corrupted on NEW
918133 -- Playback of gUM audio on with headphones generates echo on mobile devices, but not on desktop NEW
918953 -- Investigate broken Android WebRTC cleanup code, potential upstream merge errors NEW

Open; Resolved; Total (0% complete)


ID Priority Summary Status Assigned to
750869 -- Support WebRTC for Android in our build system RESOLVED gpascutto
812650 P2 android webdev wants to capture audio using mozGetUserMedia VERIFIED gpascutto
812681 P2 android webdev wants to be able to receive audio call via PeerConnection RESOLVED
815905 P2 WebRTC on Android 2.2 builds crash due to missing OpenSLES backend RESOLVED gpascutto
819822 -- trivial uses of Android PeerConnection fail even when build patches applied RESOLVED dmose
819825 -- some ICE/STUN negotiations hang or crash on Android in mbslen() RESOLVED dmose
819856 -- WebRTC voice engine code disabled on Android RESOLVED dmose
830935 -- need a way to get Fennec's Activity Context from C++ RESOLVED dmose
830942 P2 getUserMedia fails to use video capture devices because it doesn't attach to a JVM RESOLVED dmose
835716 -- Enable building of WebRTC on Android by default VERIFIED gpascutto
835973 -- getUserMedia video capture fails because Android JNI classes not built and packaged RESOLVED dmose
839831 -- jsjni_ functions should be usable without MOZILLA_INTERNAL_API (e.g. in WebRTC code) RESOLVED gpascutto
839836 -- add an alternative to FindClass usable from other threads without MOZILLA_INTERNAL_API (e.g. WebRTC code) RESOLVED dmose
839841 -- make video engine load Android capture classes correctly by using GetGlobalClassRef RESOLVED dmose
839907 -- Android web dev should be able to use getUserMedia to capture video RESOLVED dmose
840244 -- Android getUserMedia captured video sideways on some phones RESOLVED gpascutto
844177 -- Codec resolution for sending should match input video resolution VERIFIED rjesup
845711 -- Get correct EXTRA_GYP_DEFINES for arm RESOLVED slee
858176 -- WebRTC calls crash in DeleteGlobalRef in release mode builds only RESOLVED gpascutto
859805 -- libcubeb fails to initialize on Android 2.3.6 RESOLVED paul
861146 -- Provide pthread_rwlock replacement for Android 2.2 RESOLVED gpascutto
861637 -- error: undefined reference to 'clone' in mediapipeline_unittest RESOLVED gpascutto
862377 -- Android WebRTC permissions UI will only respect first doorhanger VERIFIED wjohnston
862669 P1 Fix some warnings in SIPCC Android code RESOLVED cpeterson
862808 -- Local Video is upside down on Android when in portrait mode VERIFIED gpascutto
862883 P2 Enable webrtc mochitest automation for FxAndroid RESOLVED jsmith
863290 -- crash in webrtc::videocapturemodule::DeviceInfoAndroid::NumberOfDevices RESOLVED gpascutto
866093 -- application crashed [@ webrtc::VoEExternalMediaImpl::SetExternalRecordingStatus(bool)] RESOLVED gpascutto
867778 P2 Enable webrtc crashtests on FxAndroid VERIFIED jsmith
873812 -- Trying to establish a call from an Android device to a Windows machine fails to render the remote video streams VERIFIED gpascutto
874401 -- Active Camera Or Microphone should be clearly displayed VERIFIED wjohnston
874546 -- getUserMedia - Video playback does not resume when browser returns to being the foreground activity VERIFIED gpascutto
874569 -- getUserMedia - Video playback orientation does not adapt to device orientation VERIFIED gpascutto
874572 -- getUserMedia - Browser holding lock on device camera despite browser activity in the background and paused VERIFIED gpascutto
875640 -- Fix and re-enable crashtest for bug 855796 on Android VERIFIED ethanhugg
877248 -- Preview Surface for Camera is visible in upper left corner VERIFIED gpascutto
878613 -- gUM - Camera/Microphone selection looks disabled VERIFIED wjohnston
879335 -- Remove WebRTC + permissions from Firefox 23 VERIFIED gpascutto
880437 -- java.lang.NullPointerException: at org.webrtc.videoengine.VideoCaptureAndroid.DeleteVideoCaptureAndroid( RESOLVED gpascutto
881875 -- Pref on media.navigator.enabled and media.peerconnection.enabled on FxAndroid Nightly VERIFIED wjohnston
882136 -- Camera share icon gets stuck in the notification bar; media lock held on tab close VERIFIED wjohnston
885031 -- java.lang.NoClassDefFoundError: android.hardware.Camera$CameraInfo at org.webrtc.videoengine.VideoCaptureAndroid.GetRotateAmount( on Froyo RESOLVED gpascutto
885768 -- Cannot make a getUserMedia request within an iframe VERIFIED mark.finkle
885783 -- Followup to bug 882136 - Camera share icon gets stuck in the notification bar; media lock held on tab close VERIFIED wjohnston
886886 P1 Replace fixed-ratio audio resampler in capture code with Speex resampler and eliminate pseudo-44000Hz rate VERIFIED rjesup
887227 -- crash in webrtc::videocapturemodule::DeviceInfoAndroid::NumberOfDevices VERIFIED gpascutto
887693 -- crash in webrtc::videocapturemodule::DeviceInfoAndroid::CreateCapabilityMap RESOLVED gpascutto
888274 -- Upgrade to RFC 5389 STUN VERIFIED ekr
891158 -- getUserMedia - Switching between landscape orientations on a rendered camera video stream in FxAndroid does not switch to the other landscape orientation VERIFIED gpascutto
894882 -- Make sure the correct host is displayed when prompting for WebRTC from iframes RESOLVED
902431 -- crash in webrtc::videocapturemodule::VideoCaptureAndroid::AttachAndUseAndroidDeviceInfoObjects VERIFIED gpascutto
902453 -- Simple gUM Test Page demo not working on Firefox for Android (Beta) 24.0 - ReferenceError: browser is not defined -- no media selection prompt VERIFIED mark.finkle
904754 -- Quality of calls in video+audio between Android ↔ Android is unusable with Mozilla wifi involved RESOLVED rjesup
904784 -- Local shared active media does not stop recording on tab close VERIFIED rjesup
916609 -- WebRTC permission UI broken on Fx26 ("browser is not defined) VERIFIED jib
918186 -- crash in java.lang.NullPointerException: at org.webrtc.videoengine.VideoCaptureAndroid.onPreviewFrame( RESOLVED jsmith
928870 -- Basic tests for Android WebRTC UI RESOLVED gpascutto

Open; Resolved; Total (52.63% complete)