Why does lv_gif_dec_end_cb_register have no effect?

Registering a callback to this function will not be called

Currently, this callback only applies to non-looping GIF playback scenarios. By default, GIFs are set to loop, meaning they will continue playing the next cycle after one round finishes.

For non-looping scenarios, you need to configure it using void lv_agif_dec_loop(lv_obj_t *img, bool loop, uint32_t interval);.

If you want to support loop scenarios with a callback, it can also be set, but this requires support in the next version.