diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 00818b54fb..d096f7204b 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -149,7 +149,8 @@ static void put_ebml_num(ByteIOContext *pb, uint64_t num, int bytes) static void put_ebml_uint(ByteIOContext *pb, unsigned int elementid, uint64_t val) { int i, bytes = 1; - while (bytes < 8 && val >> bytes*8) bytes++; + uint64_t tmp = val; + while (tmp>>=8) bytes++; put_ebml_id(pb, elementid); put_ebml_num(pb, bytes, 0);