gst/mpegaudioparse/gstmpegaudioparse.c: Don't take the stream lock when caching events. This is not necessary and res...

Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_sink_event):
Don't take the stream lock when caching events. This is not necessary
and results in a deadlock when seeking with rhythmbox (but not with
totem or banshee for some reason).
This commit is contained in:
Sebastian Dröge 2008-03-12 16:09:48 +00:00
parent 4c646533fa
commit 62204cad3d
2 changed files with 10 additions and 4 deletions

View file

@ -1,3 +1,11 @@
2008-03-12 Sebastian Dröge <slomo@circular-chaos.org>
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_sink_event):
Don't take the stream lock when caching events. This is not necessary
and results in a deadlock when seeking with rhythmbox (but not with
totem or banshee for some reason).
2008-03-10 Wim Taymans <wim.taymans@collabora.co.uk>
Patch by: Pizpot Gargravarr <pgargravarr at siriuscybernetics dot org>

View file

@ -540,16 +540,14 @@ gst_mp3parse_sink_event (GstPad * pad, GstEvent * event)
res = gst_pad_push_event (mp3parse->srcpad, event);
break;
default:
GST_PAD_STREAM_LOCK (pad);
/* Cache all events except EOS and the ones above if we have
* a pending segment */
if (mp3parse->pending_segment && GST_EVENT_TYPE (event) != GST_EVENT_EOS) {
/* Cache all events except EOS and the ones above if we have
* a pending segment */
mp3parse->pending_events =
g_list_append (mp3parse->pending_events, event);
} else {
res = gst_pad_push_event (mp3parse->srcpad, event);
}
GST_PAD_STREAM_UNLOCK (pad);
break;
}