summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjbeich <jbeich@FreeBSD.org>2016-12-12 08:24:05 +0000
committerjbeich <jbeich@FreeBSD.org>2016-12-12 08:24:05 +0000
commit41f4133dbd700255e7fb8c1fd40a9fce2ffb2872 (patch)
tree4e8f7a0912dca0d1a8b520b666c472ef0d4901eb
parentf43f66c0d70f398dfef417e9b0b9426dd25e648c (diff)
downloadFreeBSD-ports-41f4133dbd700255e7fb8c1fd40a9fce2ffb2872.zip
FreeBSD-ports-41f4133dbd700255e7fb8c1fd40a9fce2ffb2872.tar.gz
graphics/gegl3: unbreak FFMPEG=on runtime
$ echo CFLAGS+=-Werror=implicit-function-declaration >>Makefile.local $ make [...] ./ff-save.c:700:9: error: implicit declaration of function 'avcodec_encode_video' is invalid in C99 [-Werror,-Wimplicit-function-declaration] avcodec_encode_video (c, ^ ./ff-save.c:700:9: note: did you mean 'avcodec_encode_video2'? /usr/local/include/libavcodec/avcodec.h:5323:5: note: 'avcodec_encode_video2' declared here int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt, ^ PR: 207547 Obtained from: upstream Approved by: portmgr blanket
-rw-r--r--graphics/gegl3/Makefile2
-rw-r--r--graphics/gegl3/files/patch-operations_external_ff-save.c42
2 files changed, 43 insertions, 1 deletions
diff --git a/graphics/gegl3/Makefile b/graphics/gegl3/Makefile
index 3d16b67..372b4e6 100644
--- a/graphics/gegl3/Makefile
+++ b/graphics/gegl3/Makefile
@@ -3,7 +3,7 @@
PORTNAME= gegl
PORTVERSION= 0.3.4
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= graphics
MASTER_SITES= GIMP
PKGNAMESUFFIX= 3
diff --git a/graphics/gegl3/files/patch-operations_external_ff-save.c b/graphics/gegl3/files/patch-operations_external_ff-save.c
new file mode 100644
index 0000000..9bdd1b5
--- /dev/null
+++ b/graphics/gegl3/files/patch-operations_external_ff-save.c
@@ -0,0 +1,42 @@
+https://git.gnome.org/browse/gegl/commit/?id=e26d6deace35
+
+--- operations/external/ff-save.c.orig 2015-11-23 06:16:26 UTC
++++ operations/external/ff-save.c
+@@ -696,10 +696,33 @@ write_video_frame (GeglProperties *o,
+ else
+ {
+ /* encode the image */
+- out_size =
+- avcodec_encode_video (c,
+- p->video_outbuf,
+- p->video_outbuf_size, picture_ptr);
++ AVPacket pkt2;
++ int got_packet = 0;
++ av_init_packet(&pkt2);
++ pkt2.data = p->video_outbuf;
++ pkt2.size = p->video_outbuf_size;
++
++ out_size = avcodec_encode_video2(c, &pkt2, picture_ptr, &got_packet);
++
++ if (!out_size && got_packet && c->coded_frame)
++ {
++ c->coded_frame->pts = pkt2.pts;
++ c->coded_frame->key_frame = !!(pkt2.flags & AV_PKT_FLAG_KEY);
++ if (c->codec->capabilities & AV_CODEC_CAP_INTRA_ONLY)
++ c->coded_frame->pict_type = AV_PICTURE_TYPE_I;
++ }
++
++ if (pkt2.side_data_elems > 0)
++ {
++ int i;
++ for (i = 0; i < pkt2.side_data_elems; i++)
++ av_free(pkt2.side_data[i].data);
++ av_freep(&pkt2.side_data);
++ pkt2.side_data_elems = 0;
++ }
++
++ if (!out_size)
++ out_size = pkt2.size;
+
+ /* if zero size, it means the image was buffered */
+ if (out_size != 0)
OpenPOWER on IntegriCloud