From 38c2bcc170a967e91c62b0f893586aceeb7ab9a2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 23 Mar 2006 19:57:34 +0000 Subject: [PATCH] ext/libpng/gstpngdec.c: Make state change function thread-safe. Original commit message from CVS: * ext/libpng/gstpngdec.c: (gst_pngdec_change_state): Make state change function thread-safe. --- ChangeLog | 5 +++++ ext/libpng/gstpngdec.c | 15 +++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6cf0f8c..af61cf6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2006-03-23 Tim-Philipp Müller + * ext/libpng/gstpngdec.c: (gst_pngdec_change_state): + Make state change function thread-safe. + +2006-03-23 Tim-Philipp Müller + * gst/wavparse/gstwavparse.c: (gst_wavparse_get_upstream_size), (gst_wavparse_stream_headers), (gst_wavparse_stream_data): Don't try to read beyond the end of the file just because diff --git a/ext/libpng/gstpngdec.c b/ext/libpng/gstpngdec.c index 6842328..9bf672c 100644 --- a/ext/libpng/gstpngdec.c +++ b/ext/libpng/gstpngdec.c @@ -592,8 +592,8 @@ beach: static GstStateChangeReturn gst_pngdec_change_state (GstElement * element, GstStateChange transition) { - GstStateChangeReturn ret = GST_STATE_CHANGE_FAILURE; - GstPngDec *pngdec = NULL; + GstStateChangeReturn ret; + GstPngDec *pngdec; pngdec = GST_PNGDEC (element); @@ -601,6 +601,15 @@ gst_pngdec_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_READY_TO_PAUSED: gst_pngdec_libpng_init (pngdec); break; + default: + break; + } + + ret = parent_class->change_state (element, transition); + if (ret != GST_STATE_CHANGE_SUCCESS) + return ret; + + switch (transition) { case GST_STATE_CHANGE_PAUSED_TO_READY: gst_pngdec_libpng_clear (pngdec); break; @@ -608,8 +617,6 @@ gst_pngdec_change_state (GstElement * element, GstStateChange transition) break; } - ret = parent_class->change_state (element, transition); - return ret; } -- 2.7.4