commit 7742bfaf382777b4044c7fd64703cd4275ea0c5a
parent 3e26fc1cb82cef3dd9506e4a9fc7f27e9ed5b76f
Author: Andrew Osmond <aosmond@gmail.com>
Date: Wed, 10 Dec 2025 16:24:23 +0000
Bug 2005119 - FFmpegDataEncoder::FindSoftwareEncoder should not allow fallback to hardware encoders. r=media-playback-reviewers,padenot
The order of checks was wrong. We should filter out all hardware codecs
before checking for libx264.
Differential Revision: https://phabricator.services.mozilla.com/D275718
Diffstat:
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/dom/media/platforms/ffmpeg/FFmpegDataEncoder.cpp b/dom/media/platforms/ffmpeg/FFmpegDataEncoder.cpp
@@ -69,6 +69,10 @@ AVCodec* FFmpegDataEncoder<LIBAV_VER>::FindSoftwareEncoder(
continue;
}
+ if (codec->capabilities & AV_CODEC_CAP_HARDWARE) {
+ continue;
+ }
+
// Prioritize libx264 for now since it's the only h264 codec we tested.
// Once libopenh264 is supported, we can simply use the first one we find.
if (aCodecId == AV_CODEC_ID_H264 && strcmp(codec->name, "libx264") != 0) {
@@ -78,10 +82,6 @@ AVCodec* FFmpegDataEncoder<LIBAV_VER>::FindSoftwareEncoder(
continue;
}
- if (codec->capabilities & AV_CODEC_CAP_HARDWARE) {
- continue;
- }
-
if (codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL) {
if (!fallbackCodec) {
fallbackCodec = codec;