diff --git a/gst/matroska/ebml-write.c b/gst/matroska/ebml-write.c index 2c734f0321..138f470c53 100644 --- a/gst/matroska/ebml-write.c +++ b/gst/matroska/ebml-write.c @@ -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 */