Firefox doesn't render video received from Chrome
Categories
(Core :: WebRTC: Networking, defect, P1)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr115 | --- | unaffected |
| firefox122 | --- | unaffected |
| firefox123 | + | disabled |
| firefox124 | --- | disabled |
People
(Reporter: jaya.allamsetty, Unassigned)
References
(Regression, )
Details
(Keywords: regression)
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Steps to reproduce:
- Start a p2p call between Chrome 120 and Firefox 122 on https://meet.jit.si.
- Rejoin the call from Firefox a couple of times until you see black video for remote peer on Firefox.
Actual results:
Firefox stops rendering the video received from Chrome. The browser doesn't fire the 'canplaythrough' event indicating that it doesn't have enough date to render the media. There are no PLIs or NACKs reported on the sender in Chrome://webrtc-internals and Chrome doesn't report a cpu or bandwidth limitation either in its stats.
This happens only when the media flows directly between the browsers and not through the SFU. The sender is using a VP8 encoder with scalabilityMode set to L1T1.
Link to the profile captured when the issue was reproduced: https://share.firefox.dev/42lSzbp
Expected results:
Firefox should have rendered the video received from Chrome.
Comment 1•2 years ago
|
||
The Bugbug bot thinks this bug should belong to the 'Core::WebRTC' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.
Comment 2•2 years ago
|
||
Your profile was recorded with the default log modules, unfortunately. Here's one with the WebRTC preset.
Some notes follow.
On main thread I see
(jsep) [{34b60f2b-ac15-4ff8-844e-3c90eeb6adcf} 1706686650503295 (id=148696062754817 url=https://meet.jit.si/UnableCasinosDiminishObsessively)]: SetRemoteDescription type=0 SDP= v=0 o=- 1706686650513 3 IN IP4 0.0.0.0 s=- t=0 0 a=msid-semantic: WMS * a=group:BUNDLE 0 1 2 m=audio 9 UDP/TLS/RTP/SAVPF 111 126 c=IN IP4 0.0.0.0 a=rtpmap:111 opus/48000/2 a=rtpmap:126 telephone-event/8000 a=fmtp:111 minptime=10;useinbandfec=1 a=rtcp:1 IN IP4 0.0.0.0 a=rtcp-fb:111 transport-cc a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=setup:actpass a=mid:0 a=msid:mixedmslabel mixedlabelaudio0 a=sendrecv a=ice-ufrag:npc71hlf77601 a=ice-pwd:6edoa3286956qf6t47jv3t7l1v a=fingerprint:sha-256 8A:85:92:8E:04:04:5B:F3:B9:4F:38:29:C0:08:96:2C:A3:99:32:C1:6E:B1:92:5B:D8:4E:13:E4:2F:C4:C6:9E a=candidate:2 1 udp 1694498815 130.61.80.59 10000 typ srflx raddr 0.0.0.0 rport 9 generation 0 a=ssrc:1879982442 msid:mixedmslabel mixedlabelaudio0 a=rtcp-mux m=video 9 UDP/TLS/RTP/SAVPF 100 107 101 96 97 99 c=IN IP4 0.0.0.0 a=rtpmap:100 VP8/90000 a=rtpmap:107 H264/90000 a=rtpmap:101 VP9/90000 a=rtpmap:96 rtx/90000 a=rtpmap:97 rtx/90000 a=rtpmap:99 rtx/90000 a=fmtp:107 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1; a=fmtp:96 apt=100 a=fmtp:97 apt=101 a=fmtp:99 apt=107 a=rtcp:1 IN IP4 0.0.0.0 a=rtcp-fb:100 ccm fir a=rtcp-fb:100 nack a=rtcp-fb:100 nack pli a=rtcp-fb:100 transport-cc a=rtcp-fb:107 ccm fir a=rtcp-fb:107 nack a=rtcp-fb:107 nack pli a=rtcp-fb:107 transport-cc a=rtcp-fb:101 ccm fir a=rtcp-fb:101 nack a=rtcp-fb:101 nack pli a=rtcp-fb:101 transport-cc a=rtcp-fb:96 ccm fir a=rtcp-fb:96 nack a=rtcp-fb:96 nack pli a=rtcp-fb:97 ccm fir a=rtcp-fb:97 nack a=rtcp-fb:97 nack pli a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=setup:actpass a=mid:1 a=msid:mixedmslabel mixedlabelvideo0 a=sendrecv a=ice-ufrag:npc71hlf77601 a=ice-pwd:6edoa3286956qf6t47jv3t7l1v a=fingerprint:sha-256 8A:85:92:8E:04:04:5B:F3:B9:4F:38:29:C0:08:96:2C:A3:99:32:C1:6E:B1:92:5B:D8:4E:13:E4:2F:C4:C6:9E a=candidate:2 1 udp 1694498815 130.61.80.59 10000 typ srflx raddr 0.0.0.0 rport 9 generation 0 a=ssrc:3701942630 msid:mixedmslabel mixedlabelvideo0 a=rtcp-mux a=rid:1 recv a=rid:2 recv a=rid:3 recv a=simulcast: recv 1;2;3 m=application 9 UDP/DTLS/SCTP webrtc-datachannel c=IN IP4 0.0.0.0 a=setup:actpass a=mid:2 a=sendrecv a=ice-ufrag:npc71hlf77601 a=ice-pwd:6edoa3286956qf6t47jv3t7l1v a=fingerprint:sha-256 8A:85:92:8E:04:04:5B:F3:B9:4F:38:29:C0:08:96:2C:A3:99:32:C1:6E:B1:92:5B:D8:4E:13:E4:2F:C4:C6:9E a=candidate:2 1 udp 1694498815 130.61.80.59 10000 typ srflx raddr 0.0.0.0 rport 9 generation 0 a=rtcp-mux a=sctp-port:5000 a=max-message-size:262144
(RTCRtpReceiver) {34b60f2b-ac15-4ff8-844e-3c90eeb6adcf}[1]: UpdateVideoConduit Setting remote SSRC 3701942630
(jsep) [{f2cc0f3b-e572-4086-9df6-8b1b705a3551} 1706686650392193 (id=148696062754817 url=https://meet.jit.si/UnableCasinosDiminishObsessively)]: SetRemoteDescription type=1 SDP= v=0 o=- 1706686650719 2 IN IP4 0.0.0.0 s=- t=0 0 a=group:BUNDLE 0 1 m=audio 9 UDP/TLS/RTP/SAVPF 109 9 0 8 101 c=IN IP4 0.0.0.0 a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:109 minptime=10;useinbandfec=1 a=rtcp:1 IN IP4 0.0.0.0 a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid a=setup:active a=mid:0 a=sendrecv a=ice-ufrag:MN4j a=ice-pwd:TRFS/qq8Ul4eZZSOF4lgbcU8 a=fingerprint:sha-256 46:1E:2F:69:88:4E:C5:AE:D8:3A:23:1D:4F:7B:3D:74:F7:53:E9:79:8E:8B:FC:E7:D5:09:B0:60:DC:D5:24:D3 a=ssrc:523033651 msid:f1c7891b-audio-0-2 d5e8b490-6313-431a-af56-c954819203d8-2 a=rtcp-mux m=video 9 UDP/TLS/RTP/SAVPF 120 97 126 124 98 127 122 119 c=IN IP4 0.0.0.0 a=rtpmap:120 VP8/90000 a=rtpmap:97 H264/90000 a=rtpmap:126 H264/90000 a=rtpmap:124 rtx/90000 a=rtpmap:98 rtx/90000 a=rtpmap:127 rtx/90000 a=rtpmap:122 red/90000 a=rtpmap:119 rtx/90000 a=fmtp:120 max-fr=60;max-fs=12288 a=fmtp:97 level-asymmetry-allowed=1;profile-level-id=42e01f a=fmtp:126 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f a=fmtp:124 apt=120 a=fmtp:98 apt=97 a=fmtp:127 apt=126 a=fmtp:119 apt=122 a=rtcp:1 IN IP4 0.0.0.0 a=rtcp-fb:120 nack a=rtcp-fb:120 nack pli a=rtcp-fb:120 ccm fir a=rtcp-fb:120 goog-remb a=rtcp-fb:120 transport-cc a=rtcp-fb:97 nack a=rtcp-fb:97 nack pli a=rtcp-fb:97 ccm fir a=rtcp-fb:97 goog-remb a=rtcp-fb:97 transport-cc a=rtcp-fb:126 nack a=rtcp-fb:126 nack pli a=rtcp-fb:126 ccm fir a=rtcp-fb:126 goog-remb a=rtcp-fb:126 transport-cc a=rtcp-fb:122 nack a=rtcp-fb:122 nack pli a=rtcp-fb:122 ccm fir a=rtcp-fb:122 goog-remb a=rtcp-fb:122 transport-cc a=extmap:5 urn:ietf:params:rtp-hdrext:toffset a=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:7 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid a=setup:active a=mid:1 a=sendrecv a=ice-ufrag:MN4j a=ice-pwd:TRFS/qq8Ul4eZZSOF4lgbcU8 a=fingerprint:sha-256 46:1E:2F:69:88:4E:C5:AE:D8:3A:23:1D:4F:7B:3D:74:F7:53:E9:79:8E:8B:FC:E7:D5:09:B0:60:DC:D5:24:D3 a=ssrc:3215131436 msid:f1c7891b-video-0-2 cbac1459-a196-4464-b0fe-98120282430a-2 a=ssrc:2184325517 msid:f1c7891b-video-0-2 cbac1459-a196-4464-b0fe-98120282430a-2 a=ssrc-group:FID 3215131436 2184325517 a=rtcp-mux
(RTCRtpReceiver) {f2cc0f3b-e572-4086-9df6-8b1b705a3551}[1]: UpdateVideoConduit Setting remote SSRC 3215131436
(jsep) [{f2cc0f3b-e572-4086-9df6-8b1b705a3551} 1706686650392193 (id=148696062754817 url=https://meet.jit.si/UnableCasinosDiminishObsessively)]: SetRemoteDescription type=0 SDP= v=0 o=- 1706686650719 2 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=group:BUNDLE 0 1 m=audio 9 UDP/TLS/RTP/SAVPF 109 9 0 8 101 c=IN IP4 0.0.0.0 a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:109 maxplaybackrate=0;stereo=0;useinbandfec=1 a=rtcp:1 IN IP4 0.0.0.0 a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid a=setup:active a=mid:0 a=sendrecv a=ice-ufrag:MN4j a=ice-pwd:TRFS/qq8Ul4eZZSOF4lgbcU8 a=fingerprint:sha-256 46:1E:2F:69:88:4E:C5:AE:D8:3A:23:1D:4F:7B:3D:74:F7:53:E9:79:8E:8B:FC:E7:D5:09:B0:60:DC:D5:24:D3 a=ssrc:523033651 msid:f1c7891b-audio-0-2 d5e8b490-6313-431a-af56-c954819203d8-2 a=rtcp-mux m=video 9 UDP/TLS/RTP/SAVPF 120 97 126 124 98 127 122 119 c=IN IP4 0.0.0.0 a=rtpmap:120 VP8/90000 a=rtpmap:97 H264/90000 a=rtpmap:126 H264/90000 a=rtpmap:124 rtx/90000 a=rtpmap:98 rtx/90000 a=rtpmap:127 rtx/90000 a=rtpmap:122 red/90000 a=rtpmap:119 rtx/90000 a=fmtp:120 max-fs=12288;max-fr=60 a=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1 a=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1 a=fmtp:124 apt=120 a=fmtp:98 apt=97 a=fmtp:127 apt=126 a=fmtp:119 apt=122 a=rtcp:1 IN IP4 0.0.0.0 a=rtcp-fb:120 nack a=rtcp-fb:120 nack pli a=rtcp-fb:120 ccm fir a=rtcp-fb:120 goog-remb a=rtcp-fb:120 transport-cc a=rtcp-fb:97 nack a=rtcp-fb:97 nack pli a=rtcp-fb:97 ccm fir a=rtcp-fb:97 goog-remb a=rtcp-fb:97 transport-cc a=rtcp-fb:126 nack a=rtcp-fb:126 nack pli a=rtcp-fb:126 ccm fir a=rtcp-fb:126 goog-remb a=rtcp-fb:126 transport-cc a=rtcp-fb:122 nack a=rtcp-fb:122 nack pli a=rtcp-fb:122 ccm fir a=rtcp-fb:122 goog-remb a=rtcp-fb:122 transport-cc a=extmap:5 urn:ietf:params:rtp-hdrext:toffset a=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:7 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid a=setup:active a=mid:1 a=sendrecv a=ice-ufrag:MN4j a=ice-pwd:TRFS/qq8Ul4eZZSOF4lgbcU8 a=fingerprint:sha-256 46:1E:2F:69:88:4E:C5:AE:D8:3A:23:1D:4F:7B:3D:74:F7:53:E9:79:8E:8B:FC:E7:D5:09:B0:60:DC:D5:24:D3 a=ssrc:3215131436 msid:f1c7891b-video-0-2 cbac1459-a196-4464-b0fe-98120282430a-2 a=ssrc:2184325517 msid:f1c7891b-video-0-2 cbac1459-a196-4464-b0fe-98120282430a-2 a=ssrc-group:FID 3215131436 2184325517 a=rtcp-mux
(RTCRtpReceiver) {f2cc0f3b-e572-4086-9df6-8b1b705a3551}[1]: UpdateVideoConduit Setting remote SSRC 3215131436
(RTCRtpReceiver) {f2cc0f3b-e572-4086-9df6-8b1b705a3551}[1]: UpdateVideoConduit Setting remote SSRC 3215131436
On the socket thread, first
(MediaPipeline) MediaPipelineFilter SSRC: 2184325517 matched remote SSRC set. passing packet
(MediaPipeline) MediaPipelineFilter SSRC: 3215131436 matched for MID: '1'. passing packet
(MediaPipeline) MediaPipelineFilter SSRC: 3215131436 matched for MID: '1'. passing packet
(MediaPipeline) MediaPipelineFilter SSRC: 3215131436 matched for MID: '1'. passing packet
(MediaPipeline) MediaPipelineFilter SSRC: 3215131436 matched for MID: '1'. passing packet
(MediaPipeline) MediaPipelineFilter SSRC: 3215131436 matched for MID: '1'. passing packet
Then I guess the filter was updated from the signaling. This loops for seq# 5559, 5560, 5561, 5562:
(MediaPipeline) MediaPipelineFilter inspecting seq# 5559 SSRC: 2184325517
(MediaPipeline) MediaPipelineFilter SSRC: 2184325517 did not match bound SSRC(s) for MID: '0'. ignoring packet
(MediaPipeline) MID 0 is associated with SSRC: 523033651
(MediaPipeline) MediaPipelineFilter inspecting seq# 5559 SSRC: 2184325517
(MediaPipeline) MediaPipelineFilter SSRC: 2184325517 did not match bound SSRC(s) for MID: '1'. ignoring packet
(MediaPipeline) MID 1 is associated with SSRC: 3215131436
Then the following continues for the duration of the profile, as you'd expect.
(MediaPipeline) MediaPipelineFilter inspecting seq# 23219 SSRC: 3215131436
(MediaPipeline) MediaPipelineFilter SSRC: 3215131436 matched for MID: '1'. passing packet
Meanwhile on the call thread, where libwebrtc is set up, and network packets get delivered:
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1035: SetRemoteSSRCConfig: SSRC 3701942630 (0xdca72966)
(webrtc_trace) (video_receive_stream2.cc:229): VideoReceiveStream2: {decoders: [{payload_type: 100, payload_name: VP8, codec_params: {}}, {payload_type: 107, payload_name: H264, codec_params: {}}, {payload_type: 101, payload_name: VP9, codec_params: {}}], rtp: {remote_ssrc: 3701942630, local_ssrc: 53098461, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, lntf: {enabled: false}, nack: {rtp_history_ms: 1000}, ulpfec_payload_type: -1, red_type: -1, rtx_ssrc: 0, rtx_payload_types: {96 (pt) -> 100 (apt), 97 (pt) -> 101 (apt), 99 (pt) -> 107 (apt), }, raw_payload_types: {}, rtcp_event_observer: (rtcp_event_observer)}, renderer: (renderer), render_delay_ms: 10, sync_group: mixedmslabel}
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1019: Created VideoReceiveStream 134c4c000 for SSRC 3701942630 (0xdca72966)
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1025: NotifyUnsetCurrentRemoteSSRC (12211b400): Unsetting SSRC 3701942630 in other conduits
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1035: SetRemoteSSRCConfig: SSRC 3215131436 (0xbfa3032c)
(webrtc_trace) (video_receive_stream2.cc:229): VideoReceiveStream2: {decoders: [{payload_type: 120, payload_name: VP8, codec_params: {}}, {payload_type: 97, payload_name: H264, codec_params: {}}], rtp: {remote_ssrc: 3215131436, local_ssrc: 297172794, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, lntf: {enabled: false}, nack: {rtp_history_ms: 1000}, ulpfec_payload_type: -1, red_type: -1, rtx_ssrc: 2184325517, rtx_payload_types: {98 (pt) -> 97 (apt), 119 (pt) -> 122 (apt), 124 (pt) -> 120 (apt), }, raw_payload_types: {}, rtcp_event_observer: (rtcp_event_observer)}, renderer: (renderer), render_delay_ms: 10}
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1019: Created VideoReceiveStream 134c82000 for SSRC 3215131436 (0xbfa3032c)
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1025: NotifyUnsetCurrentRemoteSSRC (122116000): Unsetting SSRC 3215131436 in other conduits
(webrtc_trace) (video_receive_stream2.cc:270): ~VideoReceiveStream2: {decoders: [{payload_type: 120, payload_name: VP8, codec_params: {}}, {payload_type: 97, payload_name: H264, codec_params: {}}], rtp: {remote_ssrc: 3215131436, local_ssrc: 297172794, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, lntf: {enabled: false}, nack: {rtp_history_ms: 1000}, ulpfec_payload_type: -1, red_type: -1, rtx_ssrc: 2184325517, rtx_payload_types: {98 (pt) -> 97 (apt), 119 (pt) -> 122 (apt), 124 (pt) -> 120 (apt), }, raw_payload_types: {}, rtcp_event_observer: (rtcp_event_observer)}, renderer: (renderer), render_delay_ms: 10}
(webrtc_trace) (video_receive_stream2.cc:229): VideoReceiveStream2: {decoders: [{payload_type: 120, payload_name: VP8, codec_params: {}}, {payload_type: 97, payload_name: H264, codec_params: {}}], rtp: {remote_ssrc: 3215131436, local_ssrc: 297172794, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, lntf: {enabled: false}, nack: {rtp_history_ms: 1000}, ulpfec_payload_type: -1, red_type: -1, rtx_ssrc: 2184325517, rtx_payload_types: {98 (pt) -> 97 (apt), 119 (pt) -> 122 (apt), 124 (pt) -> 120 (apt), }, raw_payload_types: {}, rtcp_event_observer: (rtcp_event_observer)}, renderer: (renderer), render_delay_ms: 10}
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1019: Created VideoReceiveStream 134c82000 for SSRC 3215131436 (0xbfa3032c)
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1540: OnRtpReceived: seq# 5557, Len 279, SSRC 2184325517 (0x8232298d)
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1540: OnRtpReceived: seq# 23214, Len 959, SSRC 3215131436 (0xbfa3032c)
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1540: OnRtpReceived: seq# 23215, Len 959, SSRC 3215131436 (0xbfa3032c)
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1540: OnRtpReceived: seq# 23216, Len 959, SSRC 3215131436 (0xbfa3032c)
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1540: OnRtpReceived: seq# 23217, Len 960, SSRC 3215131436 (0xbfa3032c)
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1540: OnRtpReceived: seq# 23218, Len 62, SSRC 3215131436 (0xbfa3032c)
(webrtc_trace) (video_receive_stream2.cc:270): ~VideoReceiveStream2: {decoders: [{payload_type: 100, payload_name: VP8, codec_params: {}}, {payload_type: 107, payload_name: H264, codec_params: {}}, {payload_type: 101, payload_name: VP9, codec_params: {}}], rtp: {remote_ssrc: 3701942630, local_ssrc: 53098461, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, lntf: {enabled: false}, nack: {rtp_history_ms: 1000}, ulpfec_payload_type: -1, red_type: -1, rtx_ssrc: 0, rtx_payload_types: {96 (pt) -> 100 (apt), 97 (pt) -> 101 (apt), 99 (pt) -> 107 (apt), }, raw_payload_types: {}, rtcp_event_observer: (rtcp_event_observer)}, renderer: (renderer), render_delay_ms: 10, sync_group: mixedmslabel}
(webrtc_trace) (video_receive_stream2.cc:229): VideoReceiveStream2: {decoders: [{payload_type: 100, payload_name: VP8, codec_params: {}}, {payload_type: 107, payload_name: H264, codec_params: {}}, {payload_type: 101, payload_name: VP9, codec_params: {}}], rtp: {remote_ssrc: 3701942630, local_ssrc: 53098461, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, lntf: {enabled: false}, nack: {rtp_history_ms: 1000}, ulpfec_payload_type: -1, red_type: -1, rtx_ssrc: 0, rtx_payload_types: {96 (pt) -> 100 (apt), 97 (pt) -> 101 (apt), 99 (pt) -> 107 (apt), }, raw_payload_types: {}, rtcp_event_observer: (rtcp_event_observer)}, renderer: (renderer), render_delay_ms: 10, sync_group: mixedmslabel}
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1019: Created VideoReceiveStream 134c4c000 for SSRC 3701942630 (0xdca72966)
(signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1540: OnRtpReceived: seq# 23219, Len 1044, SSRC 3215131436 (0xbfa3032c)
What I find weird is this order of events:
[main 2630] (RTCRtpReceiver) {34b60f2b-ac15-4ff8-844e-3c90eeb6adcf}[1]: UpdateVideoConduit Setting remote SSRC 3701942630
[call 2630] (signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1035: SetRemoteSSRCConfig: SSRC 3701942630 (0xdca72966)
[call 2630] (webrtc_trace) (video_receive_stream2.cc:229): VideoReceiveStream2: {decoders: [{payload_type: 100, payload_name: VP8, codec_params: {}}, {payload_type: 107, payload_name: H264, codec_params: {}}, {payload_type: 101, payload_name: VP9, codec_params: {}}], rtp: {remote_ssrc: 3701942630, local_ssrc: 53098461, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, lntf: {enabled: false}, nack: {rtp_history_ms: 1000}, ulpfec_payload_type: -1, red_type: -1, rtx_ssrc: 0, rtx_p…
[call 2630] (signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1019: Created VideoReceiveStream 134c4c000 for SSRC 3701942630 (0xdca72966)
[main 1436] (RTCRtpReceiver) {f2cc0f3b-e572-4086-9df6-8b1b705a3551}[1]: UpdateVideoConduit Setting remote SSRC 3215131436
[call 1436] (signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1035: SetRemoteSSRCConfig: SSRC 3215131436 (0xbfa3032c)
[call 1436] (webrtc_trace) (video_receive_stream2.cc:229): VideoReceiveStream2: {decoders: [{payload_type: 120, payload_name: VP8, codec_params: {}}, {payload_type: 97, payload_name: H264, codec_params: {}}], rtp: {remote_ssrc: 3215131436, local_ssrc: 297172794, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, lntf: {enabled: false}, nack: {rtp_history_ms: 1000}, ulpfec_payload_type: -1, red_type: -1, rtx_ssrc: 2184325517, rtx_payload_types: {98 (pt) -> 97 (apt), 119 (pt) -> 1…
[call 1436] (signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1019: Created VideoReceiveStream 134c82000 for SSRC 3215131436 (0xbfa3032c)
[main 1436] (RTCRtpReceiver) {f2cc0f3b-e572-4086-9df6-8b1b705a3551}[1]: UpdateVideoConduit Setting remote SSRC 3215131436
[call 1436] (webrtc_trace) (video_receive_stream2.cc:270): ~VideoReceiveStream2: {decoders: [{payload_type: 120, payload_name: VP8, codec_params: {}}, {payload_type: 97, payload_name: H264, codec_params: {}}], rtp: {remote_ssrc: 3215131436, local_ssrc: 297172794, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, lntf: {enabled: false}, nack: {rtp_history_ms: 1000}, ulpfec_payload_type: -1, red_type: -1, rtx_ssrc: 2184325517, rtx_payload_types: {98 (pt) -> 97 (apt), 119 (pt) -> …
[call 1436] (webrtc_trace) (video_receive_stream2.cc:229): VideoReceiveStream2: {decoders: [{payload_type: 120, payload_name: VP8, codec_params: {}}, {payload_type: 97, payload_name: H264, codec_params: {}}], rtp: {remote_ssrc: 3215131436, local_ssrc: 297172794, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, lntf: {enabled: false}, nack: {rtp_history_ms: 1000}, ulpfec_payload_type: -1, red_type: -1, rtx_ssrc: 2184325517, rtx_payload_types: {98 (pt) -> 97 (apt), 119 (pt) -> 1…
[call 1436] (signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1019: Created VideoReceiveStream 134c82000 for SSRC 3215131436 (0xbfa3032c)
[main 1436] (RTCRtpReceiver) {f2cc0f3b-e572-4086-9df6-8b1b705a3551}[1]: UpdateVideoConduit Setting remote SSRC 3215131436
[call 2630] (webrtc_trace) (video_receive_stream2.cc:270): ~VideoReceiveStream2: {decoders: [{payload_type: 100, payload_name: VP8, codec_params: {}}, {payload_type: 107, payload_name: H264, codec_params: {}}, {payload_type: 101, payload_name: VP9, codec_params: {}}], rtp: {remote_ssrc: 3701942630, local_ssrc: 53098461, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, lntf: {enabled: false}, nack: {rtp_history_ms: 1000}, ulpfec_payload_type: -1, red_type: -1, rtx_ssrc: 0, rtx_…
[call 2630] (webrtc_trace) (video_receive_stream2.cc:229): VideoReceiveStream2: {decoders: [{payload_type: 100, payload_name: VP8, codec_params: {}}, {payload_type: 107, payload_name: H264, codec_params: {}}, {payload_type: 101, payload_name: VP9, codec_params: {}}], rtp: {remote_ssrc: 3701942630, local_ssrc: 53098461, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, lntf: {enabled: false}, nack: {rtp_history_ms: 1000}, ulpfec_payload_type: -1, red_type: -1, rtx_ssrc: 0, rtx_p…
[call 2630] (signaling) [WebrtcCallThread #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1019: Created VideoReceiveStream 134c4c000 for SSRC 3701942630 (0xdca72966)
Are we signaling or delivering to the wrong conduit? Unfortunately we don't log instance identifiers for the conduits.
Looking at the profile in comment 0 I see 3 frames were actually decoded, which makes me believe jitsi's renegotiation is what triggers something.
Byron, can you make sense of this?
Comment 3•2 years ago
|
||
Mozregression says https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=061eb9e9ebe5619a6e550d9026f972d199e567dd&tochange=58a9c7e82a58e7e951a669f0634901963c5ed696 🤔
I have double checked this with ./mach mozregression --launch 061eb9e9ebe5619a6e550d9026f972d199e567dd --repo autoland (good) and ./mach mozregression --launch 58a9c7e82a58e7e951a669f0634901963c5ed696 --repo autoland (bad) and it checks out.
Bug 1870290 landed in 123 and this bug was reported on 122. Maybe there are multiple issues here.
This is breaking jitsi 100% for me though, so let's clear it first. Also, it would be great if someone on another machine could verify, I'm on an M2 Macbook Pro.
Updated•2 years ago
|
Comment 4•2 years ago
|
||
Set release status flags based on info from the regressing bug 1870290
Updated•2 years ago
|
Comment 5•2 years ago
|
||
Benjamin, this regression looks caused by the NSS uplift, should we revert it on beta?
Comment 6•2 years ago
|
||
It is possible that DTLS 1.3 could cause an issue with the media stack, though I don't immediately see why.
@Anna, did some code change for earlier versions of DTLS ?
(NI-ing @padenot just for visibility.)
Comment 7•2 years ago
•
|
||
Hi,
First, are you using Nightly? Because I can not reproduce it otherwise (122).
Second, we have recently encountered this problem: https://bugzilla.mozilla.org/show_bug.cgi?id=1875686.
After a discussion with the Jitsi team we realised that there was a problem on their side. We hope that the problem is gonna be solved as soon as it's possible.
P.s. In order to temporarily solve the problem you can do the following:
You go to about:config, then you change media.peerconnection.dtls.version.max to 771.
Comment 8•2 years ago
|
||
Thanks, this was nightly indeed. I'll dupe this and open a new bug for the original (release) issue filed.
Comment 9•2 years ago
|
||
Not affecting release.
Updated•2 years ago
|
Comment 10•2 years ago
•
|
||
I am reopening the bug with a bit of new information.
First, I have checked that the video works perfectly if I run two FF clients (for example) on one machine and Google client on another machine.
Second, it seems that running it on one machine it does not work. I.e. if I first got a camera access using Firefox, I can not enable camera using Chrome. Is it expected?
Comment 11•2 years ago
•
|
||
Paul, do you have any thoughts?
Updated•2 years ago
|
Comment 12•2 years ago
|
||
Hi,
Could you help me to reproduce the issue? Do you run the clients on the same machine? Which version of Chrome do you use? Did it work in the previous version of Firefox?
Thanks!
| Reporter | ||
Comment 13•2 years ago
|
||
(In reply to Anna Weine from comment #12)
Hi,
Could you help me to reproduce the issue? Do you run the clients on the same machine? Which version of Chrome do you use? Did it work in the previous version of Firefox?
Thanks!
Hi Anna, I can reproduce the issue by running both Chrome and Firefox on the same machine. I am testing with Chrome 120. I can't confirm if the issue was happening with the previous version of Firefox, it doesn't reproduce always. I will have do a couple of rejoins to run into this. I am testing this on a M2 MBP.
Comment 14•2 years ago
|
||
This (In reply to Anna Weine from comment #10)
Second, it seems that running it on one machine it does not work. I.e. if I first got a camera access using Firefox, I can not enable camera using Chrome. Is it expected?
This is expected if they're trying to use the same camera and you are on Linux or Windows.
Let's continue in bug 1877675 though, since I ended up mostly investigating my way to bug 1875686 here.
| Reporter | ||
Comment 15•2 years ago
|
||
(In reply to Anna Weine from comment #7)
Hi,
First, are you using Nightly? Because I can not reproduce it otherwise (122).Second, we have recently encountered this problem: https://bugzilla.mozilla.org/show_bug.cgi?id=1875686.
After a discussion with the Jitsi team we realised that there was a problem on their side. We hope that the problem is gonna be solved as soon as it's possible.P.s. In order to temporarily solve the problem you can do the following:
You go to about:config, then you change media.peerconnection.dtls.version.max to 771.
The DTLS issue is on the bridge PeerConnection. Jitsi client opens 2 PeerConnections in a 2 person call. One to the JVB and the other to the remote peer directly. Usually JVB ICE gets established first and media starts flowing over the JVB connection and that is why is probably why media was getting decoded for few seconds. As soon as P2P ICE gets established between the peers directly, the client suspends media over the JVB connection and swaps out the remote JVB tracks that are attached to the video elements for the P2P tracks that get signaled for the P2P connection.
Updated•2 years ago
|
Description
•