Don't set VAAPI vpp blend flags if alpha == 1.0,
i.e. fully opaque. This can avoid extra processing
overhead on some drivers that apply blending
unconditionally when flags are present, even if the
end result is the same without blend flags (i.e. all
opaque alpha channels).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1380>
param->output_background_color = 0xff000000;
#if VA_CHECK_VERSION(1,1,0)
- blend_state.flags = VA_BLEND_GLOBAL_ALPHA;
- blend_state.global_alpha = current->alpha;
- param->blend_state = &blend_state;
+ if (current->alpha < 1.0) {
+ blend_state.flags = VA_BLEND_GLOBAL_ALPHA;
+ blend_state.global_alpha = current->alpha;
+ param->blend_state = &blend_state;
+ }
#endif
vaapi_unmap_buffer (va_display, id, NULL);