GNOME Bugzilla – Bug 797355
overlaycomposition: Example crashes
Last modified: 2018-11-01 10:15:43 UTC
I can reproduce this only on my laptop it seems. This code patch is executed: https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/overlaycomposition/gstoverlaycomposition.c#n376 Which means a second glbufferpool is created, without the video meta option. So buffers created have no video meta attached and this crash happens: Program terminated with signal SIGSEGV, Segmentation fault.
+ Trace 238701
Is it really necessary to make a new allocation query there? I commented it out and the example started to work :) I think the video meta pointer should also be checked before being used.
> Which means a second glbufferpool is created, without the video meta option. Why does this bufferpool not have the video meta option? That seems wrong :) > Is it really necessary to make a new allocation query there? I commented it out and the example started to work :) It's necessary unfortunately for correct negotiation in all cases. This is basically the same code as in textoverlay. Can you reproduce the same crash with textoverlay in the same pipeline? > I think the video meta pointer should also be checked before being used. What do you mean?
(In reply to Sebastian Dröge (slomo) from comment #1) > > Which means a second glbufferpool is created, without the video meta option. > > Why does this bufferpool not have the video meta option? That seems wrong :) > Now I can't reproduce the bug anymore... Yay for heisenbugs :/ > > Is it really necessary to make a new allocation query there? I commented it out and the example started to work :) > > It's necessary unfortunately for correct negotiation in all cases. This is > basically the same code as in textoverlay. Can you reproduce the same crash > with textoverlay in the same pipeline? > > > I think the video meta pointer should also be checked before being used. > > What do you mean? I mean the GstMeta* returned by gst_video_buffer_get_meta() in gst_gl_composition_overlay_add_transformation() can potentially be NULL, in theory :) Anyway I'll just close this, since the crash no longer happens here. Sorry for the noise.