coolectpads2: port to 0.11
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 28 Oct 2011 09:30:57 +0000 (11:30 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Fri, 28 Oct 2011 09:30:57 +0000 (11:30 +0200)
libs/gst/base/gstcollectpads2.c
libs/gst/base/gstcollectpads2.h

index 7f897f5..c83a646 100644 (file)
@@ -1014,7 +1014,7 @@ gst_collect_pads2_available (GstCollectPads2 * pads)
     }
 
     /* this is the size left of the buffer */
-    size = GST_BUFFER_SIZE (buffer) - pdata->pos;
+    size = gst_buffer_get_size (buffer) - pdata->pos;
     GST_DEBUG_OBJECT (pads, "pad %p has %d bytes left", pdata, size);
 
     /* need to return the min of all available data */
@@ -1034,50 +1034,6 @@ not_filled:
 }
 
 /**
- * gst_collect_pads2_read:
- * @pads: the collectspads to query
- * @data: the data to use
- * @bytes: a pointer to a byte array
- * @size: the number of bytes to read
- *
- * Get a pointer in @bytes where @size bytes can be read from the
- * given pad data.
- *
- * This function should be called with @pads STREAM_LOCK held, such as
- * in the callback.
- *
- * Returns: The number of bytes available for consumption in the
- * memory pointed to by @bytes. This can be less than @size and
- * is 0 if the pad is end-of-stream.
- *
- * MT safe.
- *
- * Since: 0.10.36
- */
-guint
-gst_collect_pads2_read (GstCollectPads2 * pads, GstCollectData2 * data,
-    guint8 ** bytes, guint size)
-{
-  guint readsize;
-  GstBuffer *buffer;
-
-  g_return_val_if_fail (pads != NULL, 0);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), 0);
-  g_return_val_if_fail (data != NULL, 0);
-  g_return_val_if_fail (bytes != NULL, 0);
-
-  /* no buffer, must be EOS */
-  if ((buffer = data->buffer) == NULL)
-    return 0;
-
-  readsize = MIN (size, GST_BUFFER_SIZE (buffer) - data->pos);
-
-  *bytes = GST_BUFFER_DATA (buffer) + data->pos;
-
-  return readsize;
-}
-
-/**
  * gst_collect_pads2_flush:
  * @pads: the collectspads to query
  * @data: the data to use
@@ -1100,6 +1056,7 @@ gst_collect_pads2_flush (GstCollectPads2 * pads, GstCollectData2 * data,
     guint size)
 {
   guint flushsize;
+  gsize bsize;
   GstBuffer *buffer;
 
   g_return_val_if_fail (pads != NULL, 0);
@@ -1110,12 +1067,14 @@ gst_collect_pads2_flush (GstCollectPads2 * pads, GstCollectData2 * data,
   if ((buffer = data->buffer) == NULL)
     return 0;
 
+  bsize = gst_buffer_get_size (buffer);
+
   /* this is what we can flush at max */
-  flushsize = MIN (size, GST_BUFFER_SIZE (buffer) - data->pos);
+  flushsize = MIN (size, bsize - data->pos);
 
   data->pos += size;
 
-  if (data->pos >= GST_BUFFER_SIZE (buffer))
+  if (data->pos >= bsize)
     /* _clear will also reset data->pos to 0 */
     gst_collect_pads2_clear (pads, data);
 
