FreeBSD Bugzilla – Attachment 160430 Details for
Bug 202404
[MAINTAINER] multimedia/mplayer2: updates to Makefile
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
v9
mplayer2.diff (text/plain), 17.71 KB, created by
Carlos J Puga Medina
on 2015-08-28 03:14:36 UTC
(
hide
)
Description:
v9
Filename:
MIME Type:
Creator:
Carlos J Puga Medina
Created:
2015-08-28 03:14:36 UTC
Size:
17.71 KB
patch
obsolete
>diff -urN /usr/ports/multimedia/mplayer2.old/Makefile /usr/ports/multimedia/mplayer2/Makefile >--- /usr/ports/multimedia/mplayer2.old/Makefile 2015-08-27 18:59:39.000000000 +0200 >+++ /usr/ports/multimedia/mplayer2/Makefile 2015-08-28 05:08:18.521808000 +0200 >@@ -13,11 +13,11 @@ > > LIB_DEPENDS= libpng.so:${PORTSDIR}/graphics/png \ > libfreetype.so:${PORTSDIR}/print/freetype2 \ >- libdvdread.so:${PORTSDIR}/multimedia/libdvdread >-BUILD_DEPENDS= ffmpeg:${PORTSDIR}/multimedia/ffmpeg \ >- python3:${PORTSDIR}/lang/python3 \ >+ libavcodec.so:${PORTSDIR}/multimedia/ffmpeg >+BUILD_DEPENDS= python3:${PORTSDIR}/lang/python3 \ > rst2man:${PORTSDIR}/textproc/py-docutils >-RUN_DEPENDS= ffmpeg:${PORTSDIR}/multimedia/ffmpeg >+ >+BROKEN_sparc64= Does not compile on sparc64 > > USES= cpe gmake iconv ncurses pkgconfig tar:xz > HAS_CONFIGURE= yes >@@ -40,213 +40,127 @@ > MPLAYER2_SNAPSHOT_DATE= 2013-04-28 > MPLAYER2_PORT_VERSION= 2.0.${MPLAYER2_SNAPSHOT_DATE:S/-//g} > >-OPTIONS_DEFINE= DEBUG RTC IPV6 SMB LIBBLURAY DV THEORA \ >- X11 XINERAMA OPENGL SDL VDPAU GIF CACA \ >- MAD SPEEX CDIO LADSPA REALPLAYER \ >- JACK PULSEAUDIO PORTAUDIO ASS LIRC V4L >+OPTIONS_DEFINE= A52 ASS CACA DEBUG DV DVDREAD DVDNAV GIF IPV6 JACK LADSPA \ >+ LIBBLURAY LIBCDIO LIRC MAD OPENGL PORTAUDIO PULSEAUDIO \ >+ REALPLAYER RTC RTCPU SDL SMB SPEEX THEORA V4L VDPAU X11 XINERAMA > OPTIONS_DEFAULT=X11 ASS >+OPTIONS_SUB= yes > > .if !defined(PACKAGE_BUILDING) >-OPTIONS_DEFINE+= WIN32 >-OPTIONS_DEFAULT+= WIN32 >+OPTIONS_DEFINE_i386+= WIN32 >+OPTIONS_DEFAULT_i386+= WIN32 > .endif > >-RTC_DESC= Enable kernel realtime clock timing > ASS_DESC= Enable ASS/SSA subtitle rendering >-WIN32_DESC= Enable win32 codec set on the IA32 arch >+DVDREAD_DESC= DVD Playback support >+DVDNAV_DESC= DVD menu navigation >+LIBCDIO_DESC= Enable libcdio support > REALPLAYER_DESC=Enable realplayer plugin >+RTC_DESC= Enable kernel realtime clock timing >+RTCPU_DESC= Use runtime CPU detection on supported archs >+WIN32_DESC= Enable win32 codec > > SUB_FILES= pkg-message > > CONFLICTS= mplayer-1.* > >-.include <bsd.port.options.mk> >+A52_LIB_DEPENDS= liba52.so:${PORTSDIR}/audio/liba52 >+A52_CONFIGURE_OFF= --disable-liba52 > >-.if ${ARCH} == "sparc64" >-BROKEN= Does not compile on sparc64 >-.endif >+ASS_LIB_DEPENDS= libass.so:${PORTSDIR}/multimedia/libass >+ASS_CONFIGURE_OFF= --disable-libass > >-WITH_CDROM_DEVICE?= /dev/cd0 >+CACA_LIB_DEPENDS= libcaca.so:${PORTSDIR}/graphics/libcaca >+CACA_CONFIGURE_OFF= --disable-caca > >-#On i386, gcc runs out of general purpose registers when >-#trying to compile a debug version with the default flags. >-.if ${PORT_OPTIONS:MDEBUG} >-.if ${ARCH} == "i386" >-DEBUG_FLAGS= -g -O -fomit-frame-pointer >-.endif >-.else >-.if defined(PACKAGE_BUILDING) >-CONFIGURE_ARGS+= --enable-runtime-cpudetection >-CFLAGS+= -O2 -fomit-frame-pointer >-.else >-CONFIGURE_ENV+= CPPFLAGS= CFLAGS= LDFLAGS= >-.endif >-.endif >+DEBUG_CONFIGURE_ON= --enable-debug=3 >+DEBUG_CONFIGURE_OFF= --disable-debug > >-.if ${PORT_OPTIONS:MIPV6} >-CATEGORIES+= ipv6 >-.else >-CONFIGURE_ARGS+= --disable-inet6 >-.endif >+DV_LIB_DEPENDS= libdv.so:${PORTSDIR}/multimedia/libdv >+DV_CONFIGURE_OFF= --disable-libdv > >-.if ${PORT_OPTIONS:MGIF} >-LIB_DEPENDS+= libgif.so:${PORTSDIR}/graphics/giflib >-.else >-CONFIGURE_ARGS+= --disable-gif >-.endif >+DVDREAD_LIB_DEPENDS= libdvdread.so:${PORTSDIR}/multimedia/libdvdread >+DVDREAD_CONFIGURE_OFF= --disable-dvdread > >-.if ${PORT_OPTIONS:MMAD} >-LIB_DEPENDS+= libmad.so:${PORTSDIR}/audio/libmad >-.else >-CONFIGURE_ARGS+= --disable-mad >-.endif >+DVDNAV_LIB_DEPENDS= libdvdnav.so:${PORTSDIR}/multimedia/libdvdnav >+DVDNAV_CONFIGURE_OFF= --disable-dvdnav > >-.if ${PORT_OPTIONS:MDV} >-LIB_DEPENDS+= libdv.so:${PORTSDIR}/multimedia/libdv >-.else >-CONFIGURE_ARGS+= --disable-libdv >-.endif >+GIF_LIB_DEPENDS= libgif.so:${PORTSDIR}/graphics/giflib >+GIF_CONFIGURE_ON= --enable-gif >+GIF_CONFIGURE_OFF= --disable-gif > >-.if ${PORT_OPTIONS:MTHEORA} >-LIB_DEPENDS+= libtheora.so:${PORTSDIR}/multimedia/libtheora >-.else >-CONFIGURE_ARGS+= --disable-theora >-.endif >+IPV6_CATEGORIES= ipv6 >+IPV6_CONFIGURE_OFF= --disable-inet6 > >-.if ${PORT_OPTIONS:MSPEEX} >-LIB_DEPENDS+= libspeex.so:${PORTSDIR}/audio/speex >-.else >-CONFIGURE_ARGS+= --disable-speex >-.endif >+JACK_LIB_DEPENDS= libjack.so:${PORTSDIR}/audio/jack >+JACK_CONFIGURE_OFF= --disable-jack > >-.if ${PORT_OPTIONS:MJACK} >-LIB_DEPENDS+= libjack.so:${PORTSDIR}/audio/jack >-.else >-CONFIGURE_ARGS+= --disable-jack >-.endif >+LADSPA_RUN_DEPENDS= ${LOCALBASE}/lib/ladspa/amp.so:${PORTSDIR}/audio/ladspa >+LADSPA_CONFIGURE_OFF= --disable-ladspa > >-.if ${PORT_OPTIONS:MPULSEAUDIO} >-LIB_DEPENDS+= libpulse.so:${PORTSDIR}/audio/pulseaudio >-.else >-CONFIGURE_ARGS+= --disable-pulse >-.endif >+LIBBLURAY_LIB_DEPENDS= libbluray.so:${PORTSDIR}/multimedia/libbluray >+LIBBLURAY_CONFIGURE_OFF=--disable-bluray > >-.if ${PORT_OPTIONS:MPORTAUDIO} >-LIB_DEPENDS+= libportaudio.so:${PORTSDIR}/audio/portaudio >-.else >-CONFIGURE_ARGS+= --disable-portaudio >-.endif >+LIBCDIO_LIB_DEPENDS= libcdio_paranoia.so:${PORTSDIR}/sysutils/libcdio-paranoia >+LIBCDIO_CONFIGURE_OFF= --disable-libcdio > >-.if ${PORT_OPTIONS:MLIBBLURAY} >-LIB_DEPENDS+= libbluray.so:${PORTSDIR}/multimedia/libbluray >-.else >-CONFIGURE_ARGS+= --disable-bluray >-.endif >+LIRC_LIB_DEPENDS= liblirc_client.so:${PORTSDIR}/comms/lirc >+LIRC_CONFIGURE_OFF= --disable-lirc > >-.if ${PORT_OPTIONS:MSMB} >-LIB_DEPENDS+= libsmbclient.so:${PORTSDIR}/net/samba-libsmbclient >-.else >-CONFIGURE_ARGS+= --disable-smb >-.endif >+MAD_LIB_DEPENDS= libmad.so:${PORTSDIR}/audio/libmad >+MAD_CONFIGURE_OFF= --disable-mad > >-.if ${PORT_OPTIONS:MCDIO} >-LIB_DEPENDS+= libcdio_paranoia.so:${PORTSDIR}/sysutils/libcdio-paranoia >-.else >-CONFIGURE_ARGS+= --disable-libcdio >-.endif >+OPENGL_USE= GL=gl XORG=glproto >+OPENGL_CONFIGURE_OFF= --disable-gl >+OPENGL_IMPLIES= X11 > >-.if ${PORT_OPTIONS:MLADSPA} >-RUN_DEPENDS+= ${LOCALBASE}/lib/ladspa/amp.so:${PORTSDIR}/audio/ladspa >-.else >-CONFIGURE_ARGS+= --disable-ladspa >-.endif >+PORTAUDIO_LIB_DEPENDS= libportaudio.so:${PORTSDIR}/audio/portaudio >+PORTAUDIO_CONFIGURE_OFF=--disable-portaudio > >-.if ${ARCH} == "i386" || ${ARCH} == "amd64" >-.if ${PORT_OPTIONS:MWIN32} && !defined(PACKAGE_BUILDING) && ${ARCH} == "i386" >-CODEC_PORT= ${PORTSDIR}/multimedia/win32-codecs >-CODEC_DETECTION_FILE!= ${MAKE} -f ${CODEC_PORT}/Makefile -V CODEC_DETECTION_FILE >-RUN_DEPENDS+= ${CODEC_DETECTION_FILE}:${CODEC_PORT} >-CONFIGURE_ARGS+= --codecsdir=${LOCALBASE}/lib/win32 >-.else >-CONFIGURE_ARGS+= --disable-win32dll --disable-qtx >-.endif >-.endif # ARCH == i386/amd64 >+PULSEAUDIO_LIB_DEPENDS= libpulse.so:${PORTSDIR}/audio/pulseaudio >+PULSEAUDIO_CONFIGURE_OFF=--disable-pulse > >-.if ${PORT_OPTIONS:MREALPLAYER} >-RUN_DEPENDS+= realplay:${PORTSDIR}/multimedia/linux-realplayer >-BUILD_DEPENDS+= realplay:${PORTSDIR}/multimedia/linux-realplayer >-.else >-CONFIGURE_ARGS+= --disable-real >-.endif >+REALPLAYER_BUILD_DEPENDS=realplay:${PORTSDIR}/multimedia/linux-realplayer >+REALPLAYER_CONFIGURE_OFF=--disable-real > >-.if ${PORT_OPTIONS:MV4L} >-BUILD_DEPENDS+= ${LOCALBASE}/include/linux/videodev2.h:${PORTSDIR}/multimedia/v4l_compat >-LIB_DEPENDS+= libv4l2.so:${PORTSDIR}/multimedia/libv4l >-LIBS+= -lv4l2 >-.else >-CONFIGURE_ARGS+= --disable-tv-v4l2 >-.endif >+RTC_BUILD_DEPENDS= ${LOCALBASE}/modules/rtc.ko:${PORTSDIR}/emulators/rtc >+RTC_CONFIGURE_OFF= --disable-rtc > >-.if ${PORT_OPTIONS:MASS} >-LIB_DEPENDS+= libass.so:${PORTSDIR}/multimedia/libass >-.else >-CONFIGURE_ARGS+= --disable-libass --disable-enca >-.endif >+RTCPU_CONFIGURE_ON= --enable-runtime-cpudetection >+RTCPU_CONFIGURE_OFF= --disable-runtime-cpudetection > >-.if ${PORT_OPTIONS:MX11} >-USE_XORG= x11 xv xxf86vm >-.if ${PORT_OPTIONS:MOPENGL} >-USE_XORG+= glproto >-LIB_DEPENDS+= libGL.so:${PORTSDIR}/graphics/libGL >-.else >-CONFIGURE_ARGS+= --disable-gl >-.endif >-.if ${PORT_OPTIONS:MXINERAMA} >-USE_XORG+= xinerama xineramaproto >-.else >-CONFIGURE_ARGS+= --disable-xinerama >-.endif >-.else #WITHOUT_X11 >-CONFIGURE_ARGS+= --disable-x11 >-.endif >+SDL_USE= SDL=sdl >+SDL_CONFIGURE_OFF= --disable-sdl > >-.if ${PORT_OPTIONS:MVDPAU} >-LIB_DEPENDS+= libvdpau.so:${PORTSDIR}/multimedia/libvdpau >-.else >-CONFIGURE_ARGS+= --disable-vdpau >-.endif >+SMB_LIB_DEPENDS= libsmbclient.so:${PORTSDIR}/net/samba-libsmbclient >+SMB_CONFIGURE_OFF= --disable-smb > >-.if ${PORT_OPTIONS:MRTC} >-BUILD_DEPENDS+= ${LOCALBASE}/modules/rtc.ko:${PORTSDIR}/emulators/rtc >-RUN_DEPENDS+= ${LOCALBASE}/modules/rtc.ko:${PORTSDIR}/emulators/rtc >-CONFIGURE_ARGS+= --enable-rtc >-.else >-CONFIGURE_ARGS+= --disable-rtc >-.endif >+SPEEX_LIB_DEPENDS= libspeex.so:${PORTSDIR}/audio/speex >+SPEEX_CONFIGURE_OFF= --disable-speex > >-.if ${PORT_OPTIONS:MCACA} >-LIB_DEPENDS+= libcaca.so:${PORTSDIR}/graphics/libcaca >-.else >-CONFIGURE_ARGS+= --disable-caca >-.endif >+THEORA_LIB_DEPENDS= libtheora.so:${PORTSDIR}/multimedia/libtheora >+THEORA_CONFIGURE_OFF= --disable-theora > >-.if ${PORT_OPTIONS:MLIRC} >-LIB_DEPENDS+= liblirc_client.so:${PORTSDIR}/comms/lirc >-.else >-CONFIGURE_ARGS+= --disable-lirc >-.endif >+V4L_BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev2.h:${PORTSDIR}/multimedia/v4l_compat >+V4L_LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l >+V4L_CONFIGURE_OFF= --disable-tv-v4l2 >+V4L_LIBS= -lv4l2 > >-.if ${PORT_OPTIONS:MSDL} >-USE_SDL= sdl >-.else >-CONFIGURE_ARGS+= --disable-sdl >-.endif >+VDPAU_LIB_DEPENDS= libvdpau.so:${PORTSDIR}/multimedia/libvdpau >+VDPAU_CONFIGURE_OFF= --disable-vdpau > >-.if defined(WITH_KERN_HZ) >-DEFAULT_KERN_HZ=${WITH_KERN_HZ} >-.else >-DEFAULT_KERN_HZ=1024 >-.endif >+WIN32_RUN_DEPENDS= win32-codecs>0:${PORTSDIR}/multimedia/win32-codecs >+WIN32_CONFIGURE_ON= --codecsdir=${LOCALBASE}/lib/win32 >+WIN32_CONFIGURE_OFF= --disable-win32dll --disable-qtx >+ >+X11_USE= XORG=x11,xv,xxf86vm >+X11_CONFIGURE_OFF= --disable-x11 >+ >+XINERAMA_USE= XORG=xinerama,xineramaproto >+XINERAMA_CONFIGURE_OFF= --disable-xinerama >+XINERAMA_IMPLIES= X11 >+ >+.include <bsd.port.options.mk> > > pre-everything:: > @${ECHO_MSG} "N - O - T - E" >@@ -256,11 +170,9 @@ > @${ECHO_MSG} "order to learn more about them." > > post-patch: >-.if ${OSVERSION} >= 900010 > @${REINPLACE_CMD} -e \ > '/CFLAGS.*-D_LARGEFILE64_SOURCE/ s/-D_LARGEFILE64_SOURCE/-D_FILE_OFFSET_BITS=64/' \ > ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT} >-.endif > @${REINPLACE_CMD} \ > -e 's|/dev/acd0|${WITH_CDROM_DEVICE}|' \ > -e 's|/usr/local|${LOCALBASE}|' \ >diff -urN /usr/ports/multimedia/mplayer2.old/files/patch-libmpdemux-demux_gif.c /usr/ports/multimedia/mplayer2/files/patch-libmpdemux-demux_gif.c >--- /usr/ports/multimedia/mplayer2.old/files/patch-libmpdemux-demux_gif.c 2015-08-27 18:59:09.000000000 +0200 >+++ /usr/ports/multimedia/mplayer2/files/patch-libmpdemux-demux_gif.c 2015-08-28 04:18:17.357397000 +0200 >@@ -1,19 +1,86 @@ > --- libmpdemux/demux_gif.c.orig 2013-07-09 16:33:16 UTC > +++ libmpdemux/demux_gif.c >-@@ -44,6 +44,16 @@ typedef struct { >+@@ -93,14 +93,14 @@ static int demux_gif_fill_buffer(demuxer > >- #define GIF_SIGNATURE (('G' << 16) | ('I' << 8) | 'F') >+ while (type != IMAGE_DESC_RECORD_TYPE) { >+ if (DGifGetRecordType(gif, &type) == GIF_ERROR) { >+- PrintGifError(); >++ printf("%s\n", GifErrorString(GIF_ERROR)); >+ return 0; // oops >+ } >+ if (type == TERMINATE_RECORD_TYPE) >+ return 0; // eof >+ if (type == SCREEN_DESC_RECORD_TYPE) { >+ if (DGifGetScreenDesc(gif) == GIF_ERROR) { >+- PrintGifError(); >++ printf("%s\n", GifErrorString(GIF_ERROR)); >+ return 0; // oops >+ } >+ } >+@@ -108,7 +108,7 @@ static int demux_gif_fill_buffer(demuxer >+ int code; >+ unsigned char *p = NULL; >+ if (DGifGetExtension(gif, &code, &p) == GIF_ERROR) { >+- PrintGifError(); >++ printf("%s\n", GifErrorString(GIF_ERROR)); >+ return 0; // oops >+ } >+ if (code == 0xF9) { >+@@ -137,7 +137,7 @@ static int demux_gif_fill_buffer(demuxer >+ comments[length] = 0; >+ printf("%s", comments); >+ if (DGifGetExtensionNext(gif, &p) == GIF_ERROR) { >+- PrintGifError(); >++ printf("%s\n", GifErrorString(GIF_ERROR)); >+ return 0; // oops >+ } >+ } >+@@ -145,7 +145,7 @@ static int demux_gif_fill_buffer(demuxer >+ } >+ while (p != NULL) { >+ if (DGifGetExtensionNext(gif, &p) == GIF_ERROR) { >+- PrintGifError(); >++ printf("%s\n", GifErrorString(GIF_ERROR)); >+ return 0; // oops >+ } >+ } >+@@ -153,7 +153,7 @@ static int demux_gif_fill_buffer(demuxer >+ } > >-+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) >+ if (DGifGetImageDesc(gif) == GIF_ERROR) { >+- PrintGifError(); >++ printf("%s\n", GifErrorString(GIF_ERROR)); >+ return 0; // oops >+ } >+ >+@@ -166,7 +166,7 @@ static int demux_gif_fill_buffer(demuxer >+ memset(dp->buffer, gif->SBackGroundColor, priv->w * priv->h); >+ >+ if (DGifGetLine(gif, buf, len) == GIF_ERROR) { >+- PrintGifError(); >++ printf("%s\n", GifErrorString(GIF_ERROR)); >+ free(buf); >+ return 0; // oops >+ } >+@@ -256,10 +256,10 @@ static demuxer_t* demux_open_gif(demuxer >+ lseek(demuxer->stream->fd, 0, SEEK_SET); >+ gif = DGifOpenFileHandle(demuxer->stream->fd); >+ #else >+- gif = DGifOpen(demuxer->stream, my_read_gif); >++ gif = DGifOpen(demuxer->stream, my_read_gif, NULL); >+ #endif >+ if (!gif) { >+- PrintGifError(); >++ printf("%s\n", GifErrorString(GIF_ERROR)); >+ free(priv); >+ return NULL; >+ } >+@@ -301,7 +301,7 @@ static void demux_close_gif(demuxer_t* d >+ gif_priv_t *priv = demuxer->priv; >+ if (!priv) return; >+ if (priv->gif && DGifCloseFile(priv->gif) == GIF_ERROR) >+- PrintGifError(); >++ printf("%s\n", GifErrorString(GIF_ERROR)); >+ free(priv->refimg); >+ free(priv); >+ } >diff -urN /usr/ports/multimedia/mplayer2.old/files/patch-libvo_vo_gif89a.c /usr/ports/multimedia/mplayer2/files/patch-libvo_vo_gif89a.c >--- /usr/ports/multimedia/mplayer2.old/files/patch-libvo_vo_gif89a.c 1970-01-01 01:00:00.000000000 +0100 >+++ /usr/ports/multimedia/mplayer2/files/patch-libvo_vo_gif89a.c 2015-08-28 04:22:08.539776000 +0200 >@@ -0,0 +1,117 @@ >+--- libvo/vo_gif89a.c.orig 2013-07-09 16:33:16 UTC >++++ libvo/vo_gif89a.c >+@@ -44,13 +44,13 @@ >+ * entire argument being interpretted as the filename. >+ */ >+ >+-#include <gif_lib.h> >+- >+ #include <stdio.h> >+ #include <stdlib.h> >+ #include <string.h> >+ #include <unistd.h> >+ >++#include <gif_lib.h> >++ >+ #include "config.h" >+ #include "subopt-helper.h" >+ #include "video_out.h" >+@@ -69,6 +69,15 @@ static const vo_info_t info = { >+ >+ const LIBVO_EXTERN(gif89a) >+ >++#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5 >++#define EGifOpenFileName(a, b) EGifOpenFileName(a, b, NULL) >++#define MakeMapObject GifMakeMapObject >++#define FreeMapObject GifFreeMapObject >++#define QuantizeBuffer GifQuantizeBuffer >++#if defined GIFLIB_MINOR && GIFLIB_MINOR >= 1 >++#define EGifCloseFile(a) EGifCloseFile(a, NULL) >++#endif >++#endif >+ >+ // how many frames per second we are aiming for during output. >+ static float target_fps; >+@@ -92,6 +101,8 @@ static uint32_t img_width; >+ static uint32_t img_height; >+ // image data for slice rendering >+ static uint8_t *slice_data = NULL; >++// pointer for whole frame rendering >++static uint8_t *frame_data = NULL; >+ // reduced image data for flip_page >+ static uint8_t *reduce_data = NULL; >+ // reduced color map for flip_page >+@@ -156,7 +167,7 @@ static int config(uint32_t s_width, uint >+ uint32_t d_height, uint32_t flags, char *title, >+ uint32_t format) >+ { >+-#ifdef CONFIG_GIF_4 >++#if defined CONFIG_GIF_4 || GIFLIB_MAJOR >= 5 >+ // these are control blocks for the gif looping extension. >+ char LB1[] = "NETSCAPE2.0"; >+ char LB2[] = { 1, 0, 0 }; >+@@ -185,23 +196,25 @@ static int config(uint32_t s_width, uint >+ return 1; >+ } >+ >++ new_gif = EGifOpenFileName(gif_filename, 0); >++ if (new_gif == NULL) { >++ mp_msg(MSGT_VO, MSGL_ERR, "GIF89a: error opening file \"%s\" for output.\n", gif_filename); >++ return 1; >++ } >++ >++#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5 >++ EGifSetGifVersion(new_gif, 1); >++#elif defined CONFIG_GIF_4 >+ // the EGifSetGifVersion line causes segfaults in certain >+ // earlier versions of libungif. i don't know exactly which, >+ // but certainly in all those before v4. if you have problems, >+ // you need to upgrade your gif library. >+-#ifdef CONFIG_GIF_4 >+ EGifSetGifVersion("89a"); >+ #else >+ mp_msg(MSGT_VO, MSGL_ERR, "GIF89a: Your version of libungif needs to be upgraded.\n"); >+ mp_msg(MSGT_VO, MSGL_ERR, "GIF89a: Some functionality has been disabled.\n"); >+ #endif >+ >+- new_gif = EGifOpenFileName(gif_filename, 0); >+- if (new_gif == NULL) { >+- mp_msg(MSGT_VO, MSGL_ERR, "GIF89a: error opening file \"%s\" for output.\n", gif_filename); >+- return 1; >+- } >+- >+ slice_data = malloc(img_width * img_height * 3); >+ if (slice_data == NULL) { >+ mp_msg(MSGT_VO, MSGL_ERR, "GIF89a: malloc failed.\n"); >+@@ -231,7 +244,12 @@ static int config(uint32_t s_width, uint >+ >+ // set the initial width and height info. >+ EGifPutScreenDesc(new_gif, s_width, s_height, 256, 0, reduce_cmap); >+-#ifdef CONFIG_GIF_4 >++#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5 >++ EGifPutExtensionLeader(new_gif, 0xFF); >++ EGifPutExtensionBlock(new_gif, 11, LB1); >++ EGifPutExtensionBlock(new_gif, 3, LB2); >++ EGifPutExtensionTrailer(new_gif); >++#elif defined CONFIG_GIF_4 >+ // version 3 of libungif does not support multiple control blocks. >+ // looping requires multiple control blocks. >+ // therefore, looping is only enabled for v4 and up. >+@@ -311,7 +329,8 @@ static void flip_page(void) >+ >+ static int draw_frame(uint8_t *src[]) >+ { >+- return 1; >++ frame_data = src[0]; >++ return 0; >+ } >+ >+ static int draw_slice(uint8_t *src[], int stride[], int w, int h, int x, int y) >+@@ -370,6 +389,7 @@ static void uninit(void) >+ // set the pointers back to null. >+ new_gif = NULL; >+ gif_filename = NULL; >++ frame_data = NULL; >+ slice_data = NULL; >+ reduce_data = NULL; >+ reduce_cmap = NULL;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 202404
:
159969
|
159970
|
159998
|
160285
|
160300
|
160301
|
160366
|
160375
|
160377
|
160401
|
160430
|
160445
|
160503