AgoraIO-Community / AgoraWebSDK-NG

The Next Generation of Agora Web SDK
https://agoraio-community.github.io/AgoraWebSDK-NG/
161 stars 75 forks source link

Crashes in Safari 14.0 upon allowing camera #83

Open jordan-thenumber opened 4 years ago

jordan-thenumber commented 4 years ago

Describe the bug

A clear and concise description of what the bug is. After allowing use of camera in Safari 14.0 the app crashes

SDK Logs

You should call enableLogUpload to enable log upload to Agora's Log Server.

Error:

TypeError: undefined is not an object (evaluating 'c.inputFrame.frameRate.toString')

AgoraRTC_N-production.js:115:351

Channel:

UID:

Platform and Browser:
MacOS 10.15.6 Safari 14.0

SDK Version:
4.1.0

To Reproduce

Steps to reproduce the behavior:

  1. Go to Safari v 14.0
  2. Allow camera

Additional context

Add any other context about the problem here.

mjgaylord commented 4 years ago

Seeing the same issue with my app using Safari Version 14.0 (15610.1.28.1.9, 15610). I am not sure what this affects, as my streams still work, but the error is quite persistent.

More logs from my app are:

Log] 13:53:07:139 Agora-SDK [DEBUG]: – "[track-5ddd9d7e] video-element-status change waiting => abort" (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:140 Agora-SDK [DEBUG]: – "[track-5ddd9d7e] video-element-status change abort => emptied" (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:140 Agora-SDK [DEBUG]: – "[track-5ddd9d7e] video-element-status change emptied => playing" (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:140 Agora-SDK [DEBUG]: – "[track-5ddd9d7e] video-element-status change playing => waiting" (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:144 Agora-SDK [INFO]: – "start video effect, output:" – CanvasCaptureMediaStreamTrack {canvas: <canvas>, requestFrame: function, kind: "video", …} (2.34154a9a.chunk.js, line 2)
CanvasCaptureMediaStreamTrack {canvas: <canvas>, requestFrame: function, kind: "video", id: "90fdb3ec-b6ef-43d2-b638-e0d3fcb40fd5", label: "CanvasCaptureMediaStreamTrack", …}CanvasCaptureMediaStreamTrack
[Log] 13:53:07:145 Agora-SDK [INFO]: – "[track-5ddd9d7e] setBeautyEffect success" (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:146 Agora-SDK [DEBUG]: – "[track-5ddd9d7e] video-element-status change waiting => suspend" (2.34154a9a.chunk.js, line 2)
[Warning] Turning drawing buffer preservation for the WebGL canvas being captured (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:196 Agora-SDK [DEBUG]: – "[client-b0b66-pub-1] set answer success" (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:214 Agora-SDK [INFO]: – "[client-b0b66-pub-1] ice-state: pub p2p checking" (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:214 Agora-SDK [DEBUG]: – "[pc-1] local candidate count" – 3 (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:217 Agora-SDK [DEBUG]: – "[track-5ddd9d7e] video-element-status change suspend => canplay" (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:217 Agora-SDK [DEBUG]: – "[track-5ddd9d7e] video-element-status change canplay => playing" (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:310 Agora-SDK [INFO]: – "[client-b0b66-pub-1] ice-state: pub p2p connected" (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:313 Agora-SDK [INFO]: – "[client-b0b66] Publish success, id track-5ddd9d7e ,track-87b1f46c " (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:313 Agora-SDK [INFO]: – "[client-b0b66-pub-1] connection-state: pub p2p connected" (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:313 Agora-SDK [INFO]: – "[client-b0b66-pub-1] ice-state: pub p2p completed" (2.34154a9a.chunk.js, line 2)
[Log] 13:53:07:622 Agora-SDK [DEBUG]: – "[track-5ddd9d7e] current video dimensions:" – 640 – 480 (2.34154a9a.chunk.js, line 2)
[Error] TypeError: undefined is not an object (evaluating 'e.inputFrame.frameRate.toString')
    Dl (2.34154a9a.chunk.js:2:182663)
    value (2.34154a9a.chunk.js:2:614088)
    (anonymous function) (2.34154a9a.chunk.js:2:528913)
[Debug] network-quality: {"downlinkNetworkQuality":0,"uplinkNetworkQuality":0} (main.1f4aae3a.chunk.js, line 1)
[Error] TypeError: undefined is not an object (evaluating 'e.inputFrame.frameRate.toString')
    Dl (2.34154a9a.chunk.js:2:182663)
    value (2.34154a9a.chunk.js:2:614088)
    (anonymous function) (2.34154a9a.chunk.js:2:528913)
[Debug] network-quality: {"downlinkNetworkQuality":0,"uplinkNetworkQuality":0} (main.1f4aae3a.chunk.js, line 1)
[Log] 13:53:11:146 Agora-SDK [DEBUG]: – "beauty effect current framerate" – 60 (2.34154a9a.chunk.js, line 2)
[Error] TypeError: undefined is not an object (evaluating 'e.inputFrame.frameRate.toString')
    Dl (2.34154a9a.chunk.js:2:182663)
    value (2.34154a9a.chunk.js:2:614088)
    (anonymous function) (2.34154a9a.chunk.js:2:528913)
[Debug] network-quality: {"downlinkNetworkQuality":0,"uplinkNetworkQuality":0} (main.1f4aae3a.chunk.js, line 1)
[Error] TypeError: undefined is not an object (evaluating 'e.inputFrame.frameRate.toString')
    Dl (2.34154a9a.chunk.js:2:182663)
    value (2.34154a9a.chunk.js:2:614088)
    (anonymous function) (2.34154a9a.chunk.js:2:528913)
[Debug] network-quality: {"downlinkNetworkQuality":0,"uplinkNetworkQuality":5} (main.1f4aae3a.chunk.js, line 1)
[Error] TypeError: undefined is not an object (evaluating 'e.inputFrame.frameRate.toString')
    Dl (2.34154a9a.chunk.js:2:182663)
    value (2.34154a9a.chunk.js:2:614088)
    (anonymous function) (2.34154a9a.chunk.js:2:528913)
[Debug] network-quality: {"downlinkNetworkQuality":0,"uplinkNetworkQuality":5} (main.1f4aae3a.chunk.js, line 1)
[Error] TypeError: undefined is not an object (evaluating 'e.inputFrame.frameRate.toString')
    Dl (2.34154a9a.chunk.js:2:182663)
    value (2.34154a9a.chunk.js:2:614088)
    (anonymous function) (2.34154a9a.chunk.js:2:528913)
[Debug] network-quality: {"downlinkNetworkQuality":0,"uplinkNetworkQuality":5} (main.1f4aae3a.chunk.js, line 1)
[Error] TypeError: undefined is not an object (evaluating 'e.inputFrame.frameRate.toString')
    Dl (2.34154a9a.chunk.js:2:182663)
    value (2.34154a9a.chunk.js:2:614088)
    (anonymous function) (2.34154a9a.chunk.js:2:528913)
[Debug] network-quality: {"downlinkNetworkQuality":0,"uplinkNetworkQuality":5} (main.1f4aae3a.chunk.js, line 1)
[Error] TypeError: undefined is not an object (evaluating 'e.inputFrame.frameRate.toString')
    Dl (2.34154a9a.chunk.js:2:182663)
    value (2.34154a9a.chunk.js:2:614088)
    (anonymous function) (2.34154a9a.chunk.js:2:528913)
[Debug] network-quality: {"downlinkNetworkQuality":0,"uplinkNetworkQuality":5} (main.1f4aae3a.chunk.js, line 1)
HAHAHA44 commented 4 years ago

There is a change in Safari 14 that removes some fields in the getStats() of the WebRTC API, resulting in SDK parsing errors. SDK will be compatible in the next version.

mjgaylord commented 4 years ago

hey @HAHAHA44 do you have an ETA on the next release with this fix?