GNOME Bugzilla – Bug 715175
videomixer: Deadlock
Last modified: 2015-01-07 15:45:00 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
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)
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.
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
Let's close this then?
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.