- Implement RTCPeerConnection track event on PluginRTCPeerConnection and RTCPeerConnection SHIM #508
- Fix WebRTC-adapter <= 7.5.0 track SHIM failure
- Fix WebRTC-adapter >= 7.6.0 track missing SHIM
- Add SHAM for MediaStreamTrack.getSettings|getCapabilities
- Add Throw Error Not implemented for MediaStreamTrack.getConstraints|applyConstraints
- Fix RTCPeerConnection.prototype.getStats.length to match features detection #511
- Fix Error: Callbacks are not supported by "RTCPeerConnection.prototype.getStats" anymore, use Promise instead. #510
- Fix Regex in iosrtc-swift-support.js returns wrong value #502
- Fix Backgroundcolor is now "clear" instead of "black" #514
- Fix gulp-util is deprecated - replace it #428
- Add support for MediaStreamTrack.clone() method #474
- Add basic RTCRtpTransceiver|RTCRtpSender|RTCRtpReceiver shim #423
- Fix getReceivers method doesn't return RTCRtpReceiver array #442
- Fix Blob only support for iOS 10.x that does not know MediaStream #495
- Incompatibility with Janus WebRTC gateway when using WebRTC-adapter >= 7.6.0 #505
- Improve getUserMedia compatiblity with Twilio Video #497
- Fix possible duplicate remote streamId/trackId with janus/kurento/freeswitch or short duplicate name #493
- Fix Calling removeTrack/addTrack does not update renderer #492
- Fix ios 10.2+ issue with loading cordova when iosrtc plugin present. #488
- Fix TypeError: undefined is not an object(evaluating 'originaMediaStream.prototype') #485
- Handle ios 10.x.x that does not have MediaStream Native Prototype and fallback on Blob with EventTarget shim #489
- fix possible TypeError: null is not an object (evaluating 'iceCandidateFields.foundation') due fail match candidateToJson #473
- fix getStats typo report.timestamp #472
- Fix getMediaDevice audioConstraints to allowing audio devices change #470
- Add Known Issues > iOS >= 13.3.1 Device support to README.md
- Implement candidateToJson SDP candidate parser into RTCIceCandidate to populate foundation, component, priority, type, address, ip, protocol, port, relatedAddress and relatedPort RTCIceCandidate values #468
- Fix PeerConnection.addStream|addTrack by using UUID().uuidString preffix for PluginMediaStream and PluginMediaStreamTrack only for Janus #467
- Missing Event.target value on iosRTC Events to fix Datachannel for Janus.js #447
- Update extras/renderer-and-libwebrtc-tests.js
- Update ios_arch.js script link (PR #457 by @onerinas)
- Fix removeStream and add real Ids with UUID suffix to PluginMediaStream and PluginMediaStreamTrack (PR #460)
- handle webrtc-adapter multiple video.optional constraints values add support for maxHeight and maxWidth
- Update README with sdpSemantics, bundlePolicy, rtcpMuxPolicy sample
- Fix missing typeof on constraints.video.facingMode.ideal
- Improve video constraints (width|height|aspectRatio|frameRate).(ideal|exact) and add (aspectRatio|frameRate|facingMode).(ideal|exact) support enhancement #451
- Generate unique PluginMediaStream and PluginMediaStreamTrack, keep original streamId/trackId for internal calls #447
- Add English facingLabel suffix if localizedName does not match for facing detection using label, fix PluginEnumerateDevices ordered array #446
- Implement PluginRTCAudioController setCategory and use audioMode AVAudioSession.Mode.voiceChat and make initAudioDevices non-static #448
- Fix Callbacks support for getUserMedia (PR #453 by @onerinas)
- make second argument MediaStream of RTCPeerConnection.prototype.addTrack optional #437
- remove redundant PluginRTCAudioController.initAudioDevices call in getAllAudioDevices causing AVAudioSession to reset to its default settings #439
- implement M69 Native RTCPeerConnection.(addTrack|removeTrack) and sdpSemantics unified-plan support #407
- fix insertDtmf #431
- fix stopCapture while RTCCameraVideoCapturer is not capturing causing crash due Assertion failure in -[FBSSerialQueue assertOnQueue] #426
- Use WebRTC M69
- Use WebRTC.framework
- implement PluginRTCVideoCaptureController with MediaTrackConstraintSet
- Replace the libwebrtc static lib with the dynamic library from the WebRTC.framework build process using M69 (PR #399 by @hthetiot)
- Be able to use minAspectRatio/maxAspectRatio #287
- webrtc/adapter breaks deviceId constraint #282
- Support for facingMode as a video constraint #315
- Capturing a static image from the local MediaStream #116
- Added Speakerphone funcionality #379
- Restore PluginRTCAudioController including selectAudioOutput and move EnumerateDevice. setPreferredInput| saveAudioDevice into PluginRTCAudioController
- Fix closing and re-opening local stream several times #247
- H264 issues #170
- implement RTCPeerConnectionFactory(encoderFactory, decoderFactory) using getSupportedVideoEncoder to enable VP8 and VP9 #416
- Add Script to manipulate WebRTC binary architectures #421
- Use clean WebRTC.framework build with x86 and ARM support #412
- Decode XML entities in project name in iosrtc-swift-support.js hook #413
- Update travis build to use Xcode 11.0 (11A420a) and iOS 13 support #376
- Generic RTCPeerConnection constraint handling #119 via #394
- Video renders in landscape, but not portrait orientation #360
- Adapter JS change frameRate constraints #286
- Regression switch camera fail (stop stream, remove stream from peer, get stream, add stream to peer, renegociate, fail on m69 but not master)
- Fix GSM call interrupts the current WebRTC call (Note: Use cordova.plugins.backgroundMode.enable(); on local media Start/Stop).
- Decode XML entities in project name in iosrtc-swift-support.js hook (PR #413 by @GProst).
- Fix RTCPeerConnection.addTrack when providing stream argument and when multiple tracks are added.
- Handle webrtc-adapter getUserMedia constraints mandatory / optional syntax (PR #405 by @hthetiot).
- Restore Callbacks Support on registerGlobals getUserMedia|enumerateDevices RTCPeerConnection.prototype.createAnswer|createOffer|setRemoteDescription|setLocalDescription|addIceCandidate support for JsSIP, SIP.js and sipML5 (PR #404 by @hthetiot).
- Update extra/hooks/iosrtc-swift-support.js to be trigger on after_prepare and handle existing SWIFT_OBJC_BRIDGING_HEADER values instead of overiding them (PR #402 by @hthetiot).
- Update README.md usages typo and add Requirements about swift-version add npm version badge and travis status badge.
- Fix MediaStream.create false positive "ERROR: video track not added" and "ERROR: audio track not added" cause the rtcMediaStream already has them internaly trigger by getUserMedia.
- Detect deprecated callbacks usage and throw Error instead of been silent to assist 5.0.1 to 5.0.2 migration from WebRTC callback RTCPeerConnection.(createOffer|createAnswer|setLocalDescription|setRemoteDescription|addIceCandidate|getStats) and getUserMedia API.
- Reset enumerateDevices videoinput order with front camera first to keep legacy behavior.
- Use safeAreaLayoutGuide for ios 11 and NSLayoutConstraint for ios 10 to fix elementView bad position depending status bar visibility (PR #367 by @hthetiot).
- Recognize when a video receives a new srcObject and re-render it (PR #367 by @SejH).
- Fix MediaStream.active getter issue.
- Fix cordova.plugins.iosrtc.observeVideo MutationObserver issue with srcObject using loadstart and emptied events that does get triggered.
- Add NSBluetoothAlwaysUsageDescription to Info.plist for wireless headphones and microphone consent.
- Deprecate usage of
video.src = URL.createObjectURL(stream)
in favor ofvideo.srcObject = stream
only MediaStream are not Blob anymore. (PR #388 by @hthetiot). - Update audio input priority to Wired microphone > Wireless microphone > built-in microphone. (PR #387 by @CSantosM).
- Add possible missing argument for parameter 'mode' in call on audioSession.setCategory.
- Remove WebRTC callback based API for RTCPeerConnection.(createOffer|createAnswer|setLocalDescription|setRemoteDescription|addIceCandidate|getStats) and getUserMedia.
- Set default deployment target to 10.2
- Implement partial RTCPeerConnection.(getSenders|getReceivers|addTrack|removeTrack)
- Fix webrtc-adapter external library support
- Fix Blob prototype pollution
- Extend native MediaStream instead of using Blob
- Fix RTCPeerConnection.setLocalDescription() and other methods which take SDP as input now directly accept an object
- Upgrade packages debug to ^4.1.1 and yaeti to ^1.0.2
- Add cordova.plugins.iosrtc.getUserMedia MediaTrackConstraints.(video|audio).deviceId.(exact|ideal) support (PR #374 by @CSantosM).
- Add cordova.plugins.iosrtc.getMediaDevices bluetooth and wired audio devices support (PR #374 by @CSantosM).
- fix TypeError: undefined is not an object (evaluating 'stream.id') when removing stream PR #383 by @hthetiot via @l7s).
- fix typo on iosrtcPlugin.swift
- fix README.md
- Convert syntax to Swift 4.2
- Uncomment, and fix, onGetStatsCallback closure
- Update NPM dependencies
- Add Travis build (Ionic, Cordova, Browser, Android, iOS Xcode 10.2)
- Fix gulp browserify caused by old vinyl package version
- Migrate from jscs to eslint to fix vulnerabilities reported by npm audit
getUserMedia
constraints: AllowsourceId
(rather than justdeviceId
) to make adapter.js happy (#282).
- Let
addIceCandidate()
be called with aRTCIceCandidateInit
object as argument (as per the latest WebRTC spec) rather than mandating aRTCIceCandidate
instance.
- Moved the repository over to its new home with the Basque VoIP Mafia
- Fix compatibility with "--browserify" cordova option
- Convert syntax to Swift 3
- Remove rtcninja integration
- Remove selectAudioOutput function
- Add convenience Makefile
- Update documentation
- Fix promise implementation of RTCPeerConnection.getStats
- Fix emitting "connected" stream event for local streams when using getUserMedia with promises.
-
Add support for RTCPeerConnection.getStats (PR #163 by @oNaiPs)
-
Set default deployment target to 9.0
-
Document iOS 10 specific stuff
-
Fix crash if RTCPeerConnection.close() is called twice
-
Data channel improvements
-
Updated documentation
-
Implement
RTCPeerConnection.createDTMFSender()
(PR #189 by @saghul). -
Make
ios-websocket-hack.js
more reliable.
-
Fix positioning video elements using
z-index
and allow pure HTML on top of<video>
elements (PR #179 by @saghul and @1N50MN14). -
Improve
ios-websocket-hack.js
(PR #138 by @apparition47).
-
Upgrade to
cordova-ios
4 (PR #159 by @apparition47). -
Swift: Use closure syntax for weak and unowned vars (PR #160 by @oNaiPs).
-
Swift: Sanitize arguments given to
NSLog()
(issue #157). -
MediaDeviceInfo
: Add deprecatedfacing
property ("front", "back" or "unknown") and updatekind
("audio"/"video" become "audioinput"/"videoinput") (issue #155). -
Update
libwebrtc
to revision 12558 (issue #169).
-
Fix crash (issue #144).
-
Update NPM dependencies.
-
Enable iOS native H.264 encoder/decoder.
-
RTCDataChannel
: Allow emptylabel
(issue #124). -
Update yaeti dependency (issue #123).
-
Fix retain on
pluginMediaStreamTrack
does not allow camera/mic to be freed (PR #126). Credits to @oNaiPs. -
Allow a handled video element to be removed from the DOM and added again later (PR #127). Credits to @oNaiPs.
- Update
libwebrtc
to revision 11063 soMediaStream
events (onaddtrack
andonremovetrack
) work again (issue #95).
getUserMedia()
: Fireerrback
if given video constraints are not satisfied.
- Move from
getMediaDevices()
toenumerateDevices()
. - Implement video constraints in
getUserMedia()
:deviceId
,width.min
,width.max
,height.min
,height.max
,frameRate
,frameRate.min
,frameRate.max
). - Update deps and build on Node >= 4.
- Update libwebrtc to latest revision (rev 10800).
- Enble iOS native H264 codec.
- Enable CSS padding (thanks to @saghul) (pull request #89).
- Don't crash if user or iOS settings deny access lo local audio/video devices (issue #73).
- Swift 2.0 is here! Credits to @saghul for his pull request.
extra/hooks/iosrtc-swift-support.js
: SetBUILD_VERSION
to 7.0.
- Add
cordova.plugins.iosrtc.observeVideo(video)
API for the plugin to handle<video>
elements not yet in the DOM (issue #49).
- Support CSS
border-radius
property in HTML video elements.
- Make private properties more private (issue #34).
- Use yaeti module as
EventTarget
shim.
- Release
MediaStreamRenderer
and revert<video>
properties when the attachedMediaStream
emits "inactive" (issue #27).
- Implemented some
<video>
properties such asreadyState
,videoWidth
andvideoHeight
(issue #25). - Building simplified for both Cordova CLI and Xcode by providing a single "hook" the user must add into his Cordova application (check the Building documentation for further details).
- CSS
object-fit: none
properly implemented (don't clip the video).
- CSS object-fit property implemented in
<video>
elements (issue #23).
- Stop "error" event propagation in
<video>
element when attaching aMediaStream
to it (issue #22).
- Plugin moved to NPM registry and plugin ID renamed to cordova-plugin-iosrtc.
iosrtc.registerGlobals()
also generateswindow.webkitRTCPeerConnection
andnavigator.webkitGetUserMedia()
for backwards compatibility with WebRTC JavaScript wrappers/adapters that assume browser vendor prefixes (webkit
,moz
) in the underlying WebRTC API.