diff options
Diffstat (limited to 'media-video/vlc/files')
-rw-r--r-- | media-video/vlc/files/vlc-3.0.6-fdk-aac-2.0.0.patch | 84 | ||||
-rw-r--r-- | media-video/vlc/files/vlc-3.0.6-libav.patch | 12 | ||||
-rw-r--r-- | media-video/vlc/files/vlc-3.0.6-libvpx-1.8.0.patch | 35 |
3 files changed, 131 insertions, 0 deletions
diff --git a/media-video/vlc/files/vlc-3.0.6-fdk-aac-2.0.0.patch b/media-video/vlc/files/vlc-3.0.6-fdk-aac-2.0.0.patch new file mode 100644 index 000000000000..a5104d1df6d1 --- /dev/null +++ b/media-video/vlc/files/vlc-3.0.6-fdk-aac-2.0.0.patch @@ -0,0 +1,84 @@ +From 6ea9b13fe82fae2b25b7371c6c36d6296db28ccb Mon Sep 17 00:00:00 2001 +From: Antonio Larrosa <antonio.larrosa@gmail.com> +Date: Thu, 14 Feb 2019 10:09:30 +0100 +Subject: [PATCH] Fix building vlc with libfdk-aac v2 + +When flushing the encoder, we now need to provide non-null buffer +parameters for everything, even if they are unused. + +The encoderDelay parameter has been replaced by two, nDelay and +nDelayCore. + +This is based on: +https://git.libav.org/?p=libav.git;a=commitdiff_plain;h=141c960e21d2860e354f9b90df136184dd00a9a8;hp=c8bca9fe466f810fd484e2c6db7ef7bc83b5a943 + +Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org> +--- + modules/codec/fdkaac.c | 27 +++++++++++++++++++++------ + 1 file changed, 21 insertions(+), 6 deletions(-) + +diff --git a/modules/codec/fdkaac.c b/modules/codec/fdkaac.c +index e0b3088c4a..3ac7b756a3 100644 +--- a/modules/codec/fdkaac.c ++++ b/modules/codec/fdkaac.c +@@ -92,6 +92,11 @@ static void CloseEncoder(vlc_object_t *); + #define SIGNALING_COMPATIBLE 1 + #define SIGNALING_HIERARCHICAL 2 + ++#define FDKENC_VER_AT_LEAST(vl0, vl1) \ ++ (defined(AACENCODER_LIB_VL0) && \ ++ ((AACENCODER_LIB_VL0 > vl0) || \ ++ (AACENCODER_LIB_VL0 == vl0 && AACENCODER_LIB_VL1 >= vl1))) ++ + static const int pi_aot_values[] = { PROFILE_AAC_LC, PROFILE_AAC_HE, PROFILE_AAC_HE_v2, PROFILE_AAC_LD, PROFILE_AAC_ELD }; + static const char *const ppsz_aot_descriptions[] = + { N_("AAC-LC"), N_("HE-AAC"), N_("HE-AAC-v2"), N_("AAC-LD"), N_("AAC-ELD") }; +@@ -288,7 +293,11 @@ static int OpenEncoder(vlc_object_t *p_this) + p_sys->i_maxoutputsize = 768*p_enc->fmt_in.audio.i_channels; + p_enc->fmt_in.audio.i_bitspersample = 16; + p_sys->i_frame_size = info.frameLength; ++#if FDKENC_VER_AT_LEAST(4, 0) ++ p_sys->i_encoderdelay = info.nDelay; ++#else + p_sys->i_encoderdelay = info.encoderDelay; ++#endif + + p_enc->fmt_out.i_extra = info.confSize; + if (p_enc->fmt_out.i_extra) { +@@ -351,21 +360,27 @@ static block_t *EncodeAudio(encoder_t *p_enc, block_t *p_aout_buf) + int out_identifier = OUT_BITSTREAM_DATA; + int out_size, out_elem_size; + void *in_ptr, *out_ptr; ++ uint8_t dummy_buf[1]; + + if (unlikely(i_samples == 0)) { + // this forces the encoder to purge whatever is left in the internal buffer ++ /* 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_size = 0; ++ + in_args.numInSamples = -1; + } else { + in_ptr = p_buffer + (i_samples - i_samples_left)*p_enc->fmt_in.audio.i_channels; + in_size = 2*p_enc->fmt_in.audio.i_channels*i_samples_left; +- in_elem_size = 2; + in_args.numInSamples = p_enc->fmt_in.audio.i_channels*i_samples_left; +- in_buf.numBufs = 1; +- in_buf.bufs = &in_ptr; +- in_buf.bufferIdentifiers = &in_identifier; +- in_buf.bufSizes = &in_size; +- in_buf.bufElSizes = &in_elem_size; + } ++ in_elem_size = 2; ++ in_buf.numBufs = 1; ++ in_buf.bufs = &in_ptr; ++ in_buf.bufferIdentifiers = &in_identifier; ++ in_buf.bufSizes = &in_size; ++ in_buf.bufElSizes = &in_elem_size; + block_t *p_block; + p_block = block_Alloc(p_sys->i_maxoutputsize); + p_block->i_buffer = p_sys->i_maxoutputsize; +-- +2.11.0 + diff --git a/media-video/vlc/files/vlc-3.0.6-libav.patch b/media-video/vlc/files/vlc-3.0.6-libav.patch new file mode 100644 index 000000000000..08e13f15fb6e --- /dev/null +++ b/media-video/vlc/files/vlc-3.0.6-libav.patch @@ -0,0 +1,12 @@ +--- a/modules/codec/avcodec/fourcc.c 2019-02-27 22:57:55.878463261 +0100 ++++ a/modules/codec/avcodec/fourcc.c_orig 2018-10-28 12:11:19.000000000 +0100 +@@ -182,7 +182,9 @@ + /* AV_CODEC_ID_V210X */ + { VLC_CODEC_TMV, AV_CODEC_ID_TMV }, + { VLC_CODEC_V210, AV_CODEC_ID_V210 }, ++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 54, 50, 100 ) && LIBAVCODEC_VERSION_MICRO >= 100 + { VLC_CODEC_VUYA, AV_CODEC_ID_AYUV }, ++#endif + /* AV_CODEC_ID_DPX */ + { VLC_CODEC_MAD, AV_CODEC_ID_MAD }, + { VLC_CODEC_FRWU, AV_CODEC_ID_FRWU }, diff --git a/media-video/vlc/files/vlc-3.0.6-libvpx-1.8.0.patch b/media-video/vlc/files/vlc-3.0.6-libvpx-1.8.0.patch new file mode 100644 index 000000000000..1b58a03cc8cd --- /dev/null +++ b/media-video/vlc/files/vlc-3.0.6-libvpx-1.8.0.patch @@ -0,0 +1,35 @@ +From 5575fe3eb3fd46bada8662268b74d03493476a84 Mon Sep 17 00:00:00 2001 +From: Danny Milosavljevic <dannym@scratchpost.org> +Date: Mon, 11 Feb 2019 16:07:12 +0100 +Subject: [PATCH] codec: vpx: Detect libvpx 1.8.0 and, if detected, use fewer + frame formats in the chroma_table + +Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz> +--- + modules/codec/vpx.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/modules/codec/vpx.c b/modules/codec/vpx.c +index f03c7fae62..59b3acdef7 100644 +--- a/modules/codec/vpx.c ++++ b/modules/codec/vpx.c +@@ -117,6 +117,7 @@ static const struct + { VLC_CODEC_I440, VPX_IMG_FMT_I440, 8, 0 }, + + { VLC_CODEC_YV12, VPX_IMG_FMT_YV12, 8, 0 }, ++#if VPX_IMAGE_ABI_VERSION < 5 + { VLC_CODEC_YUVA, VPX_IMG_FMT_444A, 8, 0 }, + { VLC_CODEC_YUYV, VPX_IMG_FMT_YUY2, 8, 0 }, + { VLC_CODEC_UYVY, VPX_IMG_FMT_UYVY, 8, 0 }, +@@ -129,7 +130,7 @@ static const struct + + { VLC_CODEC_ARGB, VPX_IMG_FMT_ARGB, 8, 0 }, + { VLC_CODEC_BGRA, VPX_IMG_FMT_ARGB_LE, 8, 0 }, +- ++#endif + { VLC_CODEC_GBR_PLANAR, VPX_IMG_FMT_I444, 8, 1 }, + { VLC_CODEC_GBR_PLANAR_10L, VPX_IMG_FMT_I44416, 10, 1 }, + +-- +2.11.0 + |