--- a/sys/kms/gstkmssink.c 2020-10-26 19:14:46.656235000 +0800 +++ b/sys/kms/gstkmssink.c 2021-12-16 15:35:15.590755066 +0800 @@ -450,6 +450,19 @@ goto bo_failed; fb_id = kmsmem->fb_id; + GST_INFO_OBJECT (self, "size = %d, width = %d, height = %d.", vinfo->size, vinfo->width, vinfo->height); + if (vinfo->size == vinfo->width * vinfo->height * 3 / 2) { + GstMapInfo mapInfo; + if (gst_memory_map((GstMemory *)kmsmem, &mapInfo, GST_MAP_WRITE)) { + guint8 *start = mapInfo.data + vinfo->width * vinfo->height; + guint32 size = vinfo->width * vinfo->height / 2; + GST_INFO_OBJECT (self, "Set buffer to blank."); + memset(start, 128, size); + gst_memory_unmap((GstMemory *)kmsmem, &mapInfo); + } + } + + conn = drmModeGetConnector (self->fd, self->conn_id); if (!conn) goto connector_failed;