From ace68147247dbdbe28003b6ec89614f3d4787c39 Mon Sep 17 00:00:00 2001 From: Jimi Huotari Date: Sun, 6 Nov 2016 12:40:08 +0200 Subject: app-emulation/vice: Fix compiling with '>=media-video/ffmpeg-3'. Add a patch to allow compiling '2.4.27-r2' with 'ffmpeg-3' installed. Backported from: https://sourceforge.net/p/vice-emu/code/31580/ Also change 'PATCH' to 'PATCHES'. Package-Manager: portage-2.3.2 Closes: https://github.com/gentoo/gentoo/pull/2759 --- .../vice/files/vice-31580-ffmpeg-build.patch | 64 ++++++++++++++++++++++ app-emulation/vice/vice-2.4.27-r2.ebuild | 8 ++- 2 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 app-emulation/vice/files/vice-31580-ffmpeg-build.patch (limited to 'app-emulation/vice') diff --git a/app-emulation/vice/files/vice-31580-ffmpeg-build.patch b/app-emulation/vice/files/vice-31580-ffmpeg-build.patch new file mode 100644 index 000000000000..82dc3421218a --- /dev/null +++ b/app-emulation/vice/files/vice-31580-ffmpeg-build.patch @@ -0,0 +1,64 @@ +# Patch to fix compiling with ffmpeg-3. +# Backported from: https://sourceforge.net/p/vice-emu/code/31580/ + +--- /src/gfxoutputdrv/ffmpeglib.h ++++ /src/gfxoutputdrv/ffmpeglib.h +@@ -76,6 +76,14 @@ + #define AVCodecID CodecID + #endif + ++#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(55,17,103) ++#define VICE_AV_PIX_FMT_RGB24 PIX_FMT_RGB24 ++#define VICE_AV_PixelFormat PixelFormat ++#else ++#define VICE_AV_PIX_FMT_RGB24 AV_PIX_FMT_RGB24 ++#define VICE_AV_PixelFormat AVPixelFormat ++#endif ++ + /* avcodec fucntions */ + typedef void(*av_init_packet_t)(AVPacket *pkt); + typedef int(*avcodec_open2_t)(AVCodecContext*, AVCodec*, AVDictionary **); +@@ -118,7 +126,7 @@ + + /* swscale functions */ + typedef struct SwsContext * (*sws_getContext_t)(int srcW, int srcH, +- enum PixelFormat srcFormat, int dstW, int dstH, enum PixelFormat dstFormat, ++ enum VICE_AV_PixelFormat srcFormat, int dstW, int dstH, enum VICE_AV_PixelFormat dstFormat, + int flags, SwsFilter *srcFilter, SwsFilter *dstFilter, double *param); + typedef void (*sws_freeContext_t)(struct SwsContext *swsContext); + typedef int (*sws_scale_t)(struct SwsContext *context, uint8_t* srcSlice[], + +--- /src/gfxoutputdrv/ffmpegdrv.c ++++ /src/gfxoutputdrv/ffmpegdrv.c +@@ -671,8 +671,8 @@ + picture is needed too. It is then converted to the required + output format */ + video_st.tmp_frame = NULL; +- if (c->pix_fmt != PIX_FMT_RGB24) { +- video_st.tmp_frame = ffmpegdrv_alloc_picture(PIX_FMT_RGB24, c->width, c->height); ++ if (c->pix_fmt != VICE_AV_PIX_FMT_RGB24) { ++ video_st.tmp_frame = ffmpegdrv_alloc_picture(VICE_AV_PIX_FMT_RGB24, c->width, c->height); + if (!video_st.tmp_frame) { + log_debug("ffmpegdrv: could not allocate temporary picture"); + return -1; +@@ -769,9 +769,9 @@ + + #ifdef HAVE_FFMPEG_SWSCALE + /* setup scaler */ +- if (c->pix_fmt != PIX_FMT_RGB24) { ++ if (c->pix_fmt != VICE_AV_PIX_FMT_RGB24) { + sws_ctx = VICE_P_SWS_GETCONTEXT +- (video_width, video_height, PIX_FMT_RGB24, ++ (video_width, video_height, VICE_AV_PIX_FMT_RGB24, + video_width, video_height, c->pix_fmt, + SWS_BICUBIC, + NULL, NULL, NULL); +@@ -948,7 +948,7 @@ + + c = video_st.st->codec; + +- if (c->pix_fmt != PIX_FMT_RGB24) { ++ if (c->pix_fmt != VICE_AV_PIX_FMT_RGB24) { + ffmpegdrv_fill_rgb_image(screenshot, video_st.tmp_frame); + + if (sws_ctx != NULL) { diff --git a/app-emulation/vice/vice-2.4.27-r2.ebuild b/app-emulation/vice/vice-2.4.27-r2.ebuild index 2782d0f66285..0791ebbb7578 100644 --- a/app-emulation/vice/vice-2.4.27-r2.ebuild +++ b/app-emulation/vice/vice-2.4.27-r2.ebuild @@ -85,12 +85,18 @@ DEPEND="${RDEPEND} x11-proto/videoproto nls? ( sys-devel/gettext )" -PATCH=( +PATCHES=( "${FILESDIR}"/${P}-autotools.patch ) #"${FILESDIR}"/vice_rath.txt src_prepare() { + if use ffmpeg && has_version ">=media-video/ffmpeg-3" ; then + PATCHES+=( + "${FILESDIR}"/${PN}-31580-ffmpeg-build.patch + ) + fi + default sed -i \ -e 's/building//' \ -- cgit v1.2.3-65-gdbad