Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Video stream error when Chime is used with another instance of WebRTC in the same application. #699

Open
p1xel opened this issue Nov 28, 2024 · 0 comments

Comments

@p1xel
Copy link

p1xel commented Nov 28, 2024

Describe the bug
We use both the Chime iOS SDK (v0.26.2) and WebRTC built for iOS in our application. We have recently updated to the latest version of WebRTC (M129) from an earlier version (M101), and have encountered an error with the display of Chime video streams.

Instead of the video, an image containing the text "Your client does not support hardware acceleration." is displayed - see the screenshot below.

This only happens when the peer sending the video is a web application (using the latest version of the Chime JS SDK). The error does not occur if the peer sending the video is another iOS device.

Additionally, with the DEFAULT (verbose) logging enabled, we can see some differences in the negotiated codecs - see the logs below.

To Reproduce
Steps to reproduce the behavior:

  1. Include both the Chime iOS SDK, and the latest version of WebRTC in an iOS application.
  2. Connect to a Chime session with the iOS application and with an equivalent web application.
  3. Enable the camera in the web application.
  4. Observe the error in the iOS application, instead of the video stream.

Expected behavior
The Chime video stream should be rendered correctly.

Logs

In the working version using the earlier (M101) version of WebRTC, the logs show that H264 is negotiated:

(webrtc_video_engine.cc:907): SetSendParameters: {codecs: [VideoCodec[96:H264], VideoCodec[97:rtx], VideoCodec[98:H264], VideoCodec[99:rtx], VideoCodec[100:VP8], VideoCodec[101:rtx]], conference_mode: no, extensions: [], extmap-allow-mixed: true, max_bandwidth_bps: -1, mid: 1}
(webrtc_video_engine.cc:915): Negotiated codec: VideoCodec[96:H264]
(webrtc_video_engine.cc:915): Negotiated codec: VideoCodec[98:H264]
(webrtc_video_engine.cc:915): Negotiated codec: VideoCodec[100:VP8]

And in the non-working version, the logs show that H264 cannot be negotiated:

(media_session.cc:1016): Couldn't find matching H264 codec.
(webrtc_video_engine.cc:907): SetSendParameters: {codecs: [VideoCodec[100:VP8], VideoCodec[101:rtx]], conference_mode: no, extensions: [], extmap-allow-mixed: true, max_bandwidth_bps: -1, mid: 1}
(webrtc_video_engine.cc:915): Negotiated codec: VideoCodec[100:VP8]

Screenshots
Screenshot 2024-11-28 at 5 27 23 PM

Test environment Info (please complete the following information):

  • Device: iPad Pro (12.9-inch) (3rd generation)
  • Model: MTFR2X/A
  • OS: iPadOS 17.5.1
  • Version AmazonChimeSDK: 0.26.2
  • Version AmazonChimeSDKMedia: 0.23.0
  • Can you reproduce this in the demo app? We have not attempted to do this.

Additional context
This appears to be an interaction between the version of WebRTC that Chime uses internally, and the separate instance that we use in our application. It may be due to a static linking conflict that is being resolved differently now, although we have tried disabling C/C++ symbol export from our build and the problem remains. We have also tried explicitly enabling proprietary codecs and H264 in the WebRTC build settings, but this also has no effect.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant