1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-20 04:02:27 +00:00

multimedia/libav: update to 12.3

While here, convert to USES=localbase

Release notes: https://libav.org/releases/libav-12.3.release

PR:     233557
Submitted by:   takefu@airport.fm
Approved by:    dem.procopiou@gmail.com (maintainer, timeout)
This commit is contained in:
Fernando Apesteguía 2018-12-10 22:00:22 +00:00
parent 592b2a2b25
commit 6588eaea19
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=487203
3 changed files with 79 additions and 8 deletions

View File

@ -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}" \

View File

@ -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

View File

@ -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");