Closed
Bug 1449895
Opened 8 years ago
Closed 2 years ago
Need some way to disable multiple layers in VP9
Categories
(Core :: WebRTC: Audio/Video, defect, P3)
Core
WebRTC: Audio/Video
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: paul.a.bellamy, Unassigned)
Details
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Steps to reproduce:
1. Have hardware which supports VP9, but not multiple layers. For example, an S905X CPU from Amlogic, used in a media box (Amlogic is pretty popular in media boxes). You can read some info about it here https://en.wikipedia.org/wiki/Amlogic
2. Use a desktop capture to encode VP9 from chrome/chromium (which forces multiple spatial layers)
3. Fail to decode vp9 with multiple layers
Actual results:
2 spatial layers are hard-coded for desktop capture video sources, which fails on the hardware decoding (artifacting).
Expected results:
It would be nice to have some way to request only a single layer SVC stream for decoders which only support that.
In particular, the hard-codeing of the svc layers is at: https://dxr.mozilla.org/mozilla-central/source/media/webrtc/signaling/src/media-conduit/VideoConduit.cpp?redirect_type=direct#559-574
For more info, Chrome has/had the same issue: https://bugs.chromium.org/p/webrtc/issues/detail?id=8702#c10
Comment 1•8 years ago
|
||
Based on other similar reports I think the correct component for here would be Core::Audio/Video: Playback. Please change if this is not the right component.
Component: Untriaged → Audio/Video
Product: Firefox → Core
Updated•8 years ago
|
Component: Audio/Video → Audio/Video: Playback
Comment 2•8 years ago
|
||
Jya: is VP9 hardware decoding turned on by default already?
Paul: what do you mean by some way? A compile time option for when you compile Firefox for such a media box, or a user pref, or are you asking for a JavaScript API here?
Status: UNCONFIRMED → NEW
Rank: 25
Component: Audio/Video: Playback → WebRTC: Audio/Video
Ever confirmed: true
Flags: needinfo?(paul.a.bellamy)
Flags: needinfo?(jyavenard)
Priority: -- → P3
| Reporter | ||
Comment 3•8 years ago
|
||
I mean a JavaScript API. The chromium issue has opted to default screen-sharing to a single SVC layer, which also fixes our issue. But, aside from that, some way (in-band or out-of-band) for the screen-sharing client to indicate that it can only accept a single VP9 layer.
Flags: needinfo?(paul.a.bellamy)
Comment 4•8 years ago
|
||
(In reply to Nils Ohlmeier [:drno] from comment #2)
> Jya: is VP9 hardware decoding turned on by default already?
>
No
> Paul: what do you mean by some way? A compile time option for when you
> compile Firefox for such a media box, or a user pref, or are you asking for
> a JavaScript API here?
We never use the VP9 hardware decoder with WebRTC, only for video playback on windows and if the machine has been benchmarked to be fast enough to decode and if the hardware supports it.
In WebRTC, only the libvx software decoder is used.
Also, VP9 isn't the default codec (it's VP8)
I'm guessing the issue is only for the remote box for content encoded by firefox. Would need to add a way to describe the codec accepted by the remote peer...
Flags: needinfo?(jyavenard)
| Reporter | ||
Comment 5•8 years ago
|
||
> the issue is only for the remote box for content encoded by firefox
Yes, exactly.
Updated•4 years ago
|
Severity: normal → S3
Comment 6•2 years ago
|
||
As far as I can tell we've been doing a single spatial layer for some time. We don't support the webrtc-svc spec (and by extension, more than one layer in our impl), but that is how one will be able to control what svc config gets used for encoding.
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•