Media/WebRTC/ReleaseNotes/49
Contents
Firefox 49 WebRTC/WebAudio Release Notes:
Full listing of all WebRTC & WebAudio bugs marked as Fixed in Firefox 49:
WebRTC bugs: Bugzilla search for WebRTC related bugs marked Fixed in Firefox 49
WebAudio bugs: Bugzilla search for WebAudio bugs marked Fixed in Firefox 49
Noteworthy Changes:
- Full duplex for Windows is pref'd on. Full duplex for all Desktop OSs is pref'd on in Firefox 49.
- Please report any audio issues you have during a call. (See bug 1243857 and the cubeb bugs that landed in this release for more details.)
- Added support for MediaStream.getTrackById(). (See bug 1208390.)
- getUserMedia(cam+mic) is now all-or-nothing. The MediaCapture and Streams spec [1] says that sites requesting both camera and microphone at the same time, must get both or nothing (in the form of an error). (See bug 802326.)
- Aligned with spec: Fixed issue where ontrack and onaddstream fired too late. (See bug 998546.)
- Properly handle a=inactive in the remote SDP during renegotiation. (See bug 1213773.)
- Allow any MediaStream to be passed to RTCPeerConnection.addTrack. (See bug 1271669.)
- Implement receiving 'b=TIAS' on media description to restrict sending bandwidth. (See bug 1276368.)
- REMB is now enabled by default. (See bug 1155435.)
- We now use AVFoundation for camera capture on OSX. (See bug 1180725.)
- We now disable audio down/up sampling when all the constraints have been passed in gUM. This is very important for use cases other than voice, when using gUM, including, but not limited to, instrument recording, ultrasonic communication, etc (See bug 1268428.)
- Added support for ICE consent freshness (RFC 7675). (See bug 929977.)
- Automated tests now include NAT simulation and TURN server mochitests. (See bug 1231975 and bug 1231981.)
- Fixed packet loss when sending/receiving very high bitrates on Win7. (See bug 1251821.)
- Enabled TMMBR support by default. (See bug 1270230.)
- Update: We need to disable TMMBR due to a regression (video freezing under certain conditions). We're still investigating. Once we have a fix, we'll land it in Fx50 and pref on there. If the fix is safe to uplift to Fx49, we'll do so and then pref TMMBR back on in Fx49. (See bug 1279039.)
Bug tickets fixed in Firefox 49 that affect WebRTC or Web Audio (full list):
Audio/Video:Cubeb :
bug 1266623 Distortion capturing audio in full_duplex mode on windows from W520 built-in mic
bug 1267930 crash in shutdownhang | `anonymous namespace'::stop_and_join_render_thread(cubeb_stream*)
bug 1269692 Update cubeb to revision 17e3048d0afa1152776fb1867cdb61c49fae69e4.
bug 1270004 Crash in winmm_stream_init
bug 1270062 Update libcubeb to revision b576c355498b44a277f00b6a7d006549b3519013
bug 1275098 AudioConverter.cpp is going to have Werror permafail when Gecko 49 merges to Beta on clang-based builds
Audio/Video:GMP (Gecko Media Plugin):
bug 1263951 crash in mozilla::ipc::TransferHandleToProcess (GMP related)
bug 1265815 Spike in Windows GMP crashes in Firefox 46
bug 1266286 Ensure GMP crash reports are being reported for EME GMPs with e10s enabled
bug 1268434 [GMP] crash in mozilla::InvokeAsync<T>
bug 1268714 Near-null crash in gmp::GetContentParentFromDone::Done
bug 1268822 ASSERTION: Mismatched sizes were recorded in the memory leak logging table.
bug 1268984 WebRTC H264 video rendering issue
bug 1271169 [EME] Unit test for NodeId generation
bug 1278036 ./media/gmp-clearkey/0.1/Endian.h shadows /usr/include/endian.h on a case-folding filesystem
Audio/Video:MediaStreamGraph (MSG):
bug 957691 Intermittent test_getUserMedia_constraints.html | Assertion count 7 is greater than expected range 0-0 assertions. (and several more) "###!!! ASSERTION: Slice out of range: 'aStart >= 0 && aEnd <= aSource.mDuration'"
bug 1208390 Implement MediaStream.getTrackById()
bug 1266644 Rename StreamBuffers to StreamTracks.
bug 1266647 Clean NotifyQueuedTrackChange to only notify when command is track create and track end.
bug 1266926 Heap-use-after-free in mozilla::dom::HTMLMediaElement::NotifyDecoderPrincipalChanged
bug 1267600 Ask the main thread to shut down the SystemClockDriver if needed
bug 1268861 Insert the input data first and then run the graph iteration
bug 1271566 VideoTrackList::RemoveTrack/AddTrack should also update selected index.
bug 1275541 Fix the name conflict of macro GetCurrentTime() in WinBas.h and MediaStream::GetCurrentTime()
bug 1275596 createMediaElementSource on YouTube video turns off the audio of any video played thereafter
bug 1275648 Bug 1208371: check return value of GetPipelineByTrackId_m
bug 1277284 Investigate volume issue on Linux for the MSG
Audio/Video:Media Recording:
bug 1205865 Enable test_mediarecorder_bitrate.html for Android 2.3
bug 1270575 Media Encoder threads leak until shutdown in MediaRecorder
WebAudio:
bug 996685 Report an error in the console when a cross-origin media element is used with a MediaElementAudioSourceNode
bug 1220649 Intermittent leakcheck | tab process: 1836 or 1920 or 4448 or 7560 bytes leaked (AsyncLatencyLogger, AudioContext, AudioDestinationNode, AudioNode, AudioNodeEngine, ...)
bug 1259831 Regression: Web Audio cuts off when devtools is opened on the page.
bug 1263910 Optimize ReverbAccumulationBuffer code to use SSE2 calls when possible
bug 1264440 Intermittent test_peerConnection_webAudio.html | application crashed [@ mozilla::CycleCollectedJSRuntime::ProcessMetastableStateQueue]
bug 1265397 Add a `length` attribute to the OfflineAudioContext
bug 1265405 Use a dictionary to specify how PeriodicWave should be normalized (or not)
bug 1266112 Handle unaligned buffers in AudioNodeStream::AccumulateInputChunk
bug 1267096 "Assertion failure: mGlobal" - mozilla::dom::Promise::Promise - mozilla::dom::AudioContext::StartRendering
bug 1267579 Unexpected result when using OscillatorNode with custom wave shape
bug 1270055 Unaligned buffer used in DynamicsCompressor
bug 1270187 Small typo in MediaStreamAudioSourceNodeCrossOrigin string
bug 1275754 Strip obsolete updates from MediaStreamGraphImpl::mStreamUpdates when adding new updates
Core (General) WebRTC:
bug 802326 If video and audio is requested in gUM, but one of them fails, we should align with the spec
bug 998546 ontrack and onaddstream fire too late
bug 1213050 Intermittent test_zmedia_cleanup.html | application crashed [@ mozilla::(anonymous namespace)::RunWatchdog(void*)]
bug 1213773 properly handle a=inactive in the remote SDP during renegotiation
bug 1264470 a=identity attribute is truncated, duplicated
bug 1269268 Intermittent leakcheck | default process: 212 bytes leaked (CondVar, Mutex, Runnable, nsTArray_base, nsThread)
bug 1271041 Switch NetBSD to pthread_condattr_setclock(,CLOCK_MONOTONIC) in WebRTC
bug 1271669 Allow any MediaStream to be passed to RTCPeerConnection.addTrack
bug 1273965 MediaPipelineFactory.cpp:1015:10: warning: code will never be executed [-Wunreachable-code]
bug 1276156 deadlock shutting down vie_encoder in statistics
bug 1276368 Implement receiving 'b=TIAS' on media description to restrict sending bandwidth
bug 1276383 Add nsIAsyncShutdown.xpcomWillShutdown and use it in WebRTC
WebRTC:Audio/Video:
bug 1019579 PeerConnection MUST include all remote tracks after SetRemoteDescriptionSuccessCallback
bug 1155435 WebRTC - investigate enabling REMB
bug 1180725 Use AVFoundation for camera capture on OSX
bug 1206708 WebRTC video is doing copying video frames more than it needs to
bug 1207431 Intermittent leakcheck | default process: 600 bytes leaked (CondVar, Mutex, nsRunnable, nsTArray_base, nsThread, ...)
bug 1243857 Enable full-duplex cubeb backends for Desktop
bug 1257950 getUserMedia spec switched from SecurityError (for permission denied) to NotAllowedError.
bug 1268428 Disable audio down/up sampling when all the constraints have been passed in gUM
bug 1269165 getUserMedia fails to enumerate ALSA plugins
bug 1269930 Crash on windows when logging AEC data from about:webrtc
bug 1273136 PeerConnection shouldn't expose a received MediaStreamTrack without guaranteeing that the underlying track goes live
bug 1273206 enumDev/gUM starts RTP thread in 5ms loop
bug 1275217 Remove QTKit dependency
bug 1275703 AEC is off in second and later getUserMedia() calls
WebRTC:Networking:
bug 929977 ICE consent freshness (RFC 7675) not implemented
bug 1231975 Mochitests for NAT scenarios
bug 1231981 Test TURN server for mochitest in CI
bug 1240209 Increased latency with WebRTC data channels
bug 1251821 [WebRtc] Packet loss when sending/receiving RTP stream (1080P) in windows 7
bug 1266468 Assertion in nr_ice_media_stream_start_checks caused by incoming STUN request after ICE failure
bug 1268291 ICE Consent request are missing priority and controlled
bug 1268449 [Static Analysis][Resource leak] In function Resolve from ice_unittest.cpp
bug 1269486 ICE role switch when answerer starts renegotiation
WebRTC:Signaling:
bug 1270230 WebRTC Offer SDP should include tmmbr by default and answer offers with tmmbr
bug 1271429 sdp_unittests doesn't Shutdown() the pseudo-main thread before finishing
bug 1271862 Fail to increase SDP session version in renegotiated answer