Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Nov 2016 12:03:32 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r425315 - in head/multimedia/nordlicht: . files
Message-ID:  <201611041203.uA4C3Wt6014031@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Fri Nov  4 12:03:32 2016
New Revision: 425315
URL: https://svnweb.freebsd.org/changeset/ports/425315

Log:
  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

Added:
  head/multimedia/nordlicht/files/patch-image.c   (contents, props changed)
  head/multimedia/nordlicht/files/patch-source.c   (contents, props changed)
Modified:
  head/multimedia/nordlicht/Makefile   (contents, props changed)

Modified: head/multimedia/nordlicht/Makefile
==============================================================================
--- head/multimedia/nordlicht/Makefile	Fri Nov  4 11:33:27 2016	(r425314)
+++ head/multimedia/nordlicht/Makefile	Fri Nov  4 12:03:32 2016	(r425315)
@@ -4,6 +4,7 @@
 PORTNAME=	nordlicht
 PORTVERSION=	0.4.4
 DISTVERSIONPREFIX=	v
+PORTREVISION=	1
 CATEGORIES=	multimedia
 
 MAINTAINER=	t@tobik.me

Added: head/multimedia/nordlicht/files/patch-image.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/nordlicht/files/patch-image.c	Fri Nov  4 12:03:32 2016	(r425315)
@@ -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;

Added: head/multimedia/nordlicht/files/patch-source.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/nordlicht/files/patch-source.c	Fri Nov  4 12:03:32 2016	(r425315)
@@ -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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611041203.uA4C3Wt6014031>