changeset 22020:a40f222a31df

Hack: use refmode == 1 instead of == 0, as browsers behave like this and buggy files like http://samples.mplayerhq.hu/GIF/broken-gif/CLAIRE.GIF rely on this.
author reimar
date Sun, 28 Jan 2007 10:34:11 +0000
parents f43d02e9b58b
children 71d78117fbf0
files libmpdemux/demux_gif.c
diffstat 1 files changed, 7 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libmpdemux/demux_gif.c	Sun Jan 28 09:53:42 2007 +0000
+++ b/libmpdemux/demux_gif.c	Sun Jan 28 10:34:11 2007 +0000
@@ -101,6 +101,13 @@
         {
           transparency = p[1] & 1;
           refmode = (p[1] >> 2) & 3;
+          // HACK: specification says
+          // > 0 - No disposal specified. The decoder is not required to take any action.
+          // but browsers treat it the same way as
+          // > 1 - Do not dispose. The graphic is to be left in place.
+          // Some broken files rely on this, e.g.
+          // http://samples.mplayerhq.hu/GIF/broken-gif/CLAIRE.GIF
+          if (refmode == 0) refmode = 1;
           frametime = (p[3] << 8) | p[2]; // set the time, centiseconds
           transparent_col = p[4];  
         }