aboutsummaryrefslogtreecommitdiff
path: root/multimedia
diff options
context:
space:
mode:
authorFernando ApesteguĂ­a <fernape@FreeBSD.org>2018-12-10 22:00:22 +0000
committerFernando ApesteguĂ­a <fernape@FreeBSD.org>2018-12-10 22:00:22 +0000
commit6588eaea19a0bcbc46677ca3db7c61f31bfd4861 (patch)
tree4f4192778792f902d9712036a044c8603e3696e3 /multimedia
parent592b2a2b25c24dec400cb8c5a2da4fafb7a30a17 (diff)
downloadports-6588eaea19a0bcbc46677ca3db7c61f31bfd4861.tar.gz
ports-6588eaea19a0bcbc46677ca3db7c61f31bfd4861.zip
Notes
Diffstat (limited to 'multimedia')
-rw-r--r--multimedia/libav/Makefile10
-rw-r--r--multimedia/libav/distinfo6
-rw-r--r--multimedia/libav/files/patch-libavcodec_libfdk-aacenc.c71
3 files changed, 79 insertions, 8 deletions
diff --git a/multimedia/libav/Makefile b/multimedia/libav/Makefile
index 6658880f66f5..44f673760c4f 100644
--- a/multimedia/libav/Makefile
+++ b/multimedia/libav/Makefile
@@ -1,8 +1,7 @@
# $FreeBSD$
PORTNAME= libav
-PORTVERSION= 12.1
-PORTREVISION= 8
+PORTVERSION= 12.3
CATEGORIES= multimedia audio ipv6 net
MASTER_SITES= http://libav.org/releases/
@@ -20,14 +19,15 @@ LIB_DEPENDS= libopencv_core.so:graphics/opencv-core \
libvdpau.so:multimedia/libvdpau \
libhogweed.so:security/nettle
-USES= cpe gmake perl5 pkgconfig tar:xz
+USES= cpe gmake localbase perl5 pkgconfig tar:xz
+
USE_XORG= x11
-HAS_CONFIGURE= yes
USE_PERL5= build
USE_LDCONFIG= ${PREFIX}/lib/${PORTNAME}
+
+HAS_CONFIGURE= yes
NOPRECIOUSMAKEVARS= yes # ARCH
-CPPFLAGS+= -I${LOCALBASE}/include
CONFIGURE_ARGS= --prefix="${PREFIX}" \
--libdir="${PREFIX}/lib/${PORTNAME}" \
--shlibdir="${PREFIX}/lib/${PORTNAME}" \
diff --git a/multimedia/libav/distinfo b/multimedia/libav/distinfo
index 96ec66294976..8d5d7d4ae700 100644
--- a/multimedia/libav/distinfo
+++ b/multimedia/libav/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1495507159
-SHA256 (libav-12.1.tar.xz) = fad96aa265d3d64b9e53c159559621ec888effa022908da8372164fa4cbe5d2d
-SIZE (libav-12.1.tar.xz) = 5267292
+TIMESTAMP = 1543298830
+SHA256 (libav-12.3.tar.xz) = 6893cdbd7bc4b62f5d8fd6593c8e0a62babb53e323fbc7124db3658d04ab443b
+SIZE (libav-12.3.tar.xz) = 5267988
diff --git a/multimedia/libav/files/patch-libavcodec_libfdk-aacenc.c b/multimedia/libav/files/patch-libavcodec_libfdk-aacenc.c
new file mode 100644
index 000000000000..0f325e218de3
--- /dev/null
+++ b/multimedia/libav/files/patch-libavcodec_libfdk-aacenc.c
@@ -0,0 +1,71 @@
+--- libavcodec/libfdk-aacenc.c.orig 2018-02-12 21:25:59 UTC
++++ libavcodec/libfdk-aacenc.c
+@@ -26,6 +26,11 @@
+ #include "audio_frame_queue.h"
+ #include "internal.h"
+
++#define FDKENC_VER_AT_LEAST(vl0, vl1) \
++ (defined(AACENCODER_LIB_VL0) && \
++ ((AACENCODER_LIB_VL0 > vl0) || \
++ (AACENCODER_LIB_VL0 == vl0 && AACENCODER_LIB_VL1 >= vl1)))
++
+ typedef struct AACContext {
+ const AVClass *class;
+ HANDLE_AACENCODER handle;
+@@ -286,7 +291,11 @@ static av_cold int aac_encode_init(AVCod
+ }
+
+ avctx->frame_size = info.frameLength;
++#if FDKENC_VER_AT_LEAST(4, 0)
++ avctx->initial_padding = info.nDelay;
++#else
+ avctx->initial_padding = info.encoderDelay;
++#endif
+ ff_af_queue_init(avctx, &s->afq);
+
+ if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
+@@ -319,28 +328,35 @@ static int aac_encode_frame(AVCodecConte
+ int out_buffer_size, out_buffer_element_size;
+ void *in_ptr, *out_ptr;
+ int ret;
++ uint8_t dummy_buf[1];
+ AACENC_ERROR err;
+
+ /* handle end-of-stream small frame and flushing */
+ if (!frame) {
++ /* Must be a non-null pointer, even if it's a dummy. We could use
++ * the address of anything else on the stack as well. */
++ in_ptr = dummy_buf;
++ in_buffer_size = 0;
++
+ in_args.numInSamples = -1;
+ } else {
+- in_ptr = frame->data[0];
+- in_buffer_size = 2 * avctx->channels * frame->nb_samples;
+- in_buffer_element_size = 2;
++ in_ptr = frame->data[0];
++ in_buffer_size = 2 * avctx->channels * frame->nb_samples;
+
+- in_args.numInSamples = avctx->channels * frame->nb_samples;
+- in_buf.numBufs = 1;
+- in_buf.bufs = &in_ptr;
+- in_buf.bufferIdentifiers = &in_buffer_identifier;
+- in_buf.bufSizes = &in_buffer_size;
+- in_buf.bufElSizes = &in_buffer_element_size;
++ in_args.numInSamples = avctx->channels * frame->nb_samples;
+
+ /* add current frame to the queue */
+ if ((ret = ff_af_queue_add(&s->afq, frame)) < 0)
+ return ret;
+ }
+
++ in_buffer_element_size = 2;
++ in_buf.numBufs = 1;
++ in_buf.bufs = &in_ptr;
++ in_buf.bufferIdentifiers = &in_buffer_identifier;
++ in_buf.bufSizes = &in_buffer_size;
++ in_buf.bufElSizes = &in_buffer_element_size;
++
+ /* The maximum packet size is 6144 bits aka 768 bytes per channel. */
+ if ((ret = ff_alloc_packet(avpkt, FFMAX(8192, 768 * avctx->channels)))) {
+ av_log(avctx, AV_LOG_ERROR, "Error getting output packet\n");