mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-08 18:39:54 +00:00
libs/gst/base/gstbasetransform.c: Make sure streaming has finished before calling the ::stop() vfunc, since that vfun...
Original commit message from CVS: * libs/gst/base/gstbasetransform.c: (gst_base_transform_activate): Make sure streaming has finished before calling the ::stop() vfunc, since that vfunc might clear state which is being used in the streaming thread. This fixes a race that caused crashes in audioresample when shutting down a pipeline (#420106).
This commit is contained in:
parent
24c3fc33b2
commit
74861f2d0e
2 changed files with 13 additions and 0 deletions
|
@ -1,3 +1,11 @@
|
|||
2007-04-21 Tim-Philipp Müller <tim at centricular dot net>
|
||||
|
||||
* libs/gst/base/gstbasetransform.c: (gst_base_transform_activate):
|
||||
Make sure streaming has finished before calling the ::stop() vfunc,
|
||||
since that vfunc might clear state which is being used in the
|
||||
streaming thread. This fixes a race that caused crashes in
|
||||
audioresample when shutting down a pipeline (#420106).
|
||||
|
||||
2007-04-20 Stefan Kost <ensonic@users.sf.net>
|
||||
|
||||
* docs/gst/gstreamer-sections.txt:
|
||||
|
|
|
@ -1670,6 +1670,11 @@ gst_base_transform_activate (GstBaseTransform * trans, gboolean active)
|
|||
|
||||
GST_OBJECT_UNLOCK (trans);
|
||||
} else {
|
||||
/* We must make sure streaming has finished before resetting things
|
||||
* and calling the ::stop vfunc */
|
||||
GST_PAD_STREAM_LOCK (trans->sinkpad);
|
||||
GST_PAD_STREAM_UNLOCK (trans->sinkpad);
|
||||
|
||||
trans->have_same_caps = FALSE;
|
||||
/* We can only reset the passthrough mode if the instance told us to
|
||||
handle it in configure_caps */
|
||||
|
|
Loading…
Reference in a new issue