I'm too lazy to comment this
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>
Fri, 4 Apr 2003 21:02:18 +0000 (21:02 +0000)
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>
Fri, 4 Apr 2003 21:02:18 +0000 (21:02 +0000)
Original commit message from CVS:
Fix #106709 - waiting for approval in 0.6.1 - patch thanks to Peter N Lundblad <lundblad@linux.nu>

sys/oss/gstosssrc.c

index 748bfb4..db810f5 100644 (file)
@@ -306,6 +306,20 @@ gst_osssrc_get (GstPad *pad)
   
   buf = gst_buffer_new_and_alloc (src->buffersize);
   
+  if (!GST_PAD_CAPS (pad)) {
+    /* nothing was negotiated, we can decide on a format */
+    if (!gst_osssrc_negotiate (pad)) {
+      gst_buffer_unref (buf);
+      gst_element_error (GST_ELEMENT (src), "could not negotiate format");
+      return GST_BUFFER (gst_event_new (GST_EVENT_INTERRUPT));
+    }
+  }
+  if (src->common.bps == 0) {
+    gst_buffer_unref (buf);
+    gst_element_error (GST_ELEMENT (src), "no format negotiated");
+    return GST_BUFFER (gst_event_new (GST_EVENT_INTERRUPT));
+  }
+
   readbytes = read (src->common.fd,GST_BUFFER_DATA (buf),
                     src->buffersize);
   if (readbytes < 0) {
@@ -321,20 +335,6 @@ gst_osssrc_get (GstPad *pad)
     return GST_BUFFER (gst_event_new (GST_EVENT_INTERRUPT));
   }
 
-  if (!GST_PAD_CAPS (pad)) {
-    /* nothing was negotiated, we can decide on a format */
-    if (!gst_osssrc_negotiate (pad)) {
-      gst_buffer_unref (buf);
-      gst_element_error (GST_ELEMENT (src), "could not negotiate format");
-      return GST_BUFFER (gst_event_new (GST_EVENT_INTERRUPT));
-    }
-  }
-  if (src->common.bps == 0) {
-    gst_buffer_unref (buf);
-    gst_element_error (GST_ELEMENT (src), "no format negotiated");
-    return GST_BUFFER (gst_event_new (GST_EVENT_INTERRUPT));
-  }
-
   GST_BUFFER_SIZE (buf) = readbytes;
   GST_BUFFER_OFFSET (buf) = src->curoffset;