From 8ceff30ca9a7e5958355de93c8f2411893de383a Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 13 May 2009 16:20:26 +0200 Subject: [PATCH] adapter: small cleanups --- libs/gst/base/gstadapter.c | 13 +++++++++---- libs/gst/base/gstadapter.h | 3 ++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/libs/gst/base/gstadapter.c b/libs/gst/base/gstadapter.c index 981a2bb057..dcc3bd553f 100644 --- a/libs/gst/base/gstadapter.c +++ b/libs/gst/base/gstadapter.c @@ -210,7 +210,6 @@ gst_adapter_push (GstAdapter * adapter, GstBuffer * buf) GST_LOG_OBJECT (adapter, "discarding empty buffer"); gst_buffer_unref (buf); } else { - adapter->size += size; /* Note: merging buffers at this point is premature. */ @@ -433,6 +432,7 @@ void gst_adapter_flush (GstAdapter * adapter, guint flush) { GstBuffer *cur; + guint size; g_return_if_fail (GST_IS_ADAPTER (adapter)); g_return_if_fail (flush <= adapter->size); @@ -442,14 +442,19 @@ gst_adapter_flush (GstAdapter * adapter, guint flush) adapter->assembled_len = 0; while (flush > 0) { cur = adapter->buflist->data; - if (GST_BUFFER_SIZE (cur) <= flush + adapter->skip) { + size = GST_BUFFER_SIZE (cur) - adapter->skip; + if (size <= flush) { /* can skip whole buffer */ - flush -= GST_BUFFER_SIZE (cur) - adapter->skip; + GST_LOG_OBJECT (adapter, "flushing out head buffer"); + flush -= size; adapter->skip = 0; adapter->buflist = g_slist_delete_link (adapter->buflist, adapter->buflist); - if (G_UNLIKELY (adapter->buflist == NULL)) + + if (G_UNLIKELY (adapter->buflist == NULL)) { + GST_LOG_OBJECT (adapter, "adapter empty now"); adapter->buflist_end = NULL; + } gst_buffer_unref (cur); } else { adapter->skip += flush; diff --git a/libs/gst/base/gstadapter.h b/libs/gst/base/gstadapter.h index 3dc52c0e39..1b34169030 100644 --- a/libs/gst/base/gstadapter.h +++ b/libs/gst/base/gstadapter.h @@ -73,6 +73,8 @@ struct _GstAdapterClass { gpointer _gst_reserved[GST_PADDING]; }; +GType gst_adapter_get_type (void); + GstAdapter * gst_adapter_new (void); void gst_adapter_clear (GstAdapter *adapter); @@ -85,7 +87,6 @@ guint8* gst_adapter_take (GstAdapter *adapter, guint nbytes); GstBuffer* gst_adapter_take_buffer (GstAdapter *adapter, guint nbytes); guint gst_adapter_available (GstAdapter *adapter); guint gst_adapter_available_fast (GstAdapter *adapter); -GType gst_adapter_get_type (void); G_END_DECLS