[Mplayer-cvslog] CVS: main/libmpdemux demux_gif.c,1.3,1.4
Alex Beregszaszi
alex at mplayerhq.hu
Wed Feb 19 17:55:26 CET 2003
Update of /cvsroot/mplayer/main/libmpdemux
In directory mail:/var/tmp.root/cvs-serv3401/libmpdemux
Modified Files:
demux_gif.c
Log Message:
gif library incompatibility fixes and prefere libungif over libgif. Patch by Joey Parrish <joey at nicewarrior.org>
Index: demux_gif.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/demux_gif.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- demux_gif.c 8 Feb 2003 17:29:43 -0000 1.3
+++ demux_gif.c 19 Feb 2003 16:55:14 -0000 1.4
@@ -24,9 +24,12 @@
#define GIF_SIGNATURE (('G' << 16) | ('I' << 8) | 'F')
+#ifndef HAVE_GIF_TVT_HACK
+// not supported by certain versions of the library
int my_read_gif(GifFileType *gif, uint8_t *buf, int len) {
return stream_read(gif->UserData, buf, len);
}
+#endif
int gif_check_file(demuxer_t *demuxer)
{
@@ -156,7 +159,17 @@
// go back to the beginning
stream_seek(demuxer->stream,demuxer->stream->start_pos);
+#ifdef HAVE_GIF_TVT_HACK
+ // without the TVT functionality of libungif, a hard seek must be
+ // done to the beginning of the file. this is because libgif is
+ // unable to use mplayer's cache, and without this lseek libgif will
+ // not read from the beginning of the file and the command will fail.
+ // with this hack enabled, you will lose the ability to stream a GIF.
+ lseek(demuxer->stream->fd, 0, SEEK_SET);
+ gif = DGifOpenFileHandle(demuxer->stream->fd);
+#else
gif = DGifOpen(demuxer->stream, my_read_gif);
+#endif
if (!gif) {
PrintGifError();
return NULL;
More information about the MPlayer-cvslog
mailing list