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 744039 - playbin: incorrect buffer sent to clutter-gst videosink
playbin: incorrect buffer sent to clutter-gst videosink
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
1.4.5
Other All
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-02-05 12:04 UTC by Víctor Manuel Jáquez Leal
Modified: 2018-11-03 11:34 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
video-sink: upload by software if there's no gl uploader (1.21 KB, patch)
2015-02-05 12:04 UTC, Víctor Manuel Jáquez Leal
rejected Details | Review

Description Víctor Manuel Jáquez Leal 2015-02-05 12:04:22 UTC
https://bugzilla.gnome.org/show_bug.cgi?id=743687
Comment 1 Víctor Manuel Jáquez Leal 2015-02-05 12:04:24 UTC
Created attachment 296191 [details] [review]
video-sink: upload by software if there's no gl uploader
Comment 2 Lionel Landwerlin 2015-02-05 12:07:54 UTC
I suppose this is a 3.0 bug.
Could you explain a bit in what situation this would happen? A pipeline dump maybe?
The caps negotiation should be prevent this.
Comment 3 Víctor Manuel Jáquez Leal 2015-02-05 12:37:42 UTC
(In reply to comment #2)
> I suppose this is a 3.0 bug.

Yes, I'm using the current master.

> Could you explain a bit in what situation this would happen? A pipeline dump
> maybe?

As you can see in bug 743687, using bug743687.mkv[1] and this pipeline (using master of gstreamer and gstreamer-vaapi)

$ gst-launch-1.0 playbin uri=file:///home/hadess/bug743687.mkv  video-sink=clutterautovideosink audio-filter=scaletempo

1. https://hadess.fedorapeople.org/bug743687.mkv

> The caps negotiation should be prevent this.

Sort of: the negotiated caps are "video/x-raw\,\ format\=\(string\)I420\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ interlace-mode\=\(string\)progressive\,\ chroma-site\=\(string\)mpeg2\,\ colorimetry\=\(string\)bt709\,\ framerate\=\(fraction\)25/1"

But the format I420 doesn't have a gl uploader but the dummy one.
Comment 4 Lionel Landwerlin 2015-02-05 15:08:21 UTC
Review of attachment 296191 [details] [review]:

::: clutter-gst/clutter-gst-video-sink.c
@@ +1999,1 @@
         GST_DEBUG_OBJECT (gst_source->sink,

As far I as can tell, this is incorrect.
If the buffer is signaled to provide gl textures, we can't just map the memory and read the data to software upload it.

I'll continue to investigate, but it sounds like there is a negotiation problem somewhere...
Comment 5 Víctor Manuel Jáquez Leal 2015-02-05 16:05:47 UTC
 
> I'll continue to investigate, but it sounds like there is a negotiation problem
> somewhere...

Indeed. Or in the auto-connect, since this pipeline works without this patch

gst-launch-1.0 filesrc location=bug743687.mkv ! matroskademux ! h264parse ! vaapidecode ! clutterautovideosink
Comment 6 Lionel Landwerlin 2015-02-05 17:16:34 UTC
To summarize :

With :
gst-launch-1.0 playbin uri=file:///tmp/bug743687.mkv video-sink=clutterautovideosink

Playback is failing to display any picture.
The negotiated pipeline is sending I420 buffers to the sink, but buffers are flagged with meta:GstVideoGLTextureUploadMeta. This is not a supported configuration reported by the sink.

With :
gst-launch-1.0 filesrc location=bug743687.mkv ! matroskademux ! h264parse ! vaapidecode ! clutterautovideosink

Playback is working well.
The negotiated pipeline is sending RGBA buffers to the sink, buffers are flagged with meta:GstVideoGLTextureUploadMeta.

It seems something is going wrong when playbin is involved.
Comment 7 GStreamer system administrator 2018-11-03 11:34:48 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/160.