check error code correctly
authorThomas Vander Stichele <thomas@apestaart.org>
Wed, 2 Jun 2004 17:20:13 +0000 (17:20 +0000)
committerThomas Vander Stichele <thomas@apestaart.org>
Wed, 2 Jun 2004 17:20:13 +0000 (17:20 +0000)
Original commit message from CVS:
check error code correctly

ChangeLog
ext/alsa/gstalsasrc.c

index e8227f2c3479c2a062005d01741b8a948369be40..dd84a41352f5efd5d8fe2efc521c3074d982f81d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>
+
+       * ext/alsa/gstalsaclock.c: (gst_alsa_clock_get_type):
+       * ext/alsa/gstalsasrc.c: (gst_alsa_src_loop):
+          check error condition on available samples correctly
+
 2004-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>
 
        * ext/alsa/gstalsasrc.c: (gst_alsa_src_get_time):
index ea9d4856f2d6e2f7b8b52aead34a8a98729f5a58..db50d040bcd5e0d04d283f0785d42a9d329e7a10 100644 (file)
@@ -329,11 +329,19 @@ gst_alsa_src_loop (GstElement * element)
     }
   }
 
-  while ((avail = gst_alsa_update_avail (this)) < this->period_size) {
-    if (avail == -EPIPE)
+  /* the cast to long is explicitly needed;
+   * with avail = -32 and period_size = 100, avail < period_size is false */
+  while ((avail = gst_alsa_update_avail (this)) < (long) this->period_size) {
+    if (avail == -EPIPE) {
+      GST_DEBUG_OBJECT (this, "got EPIPE when checking for available bytes");
       continue;
-    if (avail < 0)
+    }
+    if (avail < 0) {
+      GST_DEBUG_OBJECT (this,
+          "got error %s (%d) when checking for available bytes",
+          snd_strerror (avail));
       return;
+    }
     if (snd_pcm_state (this->handle) != SND_PCM_STATE_RUNNING) {
       if (!gst_alsa_start (this))
         return;