mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
glupload: Fix caps query with no filter
If no filter caps are provided with a caps query, always generate a full set of all caps from all upload methods, not just the configured one. This is needed to handle renegotiation when dealing with raw sysmem caps - as the upload method might accept raw sysmem caps, but only the raw data uploader adds those to the caps query. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2687>
This commit is contained in:
parent
de0e4b8fd6
commit
6f9ae5d758
1 changed files with 6 additions and 1 deletions
|
@ -2358,7 +2358,12 @@ gst_gl_upload_transform_caps (GstGLUpload * upload, GstGLContext * context,
|
||||||
GstCaps *result, *tmp;
|
GstCaps *result, *tmp;
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
if (upload->priv->method) {
|
/* If (and only if) there is an upstream filter, we can
|
||||||
|
* save some time by first checking if the configured upload method
|
||||||
|
* generates intersecting caps. If there's no filter, or no
|
||||||
|
* intersection we need to generate a full set of caps from all
|
||||||
|
* uploaders for upstream to choose from */
|
||||||
|
if (upload->priv->method && filter != NULL) {
|
||||||
tmp = upload->priv->method->transform_caps (upload->priv->method_impl,
|
tmp = upload->priv->method->transform_caps (upload->priv->method_impl,
|
||||||
context, direction, caps);
|
context, direction, caps);
|
||||||
if (tmp) {
|
if (tmp) {
|
||||||
|
|
Loading…
Reference in a new issue