aboutsummaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2016-12-12 08:24:05 +0000
committerJan Beich <jbeich@FreeBSD.org>2016-12-12 08:24:05 +0000
commit4b61234a3dfeac5a553d84a56b5014d8dc3c92be (patch)
tree4e8f7a0912dca0d1a8b520b666c472ef0d4901eb /graphics
parente20fd87bcfbbd04a66529d7d60dcc9e33f8b933e (diff)
downloadports-4b61234a3dfeac5a553d84a56b5014d8dc3c92be.tar.gz
ports-4b61234a3dfeac5a553d84a56b5014d8dc3c92be.zip
Notes
Diffstat (limited to 'graphics')
-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 3d16b6712770..372b4e63d462 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 000000000000..9bdd1b5beb59
--- /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)