Bug 220362
Summary: | Muted video track stops sending packets if receive RTCP PLI request | ||
---|---|---|---|
Product: | WebKit | Reporter: | Igor <igor> |
Component: | WebRTC | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED CONFIGURATION CHANGED | ||
Severity: | Normal | CC: | webkit-bug-importer, youennf |
Priority: | P2 | Keywords: | InRadar |
Version: | Safari 14 | ||
Hardware: | Unspecified | ||
OS: | macOS 11 |
Igor
Browser version: Safari 14.0.2 (16610.3.7.1.9)
Issue: muted video track stops to send any video packet after receiving RTCP PLI message
How to reproduce:
1. Safari: open https://demo.flashphoner.com/client2/examples/demo/streaming/media_devices_manager/media_device_manager.html
2. Click Connect, then Publish
3. See Pli Count
4. Switch Video Mute to On, wait for Pli Count increase, then unmute video by switching to Off
5. After getting PLI in muted state Safari will stop video packets.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
youenn fablet
Thanks for the report.
I tried the repro steps on Safari Tech Preview and was not able to reproduce.
Can you try it on your side?
Igor
Reproduced with latest Safari Tech Preview.
I forgot to say that you need to change resolution to 640x360 instead of default 640x480
Radar WebKit Bug Importer
<rdar://problem/72851967>
youenn fablet
I am still seeing "Packets Sent" increasing after unmuting.
When muting, the number of packets increases slowly as expected.
When unmuting, the number of packets increases steadily.
Igor
(In reply to youenn fablet from comment #4)
> I am still seeing "Packets Sent" increasing after unmuting.
> When muting, the number of packets increases slowly as expected.
> When unmuting, the number of packets increases steadily.
I recorded screen cast with the issue, you can check it here: https://filebin.net/dodb62j775ou92t1
Did you wait for PLI count increasing before unmuting the video?
youenn fablet
> I recorded screen cast with the issue, you can check it here:
> https://filebin.net/dodb62j775ou92t1
That is interesting.
In your case, when you mute the track, the number of packets sent gets frozen, the bitrate is down to zero. It is as if the sender is fully stopped or something like sender.replaceTrack(null);
On my side, I continue to see a small bitrate, packets sent increase...
This is due to the fact that a muted track will trigger sending one black frame per second.
Can you verify this?
Alternatively, you can enable web inspector, set WebRTC logging to verbose and look at WebRTC logging (in system console or web inspector console).
Igor
(In reply to youenn fablet from comment #6)
> Can you verify this?
> Alternatively, you can enable web inspector, set WebRTC logging to verbose
> and look at WebRTC logging (in system console or web inspector console).
Here is another screen cast, https://filebin.net/izr4g99jp4ry9zfd
I increased PLI interval up to 20 seconds. From video you can see that after muting video track still sends packets before getting the new PLI request.
I checked media track state, it has only one changed property - 'enabled = false', also checked RTCRtpSender with getSenders() - there are two senders before and after muting - sender with audio track and sender with video track.
WebRTC logging shows that webrtc stack sends black frame, but no packets on outbound connection.
Igor
Any updates with this bug?
youenn fablet
@Igor, this is a video encoder issue.
I passed it down to the corresponding team which fixed it.