These encoders: * are supported by ~no hardware * i can't think of any actual use for them in the apps we ship, and * most importantly, fail to build with system aom/vpx. The hardware *decoders*, on the other hand, are useful for Signal Messenger, and should work now. --- src/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.orig 2025-07-19 11:32:35.717979936 +0200 +++ src/media/gpu/vaapi/vaapi_video_encode_accelerator.cc 2025-08-15 14:42:43.908933011 +0200 @@ -46,13 +46,10 @@ #include "media/gpu/gpu_video_encode_accelerator_helpers.h" #include "media/gpu/h264_dpb.h" #include "media/gpu/macros.h" -#include "media/gpu/vaapi/av1_vaapi_video_encoder_delegate.h" #include "media/gpu/vaapi/h264_vaapi_video_encoder_delegate.h" #include "media/gpu/vaapi/vaapi_common.h" #include "media/gpu/vaapi/vaapi_utils.h" #include "media/gpu/vaapi/vaapi_wrapper.h" -#include "media/gpu/vaapi/vp8_vaapi_video_encoder_delegate.h" -#include "media/gpu/vaapi/vp9_vaapi_video_encoder_delegate.h" #include "media/gpu/vp8_reference_frame_vector.h" #include "media/gpu/vp9_reference_frame_vector.h" @@ -233,8 +230,7 @@ EncoderStatus VaapiVideoEncodeAccelerato } const VideoCodec codec = VideoCodecProfileToVideoCodec(config.output_profile); - if (codec != VideoCodec::kH264 && codec != VideoCodec::kVP8 && - codec != VideoCodec::kVP9 && codec != VideoCodec::kAV1) { + if (codec != VideoCodec::kH264) { MEDIA_LOG(ERROR, media_log.get()) << "Unsupported profile: " << GetProfileName(config.output_profile); return {EncoderStatus::Codes::kEncoderInitializationError}; @@ -324,11 +320,6 @@ void VaapiVideoEncodeAccelerator::Initia : VaapiWrapper::kEncodeVariableBitrate; } break; - case VideoCodec::kVP8: - case VideoCodec::kVP9: - case VideoCodec::kAV1: - mode = VaapiWrapper::kEncodeConstantQuantizationParameter; - break; default: NotifyError({EncoderStatus::Codes::kEncoderUnsupportedCodec, "Unsupported codec: " + GetCodecName(output_codec_)}); @@ -380,24 +371,6 @@ void VaapiVideoEncodeAccelerator::Initia } } break; - case VideoCodec::kVP8: - if (!IsConfiguredForTesting()) { - encoder_ = std::make_unique( - vaapi_wrapper_, error_cb); - } - break; - case VideoCodec::kVP9: - if (!IsConfiguredForTesting()) { - encoder_ = std::make_unique( - vaapi_wrapper_, error_cb); - } - break; - case VideoCodec::kAV1: - if (!IsConfiguredForTesting()) { - encoder_ = std::make_unique( - vaapi_wrapper_, error_cb); - } - break; default: NOTREACHED() << "Unsupported codec type " << GetCodecName(output_codec_); } @@ -896,19 +869,6 @@ VaapiVideoEncodeAccelerator::CreateEncod picture = base::MakeRefCounted( reconstructed_surface->ReleaseAsVASurfaceHandle()); break; - case VideoCodec::kVP8: - picture = base::MakeRefCounted( - reconstructed_surface->ReleaseAsVASurfaceHandle()); - break; - case VideoCodec::kVP9: - picture = base::MakeRefCounted( - reconstructed_surface->ReleaseAsVASurfaceHandle()); - break; - case VideoCodec::kAV1: - picture = base::MakeRefCounted( - /*display_va_surface=*/nullptr, - reconstructed_surface->ReleaseAsVASurfaceHandle()); - break; default: return nullptr; } --- src/media/gpu/vaapi/BUILD.gn.orig 2025-07-02 22:10:56.132470571 +0200 +++ src/media/gpu/vaapi/BUILD.gn 2025-07-11 18:17:18.866524759 +0200 @@ -36,8 +36,6 @@ source_set("vaapi") { sources = [ "av1_vaapi_video_decoder_delegate.cc", "av1_vaapi_video_decoder_delegate.h", - "av1_vaapi_video_encoder_delegate.cc", - "av1_vaapi_video_encoder_delegate.h", "h264_vaapi_video_decoder_delegate.cc", "h264_vaapi_video_decoder_delegate.h", "h264_vaapi_video_encoder_delegate.cc", @@ -67,12 +65,8 @@ source_set("vaapi") { "vaapi_webp_decoder.h", "vp8_vaapi_video_decoder_delegate.cc", "vp8_vaapi_video_decoder_delegate.h", - "vp8_vaapi_video_encoder_delegate.cc", - "vp8_vaapi_video_encoder_delegate.h", "vp9_vaapi_video_decoder_delegate.cc", "vp9_vaapi_video_decoder_delegate.h", - "vp9_vaapi_video_encoder_delegate.cc", - "vp9_vaapi_video_encoder_delegate.h", ] if (enable_hevc_parser_and_hw_decoder) { sources += [ @@ -96,8 +90,6 @@ source_set("vaapi") { "//media/gpu:video_frame_mapper_common", "//media/gpu/chromeos:common", "//mojo/public/cpp/bindings", - "//third_party/libaom:libaomrc", - "//third_party/libvpx:libvpxrc", "//third_party/libyuv", "//ui/gfx", "//ui/gfx/geometry",