MicrosoftEdge / MicrosoftEdge/WebView2Feedback

Problem with decoding VP9 stream with HW accelerator

Open
#3,571 6 comments 0 reactions 1 assignee View on GitHub

@LiangTheDev is already working on this.

Since Jun 15, 2023.

bug tracked
Dominant language
PowerShell
Stars
526
Forks
67
PR merge metrics
No merged PRs in 30d

Description

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

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.