mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-23 07:46:36 +08:00
feat(decoder): add a name field to decoder to facilitate debugging (#6037)
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
#define DECODER_NAME "LODEPNG"
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user