mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
d3d11compositor: Reuse converter on alpha update
... instead of creating converter object Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2276>
This commit is contained in:
parent
0d34a0233b
commit
fed06df5f6
1 changed files with 12 additions and 2 deletions
|
@ -1199,7 +1199,7 @@ gst_d3d11_compositor_pad_setup_converter (GstVideoAggregatorPad * pad,
|
|||
guint zorder = 0;
|
||||
#endif
|
||||
|
||||
if (!cpad->convert || cpad->alpha_updated || self->reconfigured) {
|
||||
if (!cpad->convert || self->reconfigured) {
|
||||
GstStructure *config;
|
||||
|
||||
if (cpad->convert)
|
||||
|
@ -1214,13 +1214,23 @@ gst_d3d11_compositor_pad_setup_converter (GstVideoAggregatorPad * pad,
|
|||
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) {
|
||||
|
|
Loading…
Reference in a new issue