diff options
author | Jan Beich <jbeich@FreeBSD.org> | 2016-11-04 12:03:32 +0000 |
---|---|---|
committer | Jan Beich <jbeich@FreeBSD.org> | 2016-11-04 12:03:32 +0000 |
commit | e34c9a007fb1e5da1531ac5395c290306d31d1f6 (patch) | |
tree | 0b004e0c52bb46a1e52fdf00a87017a936933c51 /multimedia/nordlicht | |
parent | eb36a9a6bbd8d4f823304d8562404fcdd1a2c355 (diff) | |
download | ports-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/Makefile | 1 | ||||
-rw-r--r-- | multimedia/nordlicht/files/patch-image.c | 68 | ||||
-rw-r--r-- | multimedia/nordlicht/files/patch-source.c | 66 |
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; |