diff --git a/libavcodec/jpeg2000.h b/libavcodec/jpeg2000.h
index a99c210bc86015d061eb0f735661a5c4da32bbe0..541ea5c8f46333bd9104717b2ec5bbaca7ded03d 100644
--- a/libavcodec/jpeg2000.h
+++ b/libavcodec/jpeg2000.h
@@ -215,7 +215,7 @@ typedef struct Jpeg2000Component {
 /* misc tools */
 static inline int ff_jpeg2000_ceildivpow2(int a, int b)
 {
-    return -((-a) >> b);
+    return -(((int64_t)(-a)) >> b);
 }
 
 static inline int ff_jpeg2000_ceildiv(int a, int b)