diff --git a/libavcodec/hqx.c b/libavcodec/hqx.c
index 1e5a0186df4ca0d0e82a127f77654148de442d24..13c74f97e89bfffd19b0d8697c8caae2d29e947c 100644
--- a/libavcodec/hqx.c
+++ b/libavcodec/hqx.c
@@ -182,7 +182,7 @@ static void hqx_idct_put(uint16_t *dst, ptrdiff_t stride,
 
     for (i = 0; i < 8; i++) {
         for (j = 0; j < 8; j++) {
-            int v = av_clip(block[j + i * 8] + 0x800, 0, 0xFFF);
+            int v = av_clip_uintp2(block[j + i * 8] + 0x800, 12);
             dst[j] = (v << 4) | (v >> 8);
         }
         dst += stride >> 1;