ctx->q_data[V4L2_M2M_SRC].height = 720;
        size = 1280 * 720 * ctx->q_data[V4L2_M2M_SRC].info->sizeimage_mult /
                ctx->q_data[V4L2_M2M_SRC].info->sizeimage_div;
-       ctx->q_data[V4L2_M2M_SRC].sizeimage = size;
+       if (ctx->is_enc)
+               ctx->q_data[V4L2_M2M_SRC].sizeimage = size;
+       else
+               ctx->q_data[V4L2_M2M_SRC].sizeimage =
+                       size + sizeof(struct fwht_cframe_hdr);
        ctx->q_data[V4L2_M2M_DST] = ctx->q_data[V4L2_M2M_SRC];
        ctx->q_data[V4L2_M2M_DST].info =
                ctx->is_enc ? &pixfmt_fwht : v4l2_fwht_get_pixfmt(0);
        size = 1280 * 720 * ctx->q_data[V4L2_M2M_DST].info->sizeimage_mult /
                ctx->q_data[V4L2_M2M_DST].info->sizeimage_div;
-       ctx->q_data[V4L2_M2M_DST].sizeimage = size;
+       if (ctx->is_enc)
+               ctx->q_data[V4L2_M2M_DST].sizeimage =
+                       size + sizeof(struct fwht_cframe_hdr);
+       else
+               ctx->q_data[V4L2_M2M_DST].sizeimage = size;
        ctx->state.colorspace = V4L2_COLORSPACE_REC709;
 
-       size += sizeof(struct fwht_cframe_hdr);
        if (ctx->is_enc) {
-               ctx->q_data[V4L2_M2M_DST].sizeimage = size;
                ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(dev->enc_dev, ctx,
                                                    &queue_init);
                ctx->lock = &dev->enc_lock;
        } else {
-               ctx->q_data[V4L2_M2M_SRC].sizeimage = size;
                ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(dev->dec_dev, ctx,
                                                    &queue_init);
                ctx->lock = &dev->dec_lock;