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 563120 - setting caps on capsfilter is racy
setting caps on capsfilter is racy
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other All
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-12-03 14:48 UTC by Jarl Christian Berentsen
Modified: 2008-12-04 22:24 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Test-case that reproduces the racy reliably (2.22 KB, text/plain)
2008-12-03 14:51 UTC, Jarl Christian Berentsen
Details
Call stack for thread 1 in race (1.79 KB, text/plain)
2008-12-04 08:22 UTC, Jarl Christian Berentsen
Details
Call stack of push thread (1.86 KB, text/plain)
2008-12-04 08:26 UTC, Jarl Christian Berentsen
Details
Push thread callstack paused in gst_base_transform_find_transform (1.50 KB, text/plain)
2008-12-04 08:28 UTC, Jarl Christian Berentsen
Details

Description Jarl Christian Berentsen 2008-12-03 14:48:18 UTC
Please describe the problem:
Changing the caps property of a capsfilter while in PLAYING turns out to be racy. The consequence is that the streaming thread stops with 'not-negotiated'.

Steps to reproduce:
Run testcase.

Actual results:


Expected results:


Does this happen every time?


Other information:
Comment 1 Jarl Christian Berentsen 2008-12-03 14:51:28 UTC
Created attachment 123875 [details]
Test-case that reproduces the racy reliably
Comment 2 Jarl Christian Berentsen 2008-12-04 08:22:39 UTC
Created attachment 123931 [details]
Call stack for thread 1 in race

Callstack of the thread doing the property setting on the capsfilter.
Comment 3 Jarl Christian Berentsen 2008-12-04 08:26:47 UTC
Created attachment 123932 [details]
Call stack of push thread

The thread is stopped on a breakpoint when gst_capsfilter_transform_caps returns an empty intersection. Stepping further shown in next attachment (threadstack2.b)
Comment 4 Jarl Christian Berentsen 2008-12-04 08:28:12 UTC
Created attachment 123933 [details]
Push thread callstack paused in gst_base_transform_find_transform

The gst_base_transform_find_transform will goto no_transform;
Comment 5 Ole André Vadla Ravnås 2008-12-04 22:24:59 UTC
Turns out that this wasn't a bug after all, the application should have included the original format in the new caps in case a push with the old format is already in progress.