summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2018-03-07 18:50:05 +0000
committerTim-Philipp Müller <tim@centricular.com>2018-03-07 18:50:25 +0000
commitae9911617e6221ef5c6948081f226165a0a16149 (patch)
treebb96cf94d64588c167abf50de8f605b28480b2a3
parent5f9c61e08f42602dff766db3ae5cb21a3dea9f3f (diff)
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
-rw-r--r--ext/alsa/gstalsasrc.c10
-rw-r--r--ext/alsa/gstalsasrc.h5
2 files changed, 1 insertions, 14 deletions
diff --git a/ext/alsa/gstalsasrc.c b/ext/alsa/gstalsasrc.c
index d665f6e3a..6ee0ca887 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 54abb0a0c..57e27015a 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 {