From f4f0a51890df19755bf336b08d89ec1097ef7115 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 13 Apr 2003 03:07:07 +0000 Subject: [PATCH] - added macros GST_CLOCK_TIME_IS_VALID and GST_BUFFE_TIMESTAMP_IS_VALID Original commit message from CVS: - added macros GST_CLOCK_TIME_IS_VALID and GST_BUFFE_TIMESTAMP_IS_VALID - use macros in some places - buffer's timestamp field is a GstClockTime, not a guint64 - this is currently the same, but be sure to only use GstClockTime when working with timestamps in the future --- gst/gstbuffer.c | 3 +-- gst/gstbuffer.h | 5 ++++- gst/gstclock.c | 8 ++++---- gst/gstclock.h | 3 ++- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c index 73f8d6a4d8..74de6b234c 100644 --- a/gst/gstbuffer.c +++ b/gst/gstbuffer.c @@ -188,8 +188,7 @@ gst_buffer_new (void) (GstDataFreeFunction) gst_buffer_default_free, (GstDataCopyFunction) gst_buffer_default_copy); - GST_BUFFER_BUFFERPOOL (buf) = NULL; - GST_BUFFER_POOL_PRIVATE (buf) = NULL; + GST_BUFFER_TIMESTAMP (buf) = GST_CLOCK_TIME_NONE; return buf; } diff --git a/gst/gstbuffer.h b/gst/gstbuffer.h index 7d96e89383..5eef605e8b 100644 --- a/gst/gstbuffer.h +++ b/gst/gstbuffer.h @@ -25,6 +25,7 @@ #define __GST_BUFFER_H__ #include +#include G_BEGIN_DECLS @@ -64,6 +65,8 @@ extern GType _gst_buffer_pool_type; #define GST_BUFFER_BUFFERPOOL(buf) (GST_BUFFER(buf)->pool) #define GST_BUFFER_POOL_PRIVATE(buf) (GST_BUFFER(buf)->pool_private) +#define GST_BUFFER_TIMESTAMP_IS_VALID(buffer) (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_TIMESTAMP (buffer))) + typedef enum { GST_BUFFER_READONLY = GST_DATA_READONLY, GST_BUFFER_SUBBUFFER = GST_DATA_FLAG_LAST, @@ -84,7 +87,7 @@ struct _GstBuffer { guint64 maxsize; /* max size of this buffer */ /* timestamp */ - guint64 timestamp; + GstClockTime timestamp; /* media specific offset */ guint64 offset; diff --git a/gst/gstclock.c b/gst/gstclock.c index 21b28c36b6..2b82b7462b 100644 --- a/gst/gstclock.c +++ b/gst/gstclock.c @@ -115,7 +115,7 @@ gst_clock_new_periodic_id (GstClock *clock, GstClockTime start_time, GstClockTime interval) { g_return_val_if_fail (GST_IS_CLOCK (clock), NULL); - g_return_val_if_fail (start_time != GST_CLOCK_TIME_NONE, NULL); + g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (start_time), NULL); g_return_val_if_fail (interval != 0, NULL); return gst_clock_entry_new (clock, @@ -165,7 +165,7 @@ gst_clock_id_wait (GstClockID id, GstClockTimeDiff *jitter) entry = (GstClockEntry *) id; requested = GST_CLOCK_ENTRY_TIME (entry); - if (requested == GST_CLOCK_TIME_NONE) { + if (! GST_CLOCK_TIME_IS_VALID (requested)) { return GST_CLOCK_TIMEOUT; } @@ -227,7 +227,7 @@ gst_clock_id_wait_async (GstClockID id, entry = (GstClockEntry *) id; clock = entry->clock; - if (GST_CLOCK_ENTRY_TIME (entry) == GST_CLOCK_TIME_NONE) { + if (! GST_CLOCK_TIME_IS_VALID (GST_CLOCK_ENTRY_TIME (entry))) { (func) (clock, GST_CLOCK_TIME_NONE, id, user_data); return GST_CLOCK_TIMEOUT; } @@ -601,7 +601,7 @@ gst_clock_handle_discont (GstClock *clock, guint64 time) " %" G_GUINT64_FORMAT " %d", time, clock->start_time, clock->accept_discont); - if (time == GST_CLOCK_TIME_NONE) + if (! GST_CLOCK_TIME_IS_VALID (time)) return TRUE; GST_LOCK (clock); diff --git a/gst/gstclock.h b/gst/gstclock.h index 2788f45536..c66518c766 100644 --- a/gst/gstclock.h +++ b/gst/gstclock.h @@ -39,7 +39,8 @@ typedef guint64 GstClockTime; typedef gint64 GstClockTimeDiff; typedef gpointer GstClockID; -#define GST_CLOCK_TIME_NONE ((guint64)-1) +#define GST_CLOCK_TIME_NONE ((GstClockTime)-1) +#define GST_CLOCK_TIME_IS_VALID(time) ((time) != GST_CLOCK_TIME_NONE) #define GST_SECOND ((guint64) G_USEC_PER_SEC * G_GINT64_CONSTANT (1000)) #define GST_MSECOND ((guint64) GST_SECOND / G_GINT64_CONSTANT (1000))