aboutsummaryrefslogtreecommitdiff
path: root/multimedia/nordlicht
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2016-11-04 12:03:32 +0000
committerJan Beich <jbeich@FreeBSD.org>2016-11-04 12:03:32 +0000
commite34c9a007fb1e5da1531ac5395c290306d31d1f6 (patch)
tree0b004e0c52bb46a1e52fdf00a87017a936933c51 /multimedia/nordlicht
parenteb36a9a6bbd8d4f823304d8562404fcdd1a2c355 (diff)
downloadports-e34c9a007fb1e5da1531ac5395c290306d31d1f6.tar.gz
ports-e34c9a007fb1e5da1531ac5395c290306d31d1f6.zip
multimedia/nordlicht: unbreak build with ffmpeg 3.x
image.c:28:24: error: use of undeclared identifier 'PIX_FMT_RGB24'; did you mean 'AV_PIX_FMT_RGB24'? i->frame->format = PIX_FMT_RGB24; // best choice? ^~~~~~~~~~~~~ AV_PIX_FMT_RGB24 /usr/local/include/libavutil/pixfmt.h:64:5: note: 'AV_PIX_FMT_RGB24' declared here AV_PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB... ^ image.c:243:32: error: use of undeclared identifier 'PIX_FMT_RGB24'; did you mean 'AV_PIX_FMT_RGB24'? encoder_context->pix_fmt = PIX_FMT_RGB24; ^~~~~~~~~~~~~ AV_PIX_FMT_RGB24 /usr/local/include/libavutil/pixfmt.h:64:5: note: 'AV_PIX_FMT_RGB24' declared here AV_PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB... ^ PR: 214196 Submitted by: Tobias Kortkamp <t@tobik.me> (maintainer) Obtained from: upstream
Notes
Notes: svn path=/head/; revision=425315
Diffstat (limited to 'multimedia/nordlicht')
-rw-r--r--multimedia/nordlicht/Makefile1
-rw-r--r--multimedia/nordlicht/files/patch-image.c68
-rw-r--r--multimedia/nordlicht/files/patch-source.c66
3 files changed, 135 insertions, 0 deletions
diff --git a/multimedia/nordlicht/Makefile b/multimedia/nordlicht/Makefile
index ad3109496da9..de9fba342835 100644
--- a/multimedia/nordlicht/Makefile
+++ b/multimedia/nordlicht/Makefile
@@ -4,6 +4,7 @@
PORTNAME= nordlicht
PORTVERSION= 0.4.4
DISTVERSIONPREFIX= v
+PORTREVISION= 1
CATEGORIES= multimedia
MAINTAINER= t@tobik.me
diff --git a/multimedia/nordlicht/files/patch-image.c b/multimedia/nordlicht/files/patch-image.c
new file mode 100644
index 000000000000..34a621f53657
--- /dev/null
+++ b/multimedia/nordlicht/files/patch-image.c
@@ -0,0 +1,68 @@
+For ffmpeg 3.x compatibility
+
+https://github.com/nordlicht/nordlicht/commit/5505a1898ab997a23b75553794eff6609447c43b.patch
+https://github.com/nordlicht/nordlicht/commit/6e534a0c273756b88eecea7f510b6aa8a62dd789.patch
+and https://github.com/nordlicht/nordlicht/pull/63/commits/b8f439c2796d6b1de73511c0610aecb31c942790
+
+--- image.c.orig 2016-01-24 19:35:50 UTC
++++ image.c
+@@ -5,11 +5,36 @@
+ #include <string.h>
+ #include <libswscale/swscale.h>
+
++// Changes for ffmpeg 3.0
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,24,0)
++# include <libavutil/imgutils.h>
++# define av_free_packet av_packet_unref
++# define avpicture_get_size(fmt,w,h) av_image_get_buffer_size(fmt,w,h,1)
++#endif
++
++// PIX_FMT was renamed to AV_PIX_FMT on this version
++#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(51,74,100)
++# define AVPixelFormat PixelFormat
++# define AV_PIX_FMT_RGB24 PIX_FMT_RGB24
++# define AV_PIX_FMT_YUVJ420P PIX_FMT_YUVJ420P
++# define AV_PIX_FMT_YUVJ422P PIX_FMT_YUVJ422P
++# define AV_PIX_FMT_YUVJ440P PIX_FMT_YUVJ440P
++# define AV_PIX_FMT_YUVJ444P PIX_FMT_YUVJ444P
++# define AV_PIX_FMT_YUV420P PIX_FMT_YUV420P
++# define AV_PIX_FMT_YUV422P PIX_FMT_YUV422P
++# define AV_PIX_FMT_YUV440P PIX_FMT_YUV440P
++# define AV_PIX_FMT_YUV444P PIX_FMT_YUV444P
++#endif
++
+ #if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(52, 8, 0)
+-#define av_frame_alloc avcodec_alloc_frame
+-#define av_frame_free av_freep
++# define av_frame_alloc avcodec_alloc_frame
++# if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(54,59,100)
++# define av_frame_free av_freep
++# else
++# define av_frame_free avcodec_free_frame
++# endif
+ void av_frame_get_buffer(AVFrame *frame, int magic) { avpicture_alloc((AVPicture *)frame, frame->format, frame->width, frame->height); }
+-void av_frame_copy(AVFrame *dst, AVFrame *src) { memcpy(dst->data[0], src->data[0], sizeof(uint8_t)*avpicture_get_size(PIX_FMT_RGB24, dst->width, dst->height)); }
++void av_frame_copy(AVFrame *dst, AVFrame *src) { memcpy(dst->data[0], src->data[0], sizeof(uint8_t)*avpicture_get_size(AV_PIX_FMT_RGB24, dst->width, dst->height)); }
+ #endif
+
+ #define MAX_FILTER_SIZE 256
+@@ -25,7 +50,7 @@ image *image_init(const int width, const
+ i->frame = (AVFrame *) av_frame_alloc();
+ i->frame->width = width;
+ i->frame->height = height;
+- i->frame->format = PIX_FMT_RGB24; // best choice?
++ i->frame->format = AV_PIX_FMT_RGB24; // best choice?
+ av_frame_get_buffer(i->frame, 16); // magic number?
+ return i;
+ }
+@@ -240,7 +265,9 @@ int image_write_png(const image *i, cons
+ encoder_context = avcodec_alloc_context3(encoder);
+ encoder_context->width = i->frame->width;
+ encoder_context->height = i->frame->height;
+- encoder_context->pix_fmt = PIX_FMT_RGB24;
++ encoder_context->pix_fmt = AV_PIX_FMT_RGB24;
++ encoder_context->time_base.num = 1;
++ encoder_context->time_base.den = 1;
+ if (avcodec_open2(encoder_context, encoder, NULL) < 0) {
+ error("Could not open output codec.");
+ return -1;
diff --git a/multimedia/nordlicht/files/patch-source.c b/multimedia/nordlicht/files/patch-source.c
new file mode 100644
index 000000000000..6761e2c0456d
--- /dev/null
+++ b/multimedia/nordlicht/files/patch-source.c
@@ -0,0 +1,66 @@
+For ffmpeg 3.x compatibility
+
+https://github.com/nordlicht/nordlicht/commit/5505a1898ab997a23b75553794eff6609447c43b.patch
+https://github.com/nordlicht/nordlicht/commit/6e534a0c273756b88eecea7f510b6aa8a62dd789.patch
+
+--- source.c.orig 2016-01-24 19:35:50 UTC
++++ source.c
+@@ -6,9 +6,34 @@
+ #include <libavutil/avutil.h>
+ #include <libswscale/swscale.h>
+
++// Changes for ffmpeg 3.0
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,24,0)
++# include <libavutil/imgutils.h>
++# define av_free_packet av_packet_unref
++# define avpicture_get_size(fmt,w,h) av_image_get_buffer_size(fmt,w,h,1)
++#endif
++
++// PIX_FMT was renamed to AV_PIX_FMT on this version
++#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(51,74,100)
++# define AVPixelFormat PixelFormat
++# define AV_PIX_FMT_RGB24 PIX_FMT_RGB24
++# define AV_PIX_FMT_YUVJ420P PIX_FMT_YUVJ420P
++# define AV_PIX_FMT_YUVJ422P PIX_FMT_YUVJ422P
++# define AV_PIX_FMT_YUVJ440P PIX_FMT_YUVJ440P
++# define AV_PIX_FMT_YUVJ444P PIX_FMT_YUVJ444P
++# define AV_PIX_FMT_YUV420P PIX_FMT_YUV420P
++# define AV_PIX_FMT_YUV422P PIX_FMT_YUV422P
++# define AV_PIX_FMT_YUV440P PIX_FMT_YUV440P
++# define AV_PIX_FMT_YUV444P PIX_FMT_YUV444P
++#endif
++
+ #if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(52, 8, 0)
+-#define av_frame_alloc avcodec_alloc_frame
+-#define av_frame_free av_freep
++# define av_frame_alloc avcodec_alloc_frame
++# if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(54,59,100)
++# define av_frame_free av_freep
++# else
++# define av_frame_free avcodec_free_frame
++# endif
+ #endif
+
+ #define HEURISTIC_NUMBER_OF_FRAMES 1800 // how many frames will the heuristic look at?
+@@ -244,13 +269,17 @@ source* source_init(const char *filename
+ s->scaleframe = av_frame_alloc();
+ s->scaleframe->width = s->video->frame->width;
+ s->scaleframe->height = s->video->frame->height;
+- s->scaleframe->format = PIX_FMT_RGB24;
++ s->scaleframe->format = AV_PIX_FMT_RGB24;
+
+- s->buffer = (uint8_t *)av_malloc(sizeof(uint8_t)*avpicture_get_size(PIX_FMT_RGB24, s->scaleframe->width, s->scaleframe->height));
+- avpicture_fill((AVPicture *)s->scaleframe, s->buffer, PIX_FMT_RGB24, s->video->frame->width, s->video->frame->height);
++ s->buffer = (uint8_t *)av_malloc(sizeof(uint8_t)*avpicture_get_size(s->scaleframe->format, s->scaleframe->width, s->scaleframe->height));
++ #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,24,0)
++ av_image_fill_arrays(s->scaleframe->data, s->scaleframe->linesize, s->buffer, s->scaleframe->format, s->video->frame->width, s->video->frame->height, 1);
++ #else
++ avpicture_fill((AVPicture *)s->scaleframe, s->buffer, s->scaleframe->format, s->video->frame->width, s->video->frame->height);
++ #endif
+
+ s->sws_context = sws_getCachedContext(NULL, s->video->frame->width, s->video->frame->height, s->video->frame->format,
+- s->scaleframe->width, s->scaleframe->height, PIX_FMT_RGB24, SWS_AREA, NULL, NULL, NULL);
++ s->scaleframe->width, s->scaleframe->height, s->scaleframe->format, SWS_AREA, NULL, NULL, NULL);
+ }
+
+ s->keyframes = NULL;