guint zorder = 0;
#endif
- if (!cpad->convert || cpad->alpha_updated || self->reconfigured) {
+ if (!cpad->convert || self->reconfigured) {
GstStructure *config;
if (cpad->convert)
cpad->convert =
gst_d3d11_converter_new (self->device, &pad->info, &vagg->info, config);
- cpad->alpha_updated = FALSE;
if (!cpad->convert) {
GST_ERROR_OBJECT (pad, "Couldn't create converter");
return FALSE;
}
is_first = TRUE;
+ } else if (cpad->alpha_updated) {
+ GstStructure *config;
+
+ config = gst_structure_new_empty ("config");
+ if (cpad->alpha <= 1.0) {
+ gst_structure_set (config, GST_D3D11_CONVERTER_OPT_ALPHA_VALUE,
+ G_TYPE_DOUBLE, cpad->alpha, nullptr);
+ }
+
+ gst_d3d11_converter_update_config (cpad->convert, config);
+ cpad->alpha_updated = FALSE;
}
if (!cpad->blend || cpad->blend_desc_updated) {