diff --git a/libavcodec/y41pdec.c b/libavcodec/y41pdec.c
index 9d1e5313e31e491268ce00fde194243143d45807..22c7d1fd382539a938c69fa26887710a10545aa2 100644
--- a/libavcodec/y41pdec.c
+++ b/libavcodec/y41pdec.c
@@ -43,7 +43,7 @@ static int y41p_decode_frame(AVCodecContext *avctx, void *data,
     uint8_t *y, *u, *v;
     int i, j, ret;
 
-    if (avpkt->size < 1.5 * avctx->height * avctx->width) {
+    if (avpkt->size < 3LL * avctx->height * avctx->width / 2) {
         av_log(avctx, AV_LOG_ERROR, "Insufficient input data.\n");
         return AVERROR(EINVAL);
     }