Media/WebRTC/ReleaseNotes/43
Contents
Firefox 43 WebRTC/WebAudio Release Notes:
Full listing of all WebRTC/WebAudio bugs marked as Fixed in Firefox 43:
WebRTC bugs: Bugzilla search for WebRTC bugs marked Fixed in Firefox 43
WebAudio bugs: Bugzilla search for WebAudio bugs marked Fixed in Firefox 43
Noteworthy Changes:
IMPORTANT: Firefox will no longer use RTP/SAVPF in m=audio and m=video SDP lines and will instead use UDP/TLS/RTP/SAVPF as required by the JSEP specification. Implementors and webrtc service providers should verify that their implementation/service can cope with this change. Firefox will permit the protocol to be changed back to RTP/SAVPF via SDP munging in JS, as a work around. (See bug 1094447 for more details.)
Other noteworthy changes:
- TURN TCP under e10s support (bug 950660)
- HTMLCanvasElement::CaptureStream support -- now on by default (bug 1177276)
- Ability to change camera resolution with MediaStreamTrack.applyConstraints (bug 912342)
- Foundations for Simulcast (phase 1) (bug 1173601, bug 1193495, bug 1203246)
- Platform support for multiple monitors (UI support for multiple monitors targeted for Fx46) (bug 1037997)
- Web Audio performance improvements (bug 916387, bug 1196109, bug 1196111, bug 1191648, bug 1197028, bug 1199559 )
NOTE: Bitrate property for MediaRecorder is now adjustable (see bug 1161276).
Bug tickets fixed in Firefox 43 (full list):
Core (General) WebRTC:
bug 1037997: Support multiple monitors for getUserMedia
bug 1064223: Retire backwards compatible RTCOfferOptions in about 6 weeks
bug 1152298: Implement an AutoDriver for HTMLCanvasElement::CaptureStream
bug 1167443: mochitest end-of-candidate handling is flawed
bug 1177276: Pref on HTMLCanvasElement::CaptureStream by default
bug 1188376: Separate Hello from non-Hello calls in Telemetry
bug 1188407: WebRTC packetloss telemetry should be rate, not total packets lost
bug 1192203: getUserMedia Video does not work on (some other) Android 2.3 devices
bug 1193045: Wait for mochitest test step results and add extra safety check for 'selected' attribute
bug 1198107: Memory leak when WebRTC LoadManager adjusts resolution for VP8 encoder
bug 1199704: Intermittent test_peerConnection_basicAudioVideoNoBundleNoRtcpMux.html | Test timed out or PeerConnectionWrapper (pcRemote): legal ICE state transition from new to failed
bug 1200614: Intermittent test_peerConnection_twoAudioVideoStreamsCombined.html | application crashed [@ mozilla::media::LambdaRunnable<mozilla::camera::CamerasParent::RecvStopCapture(const int&, const int&)::<lambda()> >::Run]
bug 1200823: [steeplechase] bug 1167443 causes test failures
bug 1201096: Remove WebRTC LSan suppressions
bug 1201209: Intermittent test_nr_socket_unittest | test failed with return code 1
bug 1202424: crash in <T>::operator()
bug 1203701: [steeplechase] missing sdputils
Audio/Video:
bug 901633: Improve internal support for stereo audio in the webrtc media pipeline
bug 912342: Change camera resolution with MediaStreamTrack.applyConstraints()
bug 962719: ASSERTION: Shouldn't have already notified of finish *and* have output!: '!streamHasOutput[i] || !stream->mNotifiedFinished'
bug 1181896: Change gUM() NotFoundError to OverconstrainedError for constraint-failures
bug 1187315: Rename dom/webidl/Constraints.webidl to something less generic
bug 1191298: getUserMedia fails for audio if constraints are specified
bug 1191301: media.navigator.video.use_tmmbr not working
bug 1201197: Enumeration of Devices silently fails when called adjacent to stopping a WebRTC stream
bug 1205339: MOZ_ASSERT in AllocPMediaParent() after tab crash recovery in e10s
Networking:
bug 950660: Support TCP nr_socket in content process.
bug 1008792: Null pointer deref on out of memory in nr_socket_buffered_stun_create
bug 1051052: Generate candidates with SDP mid values
bug 1125292: Support Tunnel-Protocol for WebRTC
bug 1142964: WebRTC: Firefox sends ICE-CONTROLLING with tie breaker = 0x1 and doesn't respond to 487
bug 1186590: Duplicated priorities for IPv6 ICE candidates
bug 1194019: ice_unittest IceGatherTest gathers TCP for UDP tests
bug 1194385: Add new test cases to document current nICEr socket behavior
bug 1194817: Certain high-traffic uses of DataChannels/sctp fail when the packets get too large due to PMTU
bug 1198730: DataChannel PMTUD disable clears other flags by accident
bug 1199766: Disable ICE TCP SO gathering
bug 1200763: IceGatherTest.TestGatherFakeStunServerIpAddress (in ice_unittest) is failing
bug 1205156: Add telemetry to measure how often getUserMedia is used over non-secure origins
bug 1205421: heap overflow in ice_unittest DNS resolution
Signaling:
bug 1094447: Start using UDP/TLS/RTP/SAVPF in offers once it interops
bug 1095793: JsepSessionImpl should be able to use mid on candidates to find which m-section they should be placed in
bug 1173601: simulcast attribute support in sdparta
bug 1176941: Javascript errors in WebRTC IdP sandbox are swallowed
bug 1193495: JsepSessionImpl can create reoffers with duplicate payload types in some situations
bug 1203246: Track negotiation logic should be factored out of JsepSessionImpl
bug 1204082: SDP returned by localDescription property of mozRTCPeerConnection has always same session ID (4294967295)
WebAudio:
bug 916387: ScriptProcessorNode stops calling onaudioprocess when a connected input is GCed.
bug 1190676: "Assertion failure: cycleStackMarker == ps->mCycleMarker"
bug 1191648: don't keep ScriptProcessorNodes alive when they have no audioprocess listeners
bug 1191649: ScriptProcessorNode stops dispatching audioprocess when connected source nodes stop
bug 1192586: Suppress warnings in third-party library media/libav
bug 1192587: Build media/libav in unified mode
bug 1193917: Paper over web audio leaks revealed by event loop changes
bug 1193922: Intermittent web audio leaks caused by RunInStableState changes
bug 1195051: Creating an AudioContext shows the tab sound indicator even without anything playing
bug 1196109: keep memory allocation for mixed input channel pointer array
bug 1196111: don't keep AudioContext alive from AudioBuffer
bug 1197028: release shared buffers from downstream so that upstream can re-use
bug 1197043: use flags to distinguish between AudioNodeStreams wanting external streams and main thread events
bug 1198656: Avoid sometimes unnecessary initial AudioBuffer allocations
bug 1199559: produce generated AudioBuffer contents in a format suitable for direct use
bug 1199560: finish offline audio context processing even when allocation fails
bug 1199561: delay offline channel buffer allocation until non-null input is received
bug 1201854: handle AudioBufferSourceNode stop time precisely even when resampling
bug 1201855: send AudioBufferSourceNode ended event even when the buffer has no channel data
bug 1203380: fix downstream references in AudioBlock