Closed
Bug 1505284
Opened 6 years ago
Closed 6 years ago
Use H264 MediaDataDecoder for webrtc calls
Categories
(Core :: WebRTC: Audio/Video, enhancement, P2)
Core
WebRTC: Audio/Video
Tracking
()
RESOLVED
FIXED
mozilla65
Tracking | Status | |
---|---|---|
firefox65 | --- | fixed |
People
(Reporter: jya, Assigned: jya)
References
Details
Attachments
(5 files)
It is now possible to use the system's H264 decoder for webrtc calls, we should enable it by default.
It allows for low-latency, typically hardware accelerated calls with webrtc peers using h264.
Comment 1•6 years ago
|
||
Great. How about we flip the pref for Nightly users on Mac?
The other question is if with this change then H264 with hardware should be preferred over VP8?
I assume we don't have any means to switch dynamically in the middle of the call if the hardware decoder fails. It would be great if we would have the ability to fall back to available software decoders in that case.
Assignee | ||
Comment 2•6 years ago
|
||
(In reply to Nils Ohlmeier [:drno] from comment #1)
> Great. How about we flip the pref for Nightly users on Mac?
>
it works on all platform.
> The other question is if with this change then H264 with hardware should be
> preferred over VP8?
H264 is almost universally HW accelerated on both mac and windows, on linux it will still be SW.
VP8 can be HW accelerated only on recent Intel (generation 6 and later) and on windows only.
>
> I assume we don't have any means to switch dynamically in the middle of the
> call if the hardware decoder fails. It would be great if we would have the
> ability to fall back to available software decoders in that case.
Actually, you can. If the HW decoder fail we have mechanism to retry (requiring a keyframe) and fallback to SW automatically.
Assignee | ||
Comment 3•6 years ago
|
||
(In reply to Nils Ohlmeier [:drno] from comment #1)
> Great. How about we flip the pref for Nightly users on Mac?
>
> The other question is if with this change then H264 with hardware should be
> preferred over VP8?
I actually have a bug open to make VP9 the default if the machine has HW decoders (bug 1392962)
Assignee | ||
Updated•6 years ago
|
Updated•6 years ago
|
Rank: 25
Priority: -- → P2
Assignee | ||
Comment 4•6 years ago
|
||
Assignee | ||
Comment 5•6 years ago
|
||
All H264 system's decoders now handle low latency mode and are typically hardware accelerated.
Depends on D12431
Assignee | ||
Updated•6 years ago
|
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/05fd55926206
P1. Use ffmpeg decoder for h264 in low latency mode. r=padenot
https://hg.mozilla.org/integration/autoland/rev/1d3eb26cfeac
P2. Use system's h264 decoder for webrtc call. r=padenot
Comment 7•6 years ago
|
||
Backed out for GTest crashes on [@ mozilla::AppleDecoderModule::Init()]
Push link: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception%2Crunnable&searchStr=os%2Cx%2C10.10%2Cdebug%2Ctest-macosx64%2Fdebug-gtest%2C%28gtest%29&revision=1d3eb26cfeac0fd13ab376ab86cc1b2ccd1fdc82
Backout link: https://hg.mozilla.org/integration/autoland/rev/eb6978b0841764e17373c645ca5d29b5127ef3d5
Log link: https://treeherder.mozilla.org/logviewer.html#?job_id=212952160&repo=autoland&lineNumber=21993
Flags: needinfo?(jyavenard)
Comment 8•6 years ago
|
||
There were also crashes on [@ mozilla::WMFDecoderModule::Init()]
Log link: https://treeherder.mozilla.org/logviewer.html#?job_id=212963900&repo=autoland&lineNumber=22073
Comment 9•6 years ago
|
||
Also triggered a mda perma failure on test_peerConnection_basicH264Video.html
Log link: https://treeherder.mozilla.org/logviewer.html#?job_id=212964686&repo=autoland&lineNumber=20007
Updated•6 years ago
|
Attachment #9026401 -
Attachment description: Bug 1505284 - P2. Use system's h264 decoder for webrtc call. r?padenot! → Bug 1505284 - P2. Use system's h264 decoder for webrtc call. r?padenot! All H264 system's decoders now handle low latency mode and are typically hardware accelerated.
Assignee | ||
Comment 10•6 years ago
|
||
While typically those will always be, when using through gtest it won't.
Depends on D12432
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 11•6 years ago
|
||
The fake H.264 GMP encoder creates dummy frames that can't be decoded by anything but the fake GMP decoder.
Depends on D12519
Updated•6 years ago
|
Attachment #9026681 -
Attachment description: Bug 1505284 - P4. Don't use real H264 decoder with fake GMP encoder. r?dminor! → Bug 1505284 - P5. Don't use real H264 decoder with fake GMP encoder. r?dminor!
Assignee | ||
Comment 12•6 years ago
|
||
So that we can disable just the H264 decoders while allowing VP8 or VP9.
Updated•6 years ago
|
Attachment #9026681 -
Attachment description: Bug 1505284 - P5. Don't use real H264 decoder with fake GMP encoder. r?dminor! → Bug 1505284 - P5. Don't use real H264 decoder with fake GMP encoder. r?dminor! The fake H.264 GMP encoder creates dummy frames that can't be decoded by anything but the fake GMP decoder.
Updated•6 years ago
|
Attachment #9026401 -
Attachment description: Bug 1505284 - P2. Use system's h264 decoder for webrtc call. r?padenot! All H264 system's decoders now handle low latency mode and are typically hardware accelerated. → Bug 1505284 - P2. Use system's h264 decoder for webrtc call. r?padenot!
Updated•6 years ago
|
Attachment #9026681 -
Attachment description: Bug 1505284 - P5. Don't use real H264 decoder with fake GMP encoder. r?dminor! The fake H.264 GMP encoder creates dummy frames that can't be decoded by anything but the fake GMP decoder. → Bug 1505284 - P5. Don't use real H264 decoder with fake GMP encoder. r?dminor!
Updated•6 years ago
|
Attachment #9026400 -
Attachment description: Bug 1505284 - P1. Use ffmpeg decoder for h264 in low latency mode. r?padenot! → Bug 1505284 - P1. Use ffmpeg decoder for h264 in low latency mode. r=padenot
Comment 13•6 years ago
|
||
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/92a1eb79716c
P1. Use ffmpeg decoder for h264 in low latency mode. r=padenot
https://hg.mozilla.org/integration/autoland/rev/e89c4b9db24d
P2. Use system's h264 decoder for webrtc call. r=padenot
https://hg.mozilla.org/integration/autoland/rev/99321f96fd0c
P3. Ensure gfxVars and gfxPrefs are always initialized when using PDMFactory. r=gerald
https://hg.mozilla.org/integration/autoland/rev/7f62a35b4171
P4. Split preferences to enable WebRTC with MediaDataDecoder. r=padenot
https://hg.mozilla.org/integration/autoland/rev/95d5bb21c934
P5. Don't use real H264 decoder with fake GMP encoder. r=dminor
Comment 14•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/92a1eb79716c
https://hg.mozilla.org/mozilla-central/rev/e89c4b9db24d
https://hg.mozilla.org/mozilla-central/rev/99321f96fd0c
https://hg.mozilla.org/mozilla-central/rev/7f62a35b4171
https://hg.mozilla.org/mozilla-central/rev/95d5bb21c934
Status: NEW → RESOLVED
Closed: 6 years ago
status-firefox65:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
Assignee | ||
Updated•6 years ago
|
Flags: needinfo?(jyavenard)
You need to log in
before you can comment on or make changes to this bug.
Description
•