[arch-commits] Commit in mplayer2/trunk (3 files)
Bartłomiej Piotrowski
bpiotrowski at nymeria.archlinux.org
Wed Jul 31 12:35:14 UTC 2013
Date: Wednesday, July 31, 2013 @ 14:35:13
Author: bpiotrowski
Revision: 94857
upgpkg: mplayer2 20130428-4
- re-enable gif support
Added:
mplayer2/trunk/giflib-5.0.patch
Modified:
mplayer2/trunk/PKGBUILD
Deleted:
mplayer2/trunk/0001-demux_gif-declare-missing-PrintGifError.patch
----------------------------------------------------+
0001-demux_gif-declare-missing-PrintGifError.patch | 34 -----
PKGBUILD | 11 +
giflib-5.0.patch | 111 +++++++++++++++++++
3 files changed, 117 insertions(+), 39 deletions(-)
Deleted: 0001-demux_gif-declare-missing-PrintGifError.patch
===================================================================
--- 0001-demux_gif-declare-missing-PrintGifError.patch 2013-07-31 10:33:01 UTC (rev 94856)
+++ 0001-demux_gif-declare-missing-PrintGifError.patch 2013-07-31 12:35:13 UTC (rev 94857)
@@ -1,34 +0,0 @@
-From 5194f95d39ffbb0a4a7b027d8f1b084436feb22c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bart=C5=82omiej=20Piotrowski?= <b at bpiotrowski.pl>
-Date: Sun, 14 Jul 2013 10:51:11 +0200
-Subject: [PATCH] demux_gif: declare missing PrintGifError
-
-Apparently it has been removed from newer Giflib releases.
----
- libmpdemux/demux_gif.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/libmpdemux/demux_gif.c b/libmpdemux/demux_gif.c
-index eee7a85..3d761c0 100644
---- a/libmpdemux/demux_gif.c
-+++ b/libmpdemux/demux_gif.c
-@@ -44,6 +44,16 @@ typedef struct {
-
- #define GIF_SIGNATURE (('G' << 16) | ('I' << 8) | 'F')
-
-+static void PrintGifError(void)
-+{
-+ char *Err = GifErrorString();
-+
-+ if (Err != NULL)
-+ fprintf(stderr, "\nGIF-LIB error: %s.\n", Err);
-+ else
-+ fprintf(stderr, "\nGIF-LIB undefined error %d.\n", GifError());
-+}
-+
- #ifndef CONFIG_GIF_TVT_HACK
- // not supported by certain versions of the library
- static int my_read_gif(GifFileType *gif, uint8_t *buf, int len)
---
-1.8.3.2
-
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2013-07-31 10:33:01 UTC (rev 94856)
+++ PKGBUILD 2013-07-31 12:35:13 UTC (rev 94857)
@@ -5,7 +5,7 @@
pkgname=mplayer2
pkgver=20130428
-pkgrel=3
+pkgrel=4
pkgdesc='Advanced general-purpose media player. A fork of the original MPlayer project'
arch=('i686' 'x86_64')
license=('GPL')
@@ -16,16 +16,16 @@
'libcaca' 'libcdio-paranoia' 'libdca' 'libdvdcss' 'libdvdnav' 'libdvdread'
'libgl' 'libjpeg' 'libmad' 'libpulse' 'libquvi' 'libtheora' 'libvdpau'
'libxinerama' 'libxss' 'libxv' 'libxxf86dga' 'libxxf86vm' 'lirc-utils'
- 'mpg123' 'ncurses' 'sdl' 'ttf-dejavu')
+ 'mpg123' 'ncurses' 'sdl' 'ttf-dejavu' 'giflib')
makedepends=('mesa' 'mesa-libgl' 'unzip' 'yasm' 'python' 'python-docutils' 'git')
backup=('etc/mplayer/codecs.conf' 'etc/mplayer/input.conf')
provides=('mplayer')
conflicts=('mplayer')
options=(!emptydirs)
source=(git://git.mplayer2.org/mplayer2.git#commit=6c87a981baa
- 0001-demux_gif-declare-missing-PrintGifError.patch)
+ giflib-5.0.patch)
sha256sums=('SKIP'
- 'f5442289fee5eaf3c86c28cc5cbf2af8e85c6ccfdc9c2a73c71aa22efb7cdf09')
+ '20706ebb35e7c1935ae263c48d623a878db3b634ca575927913f56d9ce059c7a')
pkgver() {
cd $pkgname
@@ -36,7 +36,7 @@
cd $pkgname
sed 's/gmplayer/mplayer/g' -i etc/mplayer.desktop
find -type f -exec sed -e 's/python3/python/' -i {} \;
- patch -Np1 -i ../0001-demux_gif-declare-missing-PrintGifError.patch
+ patch -Np1 -i ../giflib-5.0.patch
}
build() {
@@ -46,6 +46,7 @@
--enable-translation --language=all \
--enable-runtime-cpudetection \
--enable-joystick \
+ --enable-gif \
--disable-speex \
--disable-openal \
--disable-libdv \
Added: giflib-5.0.patch
===================================================================
--- giflib-5.0.patch (rev 0)
+++ giflib-5.0.patch 2013-07-31 12:35:13 UTC (rev 94857)
@@ -0,0 +1,111 @@
+diff --git a/libvo/vo_gif89a.c b/libvo/vo_gif89a.c
+index b808f81..c61d86c 100644
+--- a/libvo/vo_gif89a.c
++++ b/libvo/vo_gif89a.c
+@@ -196,7 +196,11 @@ static int config(uint32_t s_width, uint32_t s_height, uint32_t d_width,
+ mp_msg(MSGT_VO, MSGL_ERR, "GIF89a: Some functionality has been disabled.\n");
+ #endif
+
++#if GIFLIB_MAJOR > 4
++ new_gif = EGifOpenFileName(gif_filename, 0, NULL);
++#else
+ new_gif = EGifOpenFileName(gif_filename, 0);
++#endif
+ if (new_gif == NULL) {
+ mp_msg(MSGT_VO, MSGL_ERR, "GIF89a: error opening file \"%s\" for output.\n", gif_filename);
+ return 1;
+@@ -215,7 +219,11 @@ static int config(uint32_t s_width, uint32_t s_height, uint32_t d_width,
+ return 1;
+ }
+
++#if GIFLIB_MAJOR > 4
++ reduce_cmap = GifMakeMapObject(256, NULL);
++#else
+ reduce_cmap = MakeMapObject(256, NULL);
++#endif
+ if (reduce_cmap == NULL) {
+ free(slice_data); slice_data = NULL;
+ free(reduce_data); reduce_data = NULL;
+@@ -267,7 +275,11 @@ static int gif_reduce(int width, int height, uint8_t *src, uint8_t *dst, GifColo
+ }
+
+ R = Ra; G = Ga; B = Ba;
++#if GIFLIB_MAJOR > 4
++ return GifQuantizeBuffer(width, height, &size, R, G, B, dst, colors);
++#else
+ return QuantizeBuffer(width, height, &size, R, G, B, dst, colors);
++#endif
+ }
+
+ static void flip_page(void)
+@@ -365,8 +377,11 @@ static void uninit(void)
+ free(gif_filename);
+ free(slice_data);
+ free(reduce_data);
++#if GIFLIB_MAJOR > 4
++ if (reduce_cmap != NULL) GifFreeMapObject(reduce_cmap);
++#else
+ if (reduce_cmap != NULL) FreeMapObject(reduce_cmap);
+-
++#endif
+ // set the pointers back to null.
+ new_gif = NULL;
+ gif_filename = NULL;
+
+diff --git a/configure b/configure
+index 95a5ae8..d9c826f 100755
+--- a/configure
++++ b/configure
+@@ -3659,6 +3659,7 @@ if test "$_gif" = auto ; then
+ _gif=no
+ for _ld_gif in "-lungif" "-lgif" ; do
+ statement_check gif_lib.h 'QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0)' $_ld_gif && _gif=yes && break
++ statement_check gif_lib.h 'GifQuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0)' $_ld_gif && _gif=yes && break
+ done
+ fi
+
+diff --git a/libmpdemux/demux_gif.c b/libmpdemux/demux_gif.c
+index eee7a85..a764474 100644
+--- a/libmpdemux/demux_gif.c
++++ b/libmpdemux/demux_gif.c
+@@ -44,6 +44,16 @@ typedef struct {
+
+ #define GIF_SIGNATURE (('G' << 16) | ('I' << 8) | 'F')
+
++static void PrintGifError(errcode)
++{
++ char *Err = GifErrorString(errcode);
++
++ if (Err != NULL)
++ fprintf(stderr, "\nGIF-LIB error: %s.\n", Err);
++ else
++ fprintf(stderr, "\nGIF-LIB undefined error %d.\n", errcode);
++}
++
+ #ifndef CONFIG_GIF_TVT_HACK
+ // not supported by certain versions of the library
+ static int my_read_gif(GifFileType *gif, uint8_t *buf, int len)
+@@ -240,6 +250,7 @@ static demuxer_t* demux_open_gif(demuxer_t* demuxer)
+ gif_priv_t *priv = calloc(1, sizeof(gif_priv_t));
+ sh_video_t *sh_video = NULL;
+ GifFileType *gif = NULL;
++ int GifError;
+
+ priv->current_pts = 0;
+ demuxer->seekable = 0; // FIXME
+@@ -254,12 +265,12 @@ static demuxer_t* demux_open_gif(demuxer_t* demuxer)
+ // 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);
++ gif = DGifOpenFileHandle(demuxer->stream->fd, &GifError);
+ #else
+- gif = DGifOpen(demuxer->stream, my_read_gif);
++ gif = DGifOpen(demuxer->stream, my_read_gif, &GifError);
+ #endif
+ if (!gif) {
+- PrintGifError();
++ PrintGifError(GifError);
+ free(priv);
+ return NULL;
+ }
More information about the arch-commits
mailing list