summaryrefslogtreecommitdiffstats
path: root/giflib-4.1.6/TODO
diff options
context:
space:
mode:
authorUpstream <upstream-import@none>1970-01-12 13:46:40 +0000
committerUpstream <upstream-import@none>1970-01-12 13:46:40 +0000
commit1bc4596b116b3c829824c8b929ce48f864ca4a3c (patch)
tree332339626bc83390de46cf38346f76effc46009b /giflib-4.1.6/TODO
downloadandroid_external_giflib-1bc4596b116b3c829824c8b929ce48f864ca4a3c.tar.gz
android_external_giflib-1bc4596b116b3c829824c8b929ce48f864ca4a3c.tar.bz2
android_external_giflib-1bc4596b116b3c829824c8b929ce48f864ca4a3c.zip
external/giflib 4.1.6
Diffstat (limited to 'giflib-4.1.6/TODO')
-rw-r--r--giflib-4.1.6/TODO140
1 files changed, 140 insertions, 0 deletions
diff --git a/giflib-4.1.6/TODO b/giflib-4.1.6/TODO
new file mode 100644
index 0000000..780739c
--- /dev/null
+++ b/giflib-4.1.6/TODO
@@ -0,0 +1,140 @@
+Edit utils to get rid of use of all deprecated Functions.
+- icon2gif has MakeExtension
+
+Check how the library uses MakeExtension and AddExtensionBlock. I have the
+vague impression that the library currently requires a two step process:
+MakeExtension adds the Function type to deprecated: SavedImage->Function.
+Then, AddExtensionBlock must be called to add it to SavedImage->ExtensionBlock
+(The Function type is passed in via the SavedImage->Function so that's why we
+have to do that step first. Need to untangle those functions.)
+- Why do we have so many colormaps? GifFile->SColorMap is the screen
+ descriptor colormap.
+ GifFile->Image.ColorMap ?
+ GifFile->SavedImages[x].ColorMap = Local colormap
+
+- Also check how we push the Extensions out to a gif file. We should never
+touch SavedImage->Function when we write to file. All information is saved in
+the ExtensionBlock.
+
+EGifPutExtension*/DGifGetExtension* needs to be looked at. Why is there a
+First, Next, Last, and generic version of these functions? Does the
+application programmer really need to know all this? Shouldn't the library
+take care of it? Also, they should use WRITE rather than fwrite directly to
+output the data.
+
+Make sure we set pointers that we don't fill to NULL. (gifalloc.c seems
+pretty clean. But GifFile isn't allocated in gifalloc.c)
+
+I found a reported bug about libungif not handling interlaced images
+correctly. However, the latest library seems to work. Need to figure out
+what change fixed it and if it fixed it correctly or in a manner that is
+apt to break later.
+
+Make sure tmpnam is secure in gifinto.c (Use mkstemp if possible..)
+
+Audit for sprintf => snprintf
+
+# Make sure all malloc calls check their return value.
+Still need to check dev2gif.c (Know there's problems there)
+dgif_lib.c
+egif_lib.c
+
+Merge the windows changes from the last cvs version. Contact Lennie Araki
+about whether he is interested in maintaining the windows changes
+
+Run the utils through indent
+
+Make sure the backlog is really all merged and then delete things from there.
+Some is in my mailbox at home. Others were on the old CVS server. I think
+most of the CVS backlog has been merged but I've just started ot look at
+the stuff at home.
+
+Start thinking about function naming and standardizing things. The MakeXXX,
+FreeXXX is a good step, but should things operate on GifFiles or the interior
+data structures? What about the functions in the rest of the library?
+Should I be able to (MakeGifFileType(), FreeGifFileType(GifFile *) just like
+MakeMapObject?)
+
+Start thinking about namespacing all our code! This will break so many things
+in simple ways. Need to deprecate so we can do this in 5.0
+
+Release 4.1.3
+
+sync giflib
+
+=======
+
+Theoretical release 5.0
+
+Move utilities into a separate package.
+ - Move GIF_ERROR and GIF_MESSAGE from gif_lib.h into getarg.
+ - Move qprintf into getarg
+ - Rename getarg utilsupport.a and move to the util directory.
+
+Now that we have sourceforge hosting, look into putting documentation and a
+website onto sourceforge. Don't know how much stuff I want to sync into this,
+though, as I keep hoping gif's will take their last gasp and die. (Why do we
+need gif now that we have png and mng?)
+
+======
+
+Besides fixing bugs, what's really needed is for someone to work out how to
+calculate a colormap for writing gifs from rgb sources. Right now, an rgb
+source that has only two colors (b/w) is being converted into an 8 bit gif....
+Which is horrendously wasteful without compression.
+
+Any volunteers?
+
+=======
+The Present Extension code is pretty hacky. It looks like giflib's ability to
+do Extension code was added on at a later time and also was not implemented
+entirely in conformance with the gif89a spec. I've hacked it further to make
+it conform to the spec, but it would benefit greatly from a complete rewrite.
+
+If there is ever a version-5.0 of this library (with API level changes), this
+should definitely be one of the areas that gets worked on.
+
+=======
+Documentation needs updating to reflect additions to the API. This would best
+be done with auto-extraction from the SOURCES....
+
+=======
+[UPDATE at bottom]
+Here's a change to the library code that has been proposed: Pulling known
+extensions (comment blocks, etc) out of the Extensions array and putting them
+in actual places within the GifType structure so application programmers don't
+have to search through the Extension array for them.
+
+I'm not sure how I want to implemement this yet -- Actually removing them from
+the extension array would break the API compatibility with libungif. Making
+copies would waste resources needlessly. Making convenience links with the
+idea of deprecating the access of the extension block directly for standard
+features would be okay, but creates extra work in the long run -- really we
+need to put the convenience links into the current Extension array.
+
+We have to decide where in the structure each extension belongs, generalize
+the AddExtensionBlock function to be able to add the extensionblock to any
+area of the structure, rework the gif writing code to place the structures
+where they belong, rework the code writing to the Extension Array so that it
+can handle links as well as blocks.
+
+And on the other hand, it could turn out that putting extensions into the main
+structure is not intuitive to everyone. Extensions are "extensions" and
+people may want to look for them grouped together.... I suppose this could
+either mean leaving everything in the extension array, or creating a new
+extension field that has the extensions dangling off of it (comment, gifanim
+stuff, unknown, etc.) This is okay except that it'd be best to have real
+copies of the extension in the fields instead of links (so that we could make
+arrays rather than arrays of pointers.)
+
+[UPDATE:1998 3 Dec]
+After reading through the gif89a specification, I'm not sure this is all that
+great. It seems that each image in a gif stream needs to have separate
+extension blocks. This means that an animated gif will have a Graphics
+Extension Block for each Image in the animation. Linking this up to the
+GifFileType is wrong. Making a link in each SaveFile is correct, but will
+take space that won't be needed when that particular extension doesn't appear
+in this file....
+
+Unless someone wants to correct me here, I don't think I'm going to implement
+this.