After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 754076 - videoconvert: overlay negotiation fails
videoconvert: overlay negotiation fails
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-08-25 12:47 UTC by Arnaud Vrac
Modified: 2018-11-03 11:40 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
videoconvert: properly transform caps containing added features (1.37 KB, patch)
2015-08-25 12:47 UTC, Arnaud Vrac
none Details | Review

Description Arnaud Vrac 2015-08-25 12:47:43 UTC
Created attachment 309955 [details] [review]
videoconvert: properly transform caps containing added features

With the following pipeline overlay negotiation fails between textoverlay and the sink:

gst-launch-1.0 videotestsrc ! video/x-raw,format=YUV9 ! textoverlay text=YEAH font-desc="Arial 60" ! videoconvert ! glimagesink

The caps filter forces videoconvert in non-passthrough mode. The transform_meta and filter_meta callbacks in videoconvert do let the overlay composition meta pass, but the caps transformation function (that remove the video format info) does not account for it. This means the caps with SystemMemory and other caps features will be ignored.

The attached patch fixes this issue.

Note that there are probably other elements with the same issue. videoscale for example, but in this case it's more complicated because we also need to scale the overlay composition.
Comment 1 Nicolas Dufresne (ndufresne) 2015-08-25 14:09:36 UTC
Review of attachment 309955 [details] [review]:

(Small note, I believe I wrote this patch ;-P) My concern with this PoC is that the caps negotiation becomes much wider the  what we actually support. I have the impression that there should be some conditions base on being pass-through or not.

For meta:VideoCompositionOverlay it totally make sense to me. For meta:VideoCrop also, but for some other meta (which might not exist yet) will it still make sense ? And if not, how will we make it negotiation properly ?
Comment 2 Arnaud Vrac 2015-08-25 14:52:40 UTC
Sorry I didn't credit you, feel free to repost the patch with you as the author.
Comment 3 Sebastian Dröge (slomo) 2015-08-26 08:52:21 UTC
(In reply to Nicolas Dufresne (stormer) from comment #1)
> Review of attachment 309955 [details] [review] [review]:
> 
> (Small note, I believe I wrote this patch ;-P) My concern with this PoC is
> that the caps negotiation becomes much wider the  what we actually support.
> I have the impression that there should be some conditions base on being
> pass-through or not.
> 
> For meta:VideoCompositionOverlay it totally make sense to me. For
> meta:VideoCrop also, but for some other meta (which might not exist yet)
> will it still make sense ? And if not, how will we make it negotiation
> properly ?

You can query the tags of a specific meta, and use that to decide if you can pass it through or not.
Comment 4 Nicolas Dufresne (ndufresne) 2015-08-26 12:51:12 UTC
Ok, as it never bee done before, please correct me, but for each feature that would mean:

Split the string on the column ":", take the first part and get the GstMetaInfo. From there, you can check if that meta has tag. Seems like a pretty heavy thing to do, but possible.
Comment 5 Sebastian Dröge (slomo) 2015-08-26 14:15:14 UTC
I don't know what else we could do here :) It doesn't seem ideal
Comment 6 GStreamer system administrator 2018-11-03 11:40:43 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/216.