A discont event is the right way to handle seeking on filesink IMO
authorWim Taymans <wim.taymans@gmail.com>
Sat, 8 Jun 2002 15:00:30 +0000 (15:00 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Sat, 8 Jun 2002 15:00:30 +0000 (15:00 +0000)
Original commit message from CVS:
A discont event is the right way to handle seeking on filesink IMO

gst/elements/gstfilesink.c
plugins/elements/gstfilesink.c

index a87e00c..22ec0c0 100644 (file)
@@ -297,6 +297,16 @@ gst_filesink_handle_event (GstPad *pad, GstEvent *event)
           break;
       }
       break;
+    case GST_EVENT_DISCONTINUOUS:
+    {
+      gint64 offset;
+      
+      if (gst_event_discont_get_value (event, GST_FORMAT_BYTES, &offset))
+        fseek(filesink->file, offset, SEEK_SET);
+
+      gst_event_free (event);
+      break;
+    }
     case GST_EVENT_NEW_MEDIA:
       /* we need to open a new file! */
       gst_filesink_close_file(filesink);
index a87e00c..22ec0c0 100644 (file)
@@ -297,6 +297,16 @@ gst_filesink_handle_event (GstPad *pad, GstEvent *event)
           break;
       }
       break;
+    case GST_EVENT_DISCONTINUOUS:
+    {
+      gint64 offset;
+      
+      if (gst_event_discont_get_value (event, GST_FORMAT_BYTES, &offset))
+        fseek(filesink->file, offset, SEEK_SET);
+
+      gst_event_free (event);
+      break;
+    }
     case GST_EVENT_NEW_MEDIA:
       /* we need to open a new file! */
       gst_filesink_close_file(filesink);