Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
gdk-pixbuf
gdk-pixbuf
  • Project
    • Project
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 61
    • Issues 61
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 8
    • Merge Requests 8
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Registry
    • Registry
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • GNOME
  • gdk-pixbufgdk-pixbuf
  • Merge Requests
  • !31

Open
Opened Dec 11, 2018 by Robert Ancell@robert.ancell
  • Report abuse
Report abuse

WIP: Decompress GIF frames on demand

This branch solves the memory explosion loading large GIFs as described in #101. This requires !28 (merged) as it relies on the test cases to prove the updated code continues to work.

I ended up implementing a new LZW decoder after I tried the following:

  • Keeping the existing LZW decoder code - it had too much spaghetti to easily relocate it.
  • Use the LZW decoding code from nsgif. It didn't support progressive loading and the more I looked into it the code wasn't of great quality.
Edited Dec 11, 2018 by Robert Ancell

Check out, review, and merge locally

Step 1. Fetch and check out the branch for this merge request

git fetch https://gitlab.gnome.org/robert.ancell/gdk-pixbuf.git decompress-on-demand
git checkout -b robert.ancell/gdk-pixbuf-decompress-on-demand FETCH_HEAD

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git fetch origin
git checkout origin/master
git merge --no-ff robert.ancell/gdk-pixbuf-decompress-on-demand

Step 4. Push the result of the merge to GitLab

git push origin master

Note that pushing to GitLab requires write access to this repository.

Tip: You can also checkout merge requests locally by following these guidelines.

  • Discussion 1
  • Commits 4
  • Pipelines 3
  • Changes 6
Assignee
No assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
2
Labels
1. Bug GIF
Assign labels
  • View project labels
Reference: GNOME/gdk-pixbuf!31