From: Tim-Philipp Müller Date: Wed, 7 Mar 2018 18:50:05 +0000 (+0000) Subject: Revert "alsasrc: lock calls to snd_pcm_delay() with mutex as in alsasink" X-Git-Tag: 1.19.3~511^2~1815 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ae9911617e6221ef5c6948081f226165a0a16149;p=platform%2Fupstream%2Fgstreamer.git Revert "alsasrc: lock calls to snd_pcm_delay() with mutex as in alsasink" This reverts commit 4f88125b3ddc15367d528e850cc27739f5bb27fa. This seems to have undesirable side-effects and needs more investigation first. https://bugzilla.gnome.org/show_bug.cgi?id=746015 --- diff --git a/ext/alsa/gstalsasrc.c b/ext/alsa/gstalsasrc.c index d665f6e..6ee0ca8 100644 --- a/ext/alsa/gstalsasrc.c +++ b/ext/alsa/gstalsasrc.c @@ -118,7 +118,6 @@ gst_alsasrc_finalize (GObject * object) g_free (src->device); g_mutex_clear (&src->alsa_lock); - g_mutex_clear (&src->delay_lock); G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -276,7 +275,6 @@ gst_alsasrc_init (GstAlsaSrc * alsasrc) alsasrc->driver_timestamps = FALSE; g_mutex_init (&alsasrc->alsa_lock); - g_mutex_init (&alsasrc->delay_lock); } #define CHECK(call, error) \ @@ -960,11 +958,7 @@ gst_alsasrc_read (GstAudioSrc * asrc, gpointer data, guint length, GST_ALSA_SRC_LOCK (asrc); while (cptr > 0) { - GST_DELAY_SRC_LOCK (asrc); - err = snd_pcm_readi (alsa->handle, ptr, cptr); - GST_DELAY_SRC_UNLOCK (asrc); - - if (err < 0) { + if ((err = snd_pcm_readi (alsa->handle, ptr, cptr)) < 0) { if (err == -EAGAIN) { GST_DEBUG_OBJECT (asrc, "Read error: %s", snd_strerror (err)); continue; @@ -1011,9 +1005,7 @@ gst_alsasrc_delay (GstAudioSrc * asrc) alsa = GST_ALSA_SRC (asrc); - GST_DELAY_SRC_LOCK (asrc); res = snd_pcm_delay (alsa->handle, &delay); - GST_DELAY_SRC_UNLOCK (asrc); if (G_UNLIKELY (res < 0)) { GST_DEBUG_OBJECT (alsa, "snd_pcm_delay returned %d", res); delay = 0; diff --git a/ext/alsa/gstalsasrc.h b/ext/alsa/gstalsasrc.h index 54abb0a..57e2701 100644 --- a/ext/alsa/gstalsasrc.h +++ b/ext/alsa/gstalsasrc.h @@ -39,10 +39,6 @@ G_BEGIN_DECLS #define GST_ALSA_SRC_LOCK(obj) (g_mutex_lock (GST_ALSA_SRC_GET_LOCK (obj))) #define GST_ALSA_SRC_UNLOCK(obj) (g_mutex_unlock (GST_ALSA_SRC_GET_LOCK (obj))) -#define GST_DELAY_SRC_GET_LOCK(obj) (&GST_ALSA_SRC_CAST (obj)->delay_lock) -#define GST_DELAY_SRC_LOCK(obj) (g_mutex_lock (GST_DELAY_SRC_GET_LOCK (obj))) -#define GST_DELAY_SRC_UNLOCK(obj) (g_mutex_unlock (GST_DELAY_SRC_GET_LOCK (obj))) - typedef struct _GstAlsaSrc GstAlsaSrc; typedef struct _GstAlsaSrcClass GstAlsaSrcClass; @@ -75,7 +71,6 @@ struct _GstAlsaSrc { snd_pcm_uframes_t period_size; GMutex alsa_lock; - GMutex delay_lock; }; struct _GstAlsaSrcClass {