@@ -1156,9 +1115,10 @@ gst_collect_pads2_read_buffer (GstCollectPads2 * pads, GstCollectData2 * data,
   if ((buffer = data->buffer) == NULL)
     return NULL;
 
-  readsize = MIN (size, GST_BUFFER_SIZE (buffer) - data->pos);
+  readsize = MIN (size, gst_buffer_get_size (buffer) - data->pos);
 
-  return gst_buffer_create_sub (buffer, data->pos, readsize);
+  return gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, data->pos,
+      readsize);
 }
 
 /**
@@ -1188,7 +1148,7 @@ gst_collect_pads2_take_buffer (GstCollectPads2 * pads, GstCollectData2 * data,
   GstBuffer *buffer = gst_collect_pads2_read_buffer (pads, data, size);
 
   if (buffer) {
-    gst_collect_pads2_flush (pads, data, GST_BUFFER_SIZE (buffer));
+    gst_collect_pads2_flush (pads, data, gst_buffer_get_size (buffer));
   }
   return buffer;
 }
@@ -1683,26 +1643,18 @@ gst_collect_pads2_event (GstPad * pad, GstEvent * event)
 
       goto forward_or_eat;
     }
-    case GST_EVENT_NEWSEGMENT:
+    case GST_EVENT_SEGMENT:
     {
-      gint64 start, stop, time;
-      gdouble rate, arate;
-      GstFormat format;
-      gboolean update;
+      GstSegment seg;
       gint cmp_res;
 
       GST_COLLECT_PADS2_STREAM_LOCK (pads);
 
-      gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format,
-          &start, &stop, &time);
-
-      GST_DEBUG_OBJECT (data->pad, "got newsegment, start %" GST_TIME_FORMAT
-          ", stop %" GST_TIME_FORMAT, GST_TIME_ARGS (start),
-          GST_TIME_ARGS (stop));
+      gst_event_copy_segment (event, &seg);
 
-      gst_segment_set_newsegment_full (&data->segment, update, rate, arate,
-          format, start, stop, time);
+      GST_DEBUG_OBJECT (data->pad, "got segment %" GST_SEGMENT_FORMAT, &seg);
 
+      data->segment = seg;
       GST_COLLECT_PADS2_STATE_SET (data, GST_COLLECT_PADS2_STATE_NEW_SEGMENT);
 
       /* default muxing functionality */
@@ -1710,7 +1662,7 @@ gst_collect_pads2_event (GstPad * pad, GstEvent * event)
         goto newsegment_done;
 
       /* default collection can not handle other segment formats than time */
-      if (format != GST_FORMAT_TIME) {
+      if (seg.format != GST_FORMAT_TIME) {
         GST_ERROR_OBJECT (pads, "GstCollectPads2 default collecting "
             "can only handle time segments.");
         goto newsegment_done;
@@ -1724,7 +1676,7 @@ gst_collect_pads2_event (GstPad * pad, GstEvent * event)
       }
 
       /* Check if the waiting state of the pad should change. */
-      cmp_res = pads->compare_func (pads, data, start, pads->earliest_data,
+      cmp_res = pads->compare_func (pads, data, seg.start, pads->earliest_data,
           pads->earliest_time, pads->compare_user_data);
 
       if (cmp_res > 0)
@@ -1852,7 +1804,7 @@ gst_collect_pads2_chain (GstPad * pad, GstBuffer * buffer)
     GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer);
 
     if (GST_CLOCK_TIME_IS_VALID (timestamp))
-      gst_segment_set_last_stop (&data->segment, GST_FORMAT_TIME, timestamp);
+      data->segment.position = timestamp;
   }
 
   /* While we have data queued on this pad try to collect stuff */
index 3003ef4..39ef603 100644 (file)
@@ -367,8 +367,6 @@ GstBuffer*  gst_collect_pads2_pop           (GstCollectPads2 *pads, GstCollectData2 *data)
 
 /* get collected bytes */
 guint          gst_collect_pads2_available     (GstCollectPads2 *pads);
-guint          gst_collect_pads2_read          (GstCollectPads2 *pads, GstCollectData2 *data,
-                                                guint8 **bytes, guint size);
 guint          gst_collect_pads2_flush         (GstCollectPads2 *pads, GstCollectData2 *data,
                                                 guint size);
 GstBuffer*     gst_collect_pads2_read_buffer   (GstCollectPads2 * pads, GstCollectData2 * data,