Change theme
Help
Press space for more information.
Show links for this issue (Shortcut: i, l)
Copy issue ID
Previous Issue (Shortcut: k)
Next Issue (Shortcut: j)
Sign in to use full features.
Vote: I am impacted
Notification menu
Refresh (Shortcut: Shift+r)
Go home (Shortcut: u)
Pending code changes (auto-populated)
View issue level access limits(Press Alt + Right arrow for more information)
Attachment actions
Unintended behavior
View staffing
Description
Animated GIF images displayed with the frame delay defined within the GIF , without regard for invalid-ish values, like 0.
AnimatedImageDrawable
always render withChrome, Firefox, macOS and other renderers appear to replace frame delays of less than 1/100th of a second with a default value of 10/100th second.
In the attached example GIF entitled
tumblr_ku2pvuJkJG1qz9qooo1_r1_400.gif
, you can see that the frame delay is set to 0 at byte offset 44 (noted in the hex editor screenshot). The hex editor screenshot compares this with a known good GIF, which shows a value of 10.The offending renders with a frame delay of 0, as specified, by
AnimatedImageDrawable
, whereas other renderers mentioned above render it with a frame delay of 0.1 seconds. This makes the image appear "broken" only on Android.The GIF spec describes the behavior of the Delay Time flag as follows:
In the provided gif, in which the User Input flag is not set, since the Delay Time value is 0 I would expect the decoder to use a default value for frame delay, due to the specs use of "If not 0".