From: Ronald S. Bultje Date: Mon, 9 May 2005 15:54:26 +0000 (+0000) Subject: gst/: Handle negative offsets better. Fixes decodebin. X-Git-Tag: RELEASE-0_9_2~506 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5b9c84091d5b4a609812748f144d555ad7ba0265;p=platform%2Fupstream%2Fgstreamer.git gst/: Handle negative offsets better. Fixes decodebin. Original commit message from CVS: * gst/base/gsttypefindhelper.c: (helper_find_peek): * gst/elements/gsttypefindelement.c: (find_peek): Handle negative offsets better. Fixes decodebin. --- diff --git a/ChangeLog b/ChangeLog index b284660..7ad1b03 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-05-09 Ronald S. Bultje + + * gst/base/gsttypefindhelper.c: (helper_find_peek): + * gst/elements/gsttypefindelement.c: (find_peek): + Handle negative offsets better. Fixes decodebin. + 2005-05-09 Wim Taymans * gst/base/gstbasetransform.c: (gst_base_transform_proxy_getcaps), diff --git a/gst/base/gsttypefindhelper.c b/gst/base/gsttypefindhelper.c index f080539..ecb6f9d 100644 --- a/gst/base/gsttypefindhelper.c +++ b/gst/base/gsttypefindhelper.c @@ -57,7 +57,7 @@ helper_find_peek (gpointer data, gint64 offset, guint size) src = find->src; if (offset < 0) { - if (find->size == -1) + if (find->size == -1 || find->size < -offset) return NULL; offset += find->size; diff --git a/gst/elements/gsttypefindelement.c b/gst/elements/gsttypefindelement.c index 5aeece8..7d424a2 100644 --- a/gst/elements/gsttypefindelement.c +++ b/gst/elements/gsttypefindelement.c @@ -572,7 +572,7 @@ find_peek (gpointer data, gint64 offset, guint size) /* FIXME: can we do this easily without querying length? */ guint64 length = find_element_get_length (data); - if (length == 0) { + if (length < -offset) { buf = NULL; } else { buf = diff --git a/libs/gst/base/gsttypefindhelper.c b/libs/gst/base/gsttypefindhelper.c index f080539..ecb6f9d 100644 --- a/libs/gst/base/gsttypefindhelper.c +++ b/libs/gst/base/gsttypefindhelper.c @@ -57,7 +57,7 @@ helper_find_peek (gpointer data, gint64 offset, guint size) src = find->src; if (offset < 0) { - if (find->size == -1) + if (find->size == -1 || find->size < -offset) return NULL; offset += find->size; diff --git a/plugins/elements/gsttypefindelement.c b/plugins/elements/gsttypefindelement.c index 5aeece8..7d424a2 100644 --- a/plugins/elements/gsttypefindelement.c +++ b/plugins/elements/gsttypefindelement.c @@ -572,7 +572,7 @@ find_peek (gpointer data, gint64 offset, guint size) /* FIXME: can we do this easily without querying length? */ guint64 length = find_element_get_length (data); - if (length == 0) { + if (length < -offset) { buf = NULL; } else { buf =