From d05c7a67c8d4a3f94d32af670be8e29e79c4657d Mon Sep 17 00:00:00 2001 From: "Kwabena W. Agyeman" Date: Fri, 27 Oct 2023 12:37:03 -0700 Subject: [PATCH] modules/tv: Fix image corruption when specifying image rect. --- src/omv/modules/py_tv.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/omv/modules/py_tv.c b/src/omv/modules/py_tv.c index deb340171..1ea04a527 100644 --- a/src/omv/modules/py_tv.c +++ b/src/omv/modules/py_tv.c @@ -565,11 +565,13 @@ static void spi_tv_draw_image_cb_convert_rgb565(uint16_t *row_pointer_i, uint8_t } static void spi_tv_draw_image_cb_grayscale(int x_start, int x_end, int y_row, imlib_draw_row_data_t *data) { + memset(((uint8_t *) data->dst_row_override) + x_end, 0, TV_WIDTH - x_end); // clear trailing bytes. spi_tv_draw_image_cb_convert_grayscale((uint8_t *) data->dst_row_override, (uint8_t *) data->dst_row_override); SpiTransmitReceivePacket(data->dst_row_override, NULL, PICLINE_LENGTH_BYTES, false); } static void spi_tv_draw_image_cb_rgb565(int x_start, int x_end, int y_row, imlib_draw_row_data_t *data) { + memset(data->dst_row_override, 0, x_start * sizeof(uint16_t)); // clear leading bytes. spi_tv_draw_image_cb_convert_rgb565((uint16_t *) data->dst_row_override, (uint8_t *) data->dst_row_override); SpiTransmitReceivePacket(data->dst_row_override, NULL, PICLINE_LENGTH_BYTES, false); }