summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Verkamp <daniel@drv.nu>2009-02-09 08:11:08 +0000
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>2009-02-09 08:11:08 +0000
commitc33030bd7b81f7ef7d7ff9da9bfa1a3b4bfbafa1 (patch)
tree2582aa5aef844477f6c9e56aae091ff7e5ba454f
parent505aa6c91d91b6592f04bc77ab82bb718be26ec5 (diff)
remove dead netscape loop header code in gif encoder, patch by Daniel Verkamp, daniel at drv dot nu
Originally committed as revision 17094 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/gif.c40
1 files changed, 2 insertions, 38 deletions
diff --git a/libavcodec/gif.c b/libavcodec/gif.c
index 08d50deedc..0a84d2ab4c 100644
--- a/libavcodec/gif.c
+++ b/libavcodec/gif.c
@@ -53,10 +53,6 @@
/* bitstream minipacket size */
#define GIF_CHUNKS 100
-/* slows down the decoding (and some browsers don't like it) */
-/* update on the 'some browsers don't like it issue from above: this was probably due to missing 'Data Sub-block Terminator' (byte 19) in the app_header */
-#define GIF_ADD_APP_HEADER // required to enable looping of animated gif
-
typedef struct {
unsigned char r;
unsigned char g;
@@ -111,7 +107,7 @@ static const rgb_triplet gif_clut[216] = {
/* GIF header */
static int gif_image_write_header(uint8_t **bytestream,
- int width, int height, int loop_count,
+ int width, int height,
uint32_t *palette)
{
int i;
@@ -138,38 +134,6 @@ static int gif_image_write_header(uint8_t **bytestream,
}
}
- /* update: this is the 'NETSCAPE EXTENSION' that allows for looped animated gif
- see http://members.aol.com/royalef/gifabout.htm#net-extension
-
- byte 1 : 33 (hex 0x21) GIF Extension code
- byte 2 : 255 (hex 0xFF) Application Extension Label
- byte 3 : 11 (hex (0x0B) Length of Application Block
- (eleven bytes of data to follow)
- bytes 4 to 11 : "NETSCAPE"
- bytes 12 to 14 : "2.0"
- byte 15 : 3 (hex 0x03) Length of Data Sub-Block
- (three bytes of data to follow)
- byte 16 : 1 (hex 0x01)
- bytes 17 to 18 : 0 to 65535, an unsigned integer in
- lo-hi byte format. This indicate the
- number of iterations the loop should
- be executed.
- bytes 19 : 0 (hex 0x00) a Data Sub-block Terminator
- */
-
- /* application extension header */
-#ifdef GIF_ADD_APP_HEADER
- if (loop_count >= 0 && loop_count <= 65535) {
- bytestream_put_byte(bytestream, 0x21);
- bytestream_put_byte(bytestream, 0xff);
- bytestream_put_byte(bytestream, 0x0b);
- bytestream_put_buffer(bytestream, "NETSCAPE2.0", 11); // bytes 4 to 14
- bytestream_put_byte(bytestream, 0x03); // byte 15
- bytestream_put_byte(bytestream, 0x01); // byte 16
- bytestream_put_le16(bytestream, (uint16_t)loop_count);
- bytestream_put_byte(bytestream, 0x00); // byte 19
- }
-#endif
return 0;
}
@@ -270,7 +234,7 @@ static int gif_encode_frame(AVCodecContext *avctx, unsigned char *outbuf, int bu
*p = *pict;
p->pict_type = FF_I_TYPE;
p->key_frame = 1;
- gif_image_write_header(&outbuf_ptr, avctx->width, avctx->height, -1, (uint32_t *)pict->data[1]);
+ gif_image_write_header(&outbuf_ptr, avctx->width, avctx->height, (uint32_t *)pict->data[1]);
gif_image_write_image(&outbuf_ptr, 0, 0, avctx->width, avctx->height, pict->data[0], pict->linesize[0], PIX_FMT_PAL8);
return outbuf_ptr - outbuf;
}