rtpbuffer: Fix gst_rtp_buffer_ext_timestamp() with clang 5 on iOS/ARM
authorSebastian Dröge <sebastian@centricular.com>
Wed, 13 Nov 2013 19:12:48 +0000 (20:12 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Wed, 13 Nov 2013 19:15:02 +0000 (20:15 +0100)
The bitwise NOT operator is not defined on signed integers.
Thanks to Wim Taymans for finding the cause.

https://bugzilla.gnome.org/show_bug.cgi?id=711819

gst-libs/gst/rtp/gstrtpbuffer.c

index 7c32d35..a2379da 100644 (file)
@@ -1243,7 +1243,7 @@ gst_rtp_buffer_ext_timestamp (guint64 * exttimestamp, guint32 timestamp)
     result = timestamp;
   } else {
     /* pick wraparound counter from previous timestamp and add to new timestamp */
-    result = timestamp + (ext & ~(G_GINT64_CONSTANT (0xffffffff)));
+    result = timestamp + (ext & ~(G_GUINT64_CONSTANT (0xffffffff)));
 
     /* check for timestamp wraparound */
     if (result < ext)
@@ -1254,7 +1254,7 @@ gst_rtp_buffer_ext_timestamp (guint64 * exttimestamp, guint32 timestamp)
     if (diff > G_MAXINT32) {
       /* timestamp went backwards more than allowed, we wrap around and get
        * updated extended timestamp. */
-      result += (G_GINT64_CONSTANT (1) << 32);
+      result += (G_GUINT64_CONSTANT (1) << 32);
     }
   }
   *exttimestamp = result;