====== Important security settings ======
* Don't allow FF to automatically fill in forms with stored passwords signon.autofillForms = false \\ (This can now be found in Preferences as "Autofill logins and passwords")
====== HW video decoding using VAAPI ======
===== Update 2022-02-05 =====
As of now it seems that it is working with RDD enabled (tested with Firefox 96.0.3)
Only these two options need to be set on my AMD machine to enable it.
gfx.x11-egl.force-enabled true
media.ffmpeg.vaapi.enabled true
If needed disable av1/av01 codec if there is no HW decode support (YouTube may use this with 1080p otherwise)
This can of course affect media at other sites.
Note that av1/av01 is NOT the same as avc1
[[https://www.youtube.com/playlist?list=PLyqf6gJt7KuHBmeVzZteZUlNUQAVLwrZS|AV1 Beta playlist]]
media.av1.enabled = false
vainfo from AMD Ryzen 7 5700G with Radeon Graphics
vainfo: VA-API version: 1.10 (libva 2.10.0)
vainfo: Driver version: Mesa Gallium driver 20.3.5 for AMD RENOIR (DRM 3.40.0, 5.10.0-11-amd64, LLVM 11.0.1)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
==== To check if HW decoding is active ====
On newer AMD
while true; do cat /sys/kernel/debug/dri/0/amdgpu_pm_info | grep ^VCN; sleep 1; done
On Intel - check for Video engine activity
intel_gpu_top
===== Old information =====
https://bugzilla.mozilla.org/show_bug.cgi?id=1683808
https://bugzilla.mozilla.org/show_bug.cgi?id=1610199
MOZ_X11_EGL=1 firefox # Not needed anymore as there is option gfx.x11-egl.force-enabled
gfx.x11-egl.force-enabled = true
media.ffmpeg.vaapi.enabled = true
media.ffvpx.enabled = false
gfx.webrender.enabled = true
Possibly disable use of av1/av01 (YouTube uses this with 1080p otherwise)
media.av1.enabled = false
There are now also new settings for separate rendering process (RDD)
Have not fully understood yet what needs to be set.
MOZ_X11_EGL=1 MOZ_LOG="PlatformDecoderModule:5" firefox 2>&1 | grep 'VA-API'
To get better log why VAAPI is disabled run Firefox with:
MOZ_LOG="Dmabuf:5, PlatformDecoderModule:5"
===== Checking if HW decoder is active =====
==== AMD ====
Check if "uvd" is enabled. UVD stands for Unified Video Decoder
watch -n '0.1' cat '/sys/kernel/debug/dri/0/radeon_pm_info'
or
watch -n '0.1' cat '/sys/kernel/debug/dri/0/amdgpu_pm_info'
===== Known problems =====
==== Nextcloud talk ====
When a screen is shared from remote end only a black screen is shown.
Log output from:
MOZ_X11_EGL=1 MOZ_LOG="PlatformDecoderModule:5" firefox
[Child 145: Unnamed thread 0x7f899b1e8940]: D/PlatformDecoderModule Sandbox decoder rejects requested type
[Child 145: MediaPDecoder #1]: D/PlatformDecoderModule Initialising VA-API FFmpeg decoder
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
[AVHWDeviceContext @ 0x7f899adbf440] Format 0x3231564e -> nv12.
[AVHWDeviceContext @ 0x7f899adbf440] Format 0x30313050 -> p010le.
[AVHWDeviceContext @ 0x7f899adbf440] Format 0x36313050 -> unknown.
[AVHWDeviceContext @ 0x7f899adbf440] Format 0x32315659 -> yuv420p.
[AVHWDeviceContext @ 0x7f899adbf440] Format 0x56595559 -> unknown.
[AVHWDeviceContext @ 0x7f899adbf440] Format 0x59565955 -> uyvy422.
[AVHWDeviceContext @ 0x7f899adbf440] Format 0x41524742 -> bgra.
[AVHWDeviceContext @ 0x7f899adbf440] Format 0x41424752 -> rgba.
[AVHWDeviceContext @ 0x7f899adbf440] Format 0x58524742 -> bgr0.
[AVHWDeviceContext @ 0x7f899adbf440] Format 0x58424752 -> rgb0.
[AVHWDeviceContext @ 0x7f899adbf440] VAAPI driver: Mesa Gallium driver 18.3.6 for AMD KAVERI (DRM 2.50.0, 4.19.0-12-amd64, LLVM 7.0.1).
[AVHWDeviceContext @ 0x7f899adbf440] Driver not found in known nonstandard list, using standard behaviour.
[Child 145: MediaPDecoder #1]: D/PlatformDecoderModule VA-API FFmpeg init successful
[Child 145: MediaPDecoder #1]: D/PlatformDecoderModule Choosing FFmpeg pixel format for VA-API video decoding.
[Child 145: MediaPDecoder #1]: D/PlatformDecoderModule Requesting pixel format VAAPI_VLD
[vp8 @ 0x7f899a96c800] Format vaapi_vld chosen by get_format().
[vp8 @ 0x7f899a96c800] Format vaapi_vld requires hwaccel initialisation.
[vp8 @ 0x7f899a96c800] No support for codec vp8 profile -99.
[vp8 @ 0x7f899a96c800] Failed setup for format vaapi_vld: hwaccel initialisation returned error.
[vp8 @ 0x7f899a96c800] Format vaapi_vld not usable, retrying get_format() without it.
[Child 145: MediaPDecoder #1]: D/PlatformDecoderModule Choosing FFmpeg pixel format for VA-API video decoding.
[Child 145: MediaPDecoder #1]: D/PlatformDecoderModule avcodec_send_packet error: -22
[Child 145: Unnamed thread 0x7f899b1e8940]: D/PlatformDecoderModule Sandbox decoder rejects requested type
[Child 145: MediaPDecoder #1]: D/PlatformDecoderModule Initialising VA-API FFmpeg decoder
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
[AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x3231564e -> nv12.
[AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x30313050 -> p010le.
[AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x36313050 -> unknown.
[AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x32315659 -> yuv420p.
[AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x56595559 -> unknown.
[AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x59565955 -> uyvy422.
[AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x41524742 -> bgra.
[AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x41424752 -> rgba.
[AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x58524742 -> bgr0.
[AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x58424752 -> rgb0.
[AVHWDeviceContext @ 0x7f8999cc3ec0] VAAPI driver: Mesa Gallium driver 18.3.6 for AMD KAVERI (DRM 2.50.0, 4.19.0-12-amd64, LLVM 7.0.1).
[AVHWDeviceContext @ 0x7f8999cc3ec0] Driver not found in known nonstandard list, using standard behaviour.
[Child 145: MediaPDecoder #1]: D/PlatformDecoderModule VA-API FFmpeg init successful
[Child 145: MediaPDecoder #3]: D/PlatformDecoderModule Choosing FFmpeg pixel format for VA-API video decoding.
[Child 145: MediaPDecoder #3]: D/PlatformDecoderModule Requesting pixel format VAAPI_VLD
[vp8 @ 0x7f8999df7000] Format vaapi_vld chosen by get_format().
[vp8 @ 0x7f8999df7000] Format vaapi_vld requires hwaccel initialisation.
[vp8 @ 0x7f8999df7000] No support for codec vp8 profile -99.
[etc]...
=== Tested workaround (as in turning off acceleration) ===
media.ffvpx.enabled = true
====== Using Telavox web based SIP phone with FF ======
===== Need to spoof the user-agent to include "Chrome" =====
Install [[https://addons.mozilla.org/en-US/firefox/addon/user-agent-string-switcher/|User-Agent switcher]] \\
Then add this to the "Custom Mode" configuration
{
"app.telavox.com": "${userAgent} Chrome"
}
===== Now you also need to manually enable accepting calls =====
This is due to [[https://stackoverflow.com/questions/59131286/how-to-check-if-the-permission-to-access-microphone-has-been-rejected-by-the-use|microphone permisssion not queryable]]
First make sure that you have allowed persistent access to microphone. \\
Then add the value registerSoftphone:"true" to the "Local Storage" for https://app.telavox.com
If you then go to "Settings | Phone and audio" you should see that "Receive incoming calls" is now enabled.