ringbuffer: handle border cases in resampler
authorWim Taymans <wim.taymans@collabora.co.uk>
Thu, 11 Jun 2009 17:12:51 +0000 (19:12 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Thu, 11 Jun 2009 17:13:28 +0000 (19:13 +0200)
gst-libs/gst/audio/gstringbuffer.c

index 5aca46f..920a2be 100644 (file)
@@ -1503,7 +1503,7 @@ G_STMT_START {                                    \
       memcpy (d, se, bps);                     \
     se -= bps;                                 \
     *accum += outr;                            \
-    while ((*accum << 1) >= inr) {             \
+    while (d < de && (*accum << 1) >= inr) {   \
       *accum -= inr;                           \
       d += bps;                                        \
     }                                          \
@@ -1521,7 +1521,7 @@ G_STMT_START {                                    \
       memcpy (d, se, bps);                     \
     d += bps;                                  \
     *accum += inr;                             \
-    while ((*accum << 1) >= outr) {            \
+    while (s <= se && (*accum << 1) >= outr) { \
       *accum -= outr;                          \
       se -= bps;                               \
     }                                          \