s/gst_element_install_std_props/gst_element_class_install_std_props/ -- it just makes...
[platform/upstream/gstreamer.git] / gst / elements / gstdisksink.c
index ad813a7..93efdf3 100644 (file)
@@ -101,7 +101,7 @@ gst_disksink_class_init (GstDiskSinkClass *klass)
 
   parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
 
-  gst_element_install_std_props (
+  gst_element_class_install_std_props (
          GST_ELEMENT_CLASS (klass),
          "location", ARG_LOCATION, G_PARAM_READWRITE,
          NULL);
@@ -222,7 +222,8 @@ gst_disksink_open_file (GstDiskSink *sink)
   /* open the file */
   if (!gst_disksink_getcurrentfilename(sink))
   {
-    gst_element_error(GST_ELEMENT(sink), "Out of files");
+    /* Out of files */
+    gst_element_set_eos(GST_ELEMENT(sink));
     return FALSE;
   }
   sink->file = fopen (gst_disksink_getcurrentfilename(sink), "w");
@@ -304,7 +305,7 @@ gst_disksink_handle_event (GstPad *pad, GstEvent *event)
           gst_disksink_getcurrentfilename(disksink), sys_errlist[errno]);
       break;
     default:
-      g_warning("Unhandled event %d\n", type);
+      gst_pad_event_default (pad, event);
       break;
   }
 
@@ -340,16 +341,11 @@ gst_disksink_chain (GstPad *pad, GstBuffer *buf)
   {
     if ((disksink->data_written + GST_BUFFER_SIZE(buf))/(1024*1024) > disksink->maxfilesize)
     {
-      GstEvent *event;
-      event = gst_event_new(GST_EVENT_NEW_MEDIA);
-      gst_pad_send_event(pad, event);
-
-      /* if the event wasn't handled, we probably need to open a new file ourselves */
-      if ((disksink->data_written + GST_BUFFER_SIZE(buf))/(1024*1024) > disksink->maxfilesize)
+      if (GST_ELEMENT_IS_EVENT_AWARE(GST_ELEMENT(disksink)))
       {
-        gst_disksink_close_file(disksink);
-        disksink->filenum++;
-        if (!gst_disksink_open_file(disksink)) return;
+        GstEvent *event;
+        event = gst_event_new(GST_EVENT_NEW_MEDIA);
+        gst_pad_send_event(pad, event);
       }
     }
   }
@@ -364,6 +360,7 @@ gst_disksink_chain (GstPad *pad, GstBuffer *buf)
     }
   }
   disksink->data_written += GST_BUFFER_SIZE(buf);
+
   gst_buffer_unref (buf);
 
   g_signal_emit (G_OBJECT (disksink), gst_disksink_signals[SIGNAL_HANDOFF], 0,