feat(decoder): add a name field to decoder to facilitate debugging (#6037)

This commit is contained in:
Benign X
2024-04-09 17:31:07 +08:00
committed by GitHub
parent 4d0c029827
commit 500e16e968
10 changed files with 50 additions and 0 deletions
+15
View File
@@ -277,6 +277,9 @@ static lv_image_decoder_t * image_decoder_get_info(const void * src, lv_image_he
if(img_dsc->data == NULL) return NULL;
}
if(src_type == LV_IMAGE_SRC_FILE) LV_LOG_INFO("Try to find decoder for %s", (const char *)src);
else LV_LOG_INFO("Try to find decoder for %p", src);
lv_image_decoder_t * decoder;
bool is_header_cache_enabled = lv_image_header_cache_is_enabled();
@@ -292,14 +295,21 @@ static lv_image_decoder_t * image_decoder_get_info(const void * src, lv_image_he
*header = cached_data->header;
decoder = cached_data->decoder;
lv_cache_release(img_header_cache_p, entry, NULL);
LV_LOG_INFO("Found decoder %s in header cache", decoder->name);
return decoder;
}
}
/*Search the decoders*/
lv_image_decoder_t * decoder_prev = NULL;
_LV_LL_READ(img_decoder_ll_p, decoder) {
/*Info and Open callbacks are required*/
if(decoder->info_cb && decoder->open_cb) {
lv_result_t res = decoder->info_cb(decoder, src, header);
if(decoder_prev) LV_LOG_INFO("Can't open image with decoder %s. Trying next decoder.", decoder_prev->name);
if(res == LV_RESULT_OK) {
if(header->stride == 0) {
LV_LOG_INFO("Image decoder didn't set stride. Calculate it from width.");
@@ -307,9 +317,14 @@ static lv_image_decoder_t * image_decoder_get_info(const void * src, lv_image_he
}
break;
}
decoder_prev = decoder;
}
}
if(decoder == NULL) LV_LOG_INFO("No decoder found");
else LV_LOG_INFO("Found decoder %s", decoder->name);
if(is_header_cache_enabled && src_type == LV_IMAGE_SRC_FILE && decoder) {
lv_cache_entry_t * entry;
lv_image_header_cache_data_t search_key;
+2
View File
@@ -109,6 +109,8 @@ struct _lv_image_decoder_t {
lv_image_decoder_get_area_cb_t get_area_cb;
lv_image_decoder_close_f_t close_cb;
const char * name;
void * user_data;
};
+4
View File
@@ -19,6 +19,8 @@
* DEFINES
*********************/
#define DECODER_NAME "VG_LITE"
/* VG_LITE_INDEX1, 2, and 4 require endian flipping + bit flipping,
* so for simplicity, they are uniformly converted to I8 for display.
*/
@@ -65,6 +67,8 @@ void lv_vg_lite_decoder_init(void)
lv_image_decoder_set_info_cb(decoder, decoder_info);
lv_image_decoder_set_open_cb(decoder, decoder_open);
lv_image_decoder_set_close_cb(decoder, decoder_close);
decoder->name = DECODER_NAME;
}
void lv_vg_lite_decoder_deinit(void)
+4
View File
@@ -25,6 +25,8 @@
* DEFINES
*********************/
#define DECODER_NAME "BIN"
/**********************
* TYPEDEFS
**********************/
@@ -101,6 +103,8 @@ void lv_bin_decoder_init(void)
lv_image_decoder_set_open_cb(decoder, lv_bin_decoder_open);
lv_image_decoder_set_get_area_cb(decoder, lv_bin_decoder_get_area);
lv_image_decoder_set_close_cb(decoder, lv_bin_decoder_close);
decoder->name = DECODER_NAME;
}
lv_result_t lv_bin_decoder_info(lv_image_decoder_t * decoder, const void * src, lv_image_header_t * header)
+4
View File
@@ -15,6 +15,8 @@
* DEFINES
*********************/
#define DECODER_NAME "BMP"
/**********************
* TYPEDEFS
**********************/
@@ -57,6 +59,8 @@ void lv_bmp_init(void)
lv_image_decoder_set_open_cb(dec, decoder_open);
lv_image_decoder_set_get_area_cb(dec, decoder_get_area);
lv_image_decoder_set_close_cb(dec, decoder_close);
dec->name = DECODER_NAME;
}
void lv_bmp_deinit(void)
+5
View File
@@ -19,6 +19,9 @@
/*********************
* DEFINES
*********************/
#define DECODER_NAME "FFMPEG"
#if LV_COLOR_DEPTH == 8
#define AV_PIX_FMT_TRUE_COLOR AV_PIX_FMT_RGB8
#elif LV_COLOR_DEPTH == 16
@@ -113,6 +116,8 @@ void lv_ffmpeg_init(void)
lv_image_decoder_set_open_cb(dec, decoder_open);
lv_image_decoder_set_close_cb(dec, decoder_close);
dec->name = DECODER_NAME;
#if LV_FFMPEG_AV_DUMP_FORMAT == 0
av_log_set_level(AV_LOG_QUIET);
#endif
@@ -18,6 +18,9 @@
/*********************
* DEFINES
*********************/
#define DECODER_NAME "JPEG_TURBO"
#define JPEG_PIXEL_SIZE 3 /* RGB888 */
#define JPEG_SIGNATURE 0xFFD8FF
#define IS_JPEG_SIGNATURE(x) (((x) & 0x00FFFFFF) == JPEG_SIGNATURE)
@@ -72,6 +75,8 @@ void lv_libjpeg_turbo_init(void)
lv_image_decoder_set_info_cb(dec, decoder_info);
lv_image_decoder_set_open_cb(dec, decoder_open);
lv_image_decoder_set_close_cb(dec, decoder_close);
dec->name = DECODER_NAME;
}
void lv_libjpeg_turbo_deinit(void)
+4
View File
@@ -17,6 +17,8 @@
* DEFINES
*********************/
#define DECODER_NAME "PNG"
/**********************
* TYPEDEFS
**********************/
@@ -50,6 +52,8 @@ void lv_libpng_init(void)
lv_image_decoder_set_info_cb(dec, decoder_info);
lv_image_decoder_set_open_cb(dec, decoder_open);
lv_image_decoder_set_close_cb(dec, decoder_close);
dec->name = DECODER_NAME;
}
void lv_libpng_deinit(void)
+2
View File
@@ -17,6 +17,8 @@
* DEFINES
*********************/
#define DECODER_NAME "LODEPNG"
/**********************
* TYPEDEFS
**********************/
+5
View File
@@ -18,6 +18,9 @@
/*********************
* DEFINES
*********************/
#define DECODER_NAME "TJPGD"
#define TJPGD_WORKBUFF_SIZE 4096 //Recommended by TJPGD library
/**********************
@@ -55,6 +58,8 @@ void lv_tjpgd_init(void)
lv_image_decoder_set_open_cb(dec, decoder_open);
lv_image_decoder_set_get_area_cb(dec, decoder_get_area);
lv_image_decoder_set_close_cb(dec, decoder_close);
dec->name = DECODER_NAME;
}
void lv_tjpgd_deinit(void)