diff --git a/ChangeLog b/ChangeLog index 641e8943fb..8d021eb2f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-10-05 Edward Hervey + + * ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_change_state): + We need to stop the collectpads in PAUSED->READY BEFORE chaining up to + the parent class change_state. Else we end up in a locking behaviour + with the sink pads stream locks. + 2006-10-04 Wim Taymans * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_averror), diff --git a/ext/ffmpeg/gstffmpegmux.c b/ext/ffmpeg/gstffmpegmux.c index 603f249ae2..eb89ac29f6 100644 --- a/ext/ffmpeg/gstffmpegmux.c +++ b/ext/ffmpeg/gstffmpegmux.c @@ -553,6 +553,9 @@ gst_ffmpegmux_change_state (GstElement * element, GstStateChange transition) break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_collect_pads_stop (ffmpegmux->collect); + break; default: break; } @@ -563,7 +566,6 @@ gst_ffmpegmux_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_PLAYING_TO_PAUSED: break; case GST_STATE_CHANGE_PAUSED_TO_READY: - gst_collect_pads_stop (ffmpegmux->collect); if (ffmpegmux->tags) { gst_tag_list_free (ffmpegmux->tags); ffmpegmux->tags = NULL;