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 715175 - videomixer: Deadlock
videomixer: Deadlock
Status: RESOLVED WONTFIX
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.2.1
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-11-25 16:12 UTC by Adrien SCH.
Modified: 2015-01-07 15:45 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Test application (6.29 KB, text/x-csrc)
2013-11-25 16:12 UTC, Adrien SCH.
Details
Backtrace of the deadlock (git master) (6.35 KB, text/plain)
2013-11-25 19:44 UTC, Nicolas Dufresne (ndufresne)
Details

Description Adrien SCH. 2013-11-25 16:12:42 UTC
Created attachment 261462 [details]
Test application

By running the attached application, you may observe a SIGSEGV fired in blend_buffers (thread = element) when the update_src_caps is called from the main context. You may see this segmentation fault after 500 stream switch. 

On my local version (1.0.8), I fixed this bug by moving GST_VIDEO_MIXER2_LOCK (mix) before the mix variable reset (mix->blend = NULL; mix->overlay = NULL;mix-fill_checker = NULL;mix->fill_color = NULL;)

By my observation, this should resolve the problem. 


Regards,
Adrien SCHWARTZENTRUBER
Comment 1 Nicolas Dufresne (ndufresne) 2013-11-25 19:37:51 UTC
Have you tested in latest stable 1.2 ? The videomixer has had a large rework for 1.2 to remove all the recyness of the original design. This rework was too large to be considered for backport in 1.0.

(I'm running it now, after few hundreds of switch it seems to still run, but I don't have much more time to test)
Comment 2 Nicolas Dufresne (ndufresne) 2013-11-25 19:44:51 UTC
Created attachment 261480 [details]
Backtrace of the deadlock (git master)

Ok, it finally hanged / deadlock on for me too. But I guess this backtrace would be useful.
Comment 3 Thibault Saunier 2014-05-26 11:11:29 UTC
I tested with the new videomixer[0] that is based on the GstAggregator baseclass that will replace GstCollectpads and that bug does not seem to happen with it.

[0] https://gitlab.com/thiblahute/gst-plugins-bad/commits/videomixer2bis
Comment 4 Sebastian Dröge (slomo) 2015-01-07 15:28:33 UTC
Let's close this then?
Comment 5 Tim-Philipp Müller 2015-01-07 15:45:00 UTC
Please try with the "compositor" element from -bad git instead, which is going to replace videomixer.

I don't think this can easily be fixed in the existing videomixer, sorry.