Closed Bug 1877552 Opened 2 years ago Closed 2 years ago

Firefox doesn't render video received from Chrome

Categories

(Core :: WebRTC: Networking, defect, P1)

Firefox 122
defect

Tracking

()

RESOLVED DUPLICATE of bug 1875686
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:

  1. Start a p2p call between Chrome 120 and Firefox 122 on https://meet.jit.si.
  2. 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.

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.

Component: Untriaged → WebRTC
Product: Firefox → Core

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?

Flags: needinfo?(docfaraday)

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.

Severity: -- → S2
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: regression
Priority: -- → P1
Regressed by: 1870290
Component: WebRTC → WebRTC: Networking

Set release status flags based on info from the regressing bug 1870290

Benjamin, this regression looks caused by the NSS uplift, should we revert it on beta?

Flags: needinfo?(bbeurdouche)

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.)

Flags: needinfo?(padenot)
Flags: needinfo?(nkulatova)
Flags: needinfo?(bbeurdouche)

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.

Flags: needinfo?(nkulatova)

Thanks, this was nightly indeed. I'll dupe this and open a new bug for the original (release) issue filed.

Status: NEW → RESOLVED
Closed: 2 years ago
Duplicate of bug: 1875686
Flags: needinfo?(padenot)
Flags: needinfo?(docfaraday)
Resolution: --- → DUPLICATE
Status: RESOLVED → REOPENED
No longer duplicate of bug: 1875686
Resolution: DUPLICATE → ---

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?

Paul, do you have any thoughts?

Flags: needinfo?(padenot)

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!

Flags: needinfo?(jaya.allamsetty)

(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.

Flags: needinfo?(jaya.allamsetty)

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.

Status: REOPENED → RESOLVED
Closed: 2 years ago2 years ago
Duplicate of bug: 1875686
Flags: needinfo?(padenot)
Resolution: --- → DUPLICATE

(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.

Status: RESOLVED → REOPENED
No longer duplicate of bug: 1875686
Resolution: DUPLICATE → ---
Status: REOPENED → RESOLVED
Closed: 2 years ago2 years ago
Duplicate of bug: 1875686
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.