Small fixes
authorWim Taymans <wim.taymans@gmail.com>
Sat, 19 Oct 2002 16:58:25 +0000 (16:58 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Sat, 19 Oct 2002 16:58:25 +0000 (16:58 +0000)
Original commit message from CVS:
Small fixes

ext/vorbis/vorbisfile.c

index 39bd4b3..18e6a0b 100644 (file)
@@ -418,14 +418,17 @@ gst_vorbisfile_loop (GstElement *element)
   if (vorbisfile->need_discont) {
     GstEvent *discont;
 
-    /* get stream stats */
-    samples = (gint64) (ov_pcm_tell (&vorbisfile->vf));
+    vorbisfile->need_discont = FALSE;
+
+    if (GST_PAD_IS_USABLE (vorbisfile->srcpad)) {
+      /* get stream stats */
+      samples = (gint64) (ov_pcm_tell (&vorbisfile->vf));
 
-    discont = gst_event_new_discontinuous (FALSE, GST_FORMAT_TIME, time, 
+      discont = gst_event_new_discontinuous (FALSE, GST_FORMAT_TIME, time, 
                                                  GST_FORMAT_UNITS, samples, NULL); 
 
-    vorbisfile->need_discont = FALSE;
-    gst_pad_push (vorbisfile->srcpad, GST_BUFFER (discont));
+      gst_pad_push (vorbisfile->srcpad, GST_BUFFER (discont));
+    }
   }
 
   if (ret == 0) {
@@ -433,7 +436,8 @@ gst_vorbisfile_loop (GstElement *element)
     //ov_clear (&vorbisfile->vf);
     vorbisfile->restart = TRUE;
     gst_buffer_unref (outbuf);
-    gst_pad_push (vorbisfile->srcpad, GST_BUFFER (gst_event_new (GST_EVENT_EOS)));
+    if (GST_PAD_IS_USABLE (vorbisfile->srcpad)) 
+      gst_pad_push (vorbisfile->srcpad, GST_BUFFER (gst_event_new (GST_EVENT_EOS)));
     gst_element_set_eos (element);
     return;
   }
@@ -469,12 +473,10 @@ gst_vorbisfile_loop (GstElement *element)
       vorbisfile->total_bytes += GST_BUFFER_SIZE (outbuf);
     }
   
-    if (GST_PAD_IS_USABLE (vorbisfile->srcpad)) {
+    if (GST_PAD_IS_USABLE (vorbisfile->srcpad)) 
       gst_pad_push (vorbisfile->srcpad, outbuf);
-    }
-    else {
+    else
       gst_buffer_unref (outbuf);
-    }
   }
 }