matroska: blindly fix writing variable length negative values
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Fri, 2 May 2014 12:33:02 +0000 (13:33 +0100)
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Fri, 2 May 2014 12:33:02 +0000 (13:33 +0100)
Spotted while fixing something else in the area.

Nothing calls this with a negative value.

gst/matroska/ebml-write.c

index 2c734f0..138f470 100644 (file)
@@ -619,9 +619,9 @@ gst_ebml_write_sint (GstEbmlWrite * ebml, guint32 id, gint64 num)
   if (num >= 0) {
     unum = num;
   } else {
-    unum = ((guint64) 0x80) << (size - 1);
+    unum = ((guint64) 0x80) << ((size - 1) * 8);
     unum += num;
-    unum |= ((guint64) 0x80) << (size - 1);
+    unum |= ((guint64) 0x80) << ((size - 1) * 8);
   }
 
   /* write */