MicrosoftEdge / WebView2Feedback

Feedback and discussions about Microsoft Edge WebView2
https://aka.ms/webview2
452 stars 55 forks source link

Problem with decoding VP9 stream with HW accelerator #3571

Open oleksandr-semeniuk-io opened 1 year ago

oleksandr-semeniuk-io commented 1 year ago

Description

User joins WebRTC call using Microsoft Edge browser. HW accelerator is enabled. The VP9 codec is used on the remote end that is going to share the window. The remote participant starts the window share. There is no SVC for window share so the stream has only one layer(resolution does not matter). When the stream is received by default ExternalDecoder (VDAVideoDecoder or D3D11VideoDecoder) is selected.

Then it shows only the first frame and after that stream is fluctuating by reducing the frame size by two and going back to the original size. After some time the fluctuating goes away and the Microsoft Edge browser eventually freezes for up to 2 minutes.

After that, it falls back to libvpx.

Logs

[24348:7212:0518/222106.292:INFO:generic_decoder.cc(256)] Decoder implementation: DecoderInfo { prefers_late_decoding = implementation_name = 'ExternalDecoder (D3D11VideoDecoder)', is_hardware_accelerated = true } [24348:7212:0518/222106.389:WARNING:video_decoder_software_fallback_wrapper.cc(126)] Decoder falling back to software decoding. [24348:7212:0518/222106.389:INFO:generic_decoder.cc(293)] Changed decoder implementation to: DecoderInfo { prefers_late_decoding = implementation_name = 'libvpx (fallback from: ExternalDecoder (D3D11VideoDecoder))', is_hardware_accelerated = false }

Observation There is no issue if HW accelerator is disabled. In the case of two layers, it falls back to libvpx immediately. There is no such issue on Chrome, Safari, and Microsoft Edge on macOS.

Version SDK: v111, v112, v113, v114, Runtime: Framework: OS: Win10, Win11

Repro Steps

Screenshots

https://github.com/MicrosoftEdge/WebView2Feedback/assets/47863229/581e8602-3a89-4a70-b285-8186b9c3f410

Additional context The expectation is to properly decode the stream or fall back to libvpx immediately.

AB#46193615

LiangTheDev commented 1 year ago

@oleksandr-semeniuk-io , just to confirm, the screenshots and statement suggest that the issue is with Edge browser, not for (or not just for) Edge WebView2, right?

oleksandr-semeniuk-io commented 1 year ago

@LiangTheDev yes, you are right.

oleksandr-semeniuk-io commented 1 year ago

Hi, any updates on this?

sushraja-msft commented 1 year ago

Does this issue repro with Edge Canary on Windows / Chrome Canary on windows?

oleksandr-semeniuk-io commented 1 year ago

@sushraja-msft We tried on Chrome Canary 118.0.2048.0 (Official build) Canary (64-bit) and were NOT able to reproduce the issue. We also checked on Edge Beta 116.0.1938.54 (Official build) beta (64-bit) and were able to reproduce the issue. The issue is not reproducible on Chrome Canary 118.0.5963.0 as well as on Chrome GA 115.0.5790.173.

LiangTheDev commented 1 year ago

I've created an internal tracking work item for this issue.