On Sat, Jan 13, 2007 at 06:59:26AM +0100, Diego Biurrun wrote:
On Fri, Feb 03, 2006 at 04:55:34PM -0500, John Koleszar wrote:
Attached patch adds support for several animated gif features that either weren't supported by or outright crashed mplayer, including variable frame sizes, interlacing, transparency, and some alternative frame update methods. Also fixed a bug extracting timestamps, which was probably introduced by a change in giflib, since the code in question dates back to rev 1.1.
--- libmpdemux/demux_gif.c 5 Aug 2005 19:57:46 -0000 1.5 +++ libmpdemux/demux_gif.c 3 Feb 2006 20:50:45 -0000 @@ -70,8 +86,13 @@ } if (code == 0xF9) { int frametime = 0; if (p[0] == 4) // is the length correct? - frametime = (p[1] << 8) | p[2]; // set the time, centiseconds + frametime = (p[3] << 8) | p[2]; // set the time, centiseconds
This is the frametime fix, compare
http://www.onicos.com/staff/iz/formats/gif.html#gceb
to see that if p[0] is block size p[3] and p[2], not p[1] and p[2] must be the delay time.
This hunk committed, it fixes several of the samples above.
Here is the rest of the patch, updated for Subversion HEAD, plus a few cosmetical fixes. Diego