d2phap / d2phap/ImageGlass

gif playback is slower than it should be

Open
#1,998 7 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

🐞 bug 👌🏻 ready
Dominant language
C#
Stars
14.4k
Forks
752
Avg merge
10d 14h
Merged PRs (30d)
1

Description

System information
  • Windows OS version: Windows 11 23H2
  • ImageGlass version: 9.1.8.723
  • ImageGlass release: Classic, portable
To Reproduce

Steps to reproduce the behavior:

  1. Open any gif file that has a fast playback speed (around <100ms per frame)
Actual behavior
  • Playback happens at what seems like a constant frame timing, but is slower than it should be
Expected behavior

The gif should play at the speeds specified in the file

Screenshots / Video / Sample image file

https://github.com/user-attachments/assets/474eaf69-36f6-4b76-b878-ab259a4fd596

This video displays ImageGlass side by side with Aseprite both playing the same gif file (with 20ms/frame timing). I start the playback in aseprite slightly too early, but regardless it takes very few loops for the playback in aseprite to overtake the one in ImageGlass entirely.
Here is the file in question 3000000

Additional context

This effect is very hard to notice with gif files that have longer frames.
Playback also seems to be even slower than usual when the file has a higher resolution.


Edit: I've recently found that this issue also applies to .webp animated pictures. Haven't checked but this may potentially also apply to other animated image formats.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the provided 20ms-per-frame GIF and compare ImageGlass playback with the reference video. Trace the animated-image playback path, including the higher-resolution case and the reported animated WebP case. Done means animations follow the timing specified in the files without becoming slower as resolution increases.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.