From b900a501321361685c992e0b1915f5ed119976ab Mon Sep 17 00:00:00 2001 From: "peter.marcisovsky" Date: Thu, 27 Feb 2025 13:58:12 +0100 Subject: [PATCH] feat(jpeg_decoder): Correctly set JPEG restart interval --- components/esp_driver_jpeg/jpeg_decode.c | 6 ++---- components/esp_driver_jpeg/jpeg_parse_marker.c | 3 +-- components/esp_driver_jpeg/jpeg_private.h | 3 +-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/components/esp_driver_jpeg/jpeg_decode.c b/components/esp_driver_jpeg/jpeg_decode.c index 78e7d2520a..a3a9071518 100644 --- a/components/esp_driver_jpeg/jpeg_decode.c +++ b/components/esp_driver_jpeg/jpeg_decode.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -631,9 +631,7 @@ static esp_err_t jpeg_parse_header_info_to_hw(jpeg_decoder_handle_t decoder_engi dht_func[1][0](hal, header_info->huffbits[1][0], header_info->huffcode[1][0], header_info->tmp_huff); dht_func[1][1](hal, header_info->huffbits[1][1], header_info->huffcode[1][1], header_info->tmp_huff); - if (header_info->dri_marker) { - jpeg_ll_set_restart_interval(hal->dev, header_info->ri); - } + jpeg_ll_set_restart_interval(hal->dev, header_info->ri); return ESP_OK; } diff --git a/components/esp_driver_jpeg/jpeg_parse_marker.c b/components/esp_driver_jpeg/jpeg_parse_marker.c index 0e238a1971..98f78c5fa9 100644 --- a/components/esp_driver_jpeg/jpeg_parse_marker.c +++ b/components/esp_driver_jpeg/jpeg_parse_marker.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -173,7 +173,6 @@ esp_err_t jpeg_parse_dri_marker(jpeg_dec_header_info_t *header_info) return ESP_ERR_INVALID_SIZE; } header_info->ri = jpeg_get_bytes(header_info, 2); - header_info->dri_marker = true; return ESP_OK; } diff --git a/components/esp_driver_jpeg/jpeg_private.h b/components/esp_driver_jpeg/jpeg_private.h index 2c43cdd06f..775a5dd030 100644 --- a/components/esp_driver_jpeg/jpeg_private.h +++ b/components/esp_driver_jpeg/jpeg_private.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -86,7 +86,6 @@ typedef struct { uint8_t huffbits[2][2][JPEG_HUFFMAN_BITS_LEN_TABLE_LEN]; // Huffman bit distribution tables [id][dcac] uint8_t huffcode[2][2][JPEG_HUFFMAN_AC_VALUE_TABLE_LEN]; // Huffman decoded data tables [id][dcac] uint32_t tmp_huff[JPEG_HUFFMAN_AC_VALUE_TABLE_LEN]; // temp buffer to store huffman code - bool dri_marker; // If we have dri marker in table uint16_t ri; // Restart interval } jpeg_dec_header_info_t;