Media/WebRTC/ReleaseNotes/49

From MozillaWiki
Jump to: navigation, search

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