diff --git a/0001-codec-vpx-Detect-libvpx-1.8.0.patch b/0001-codec-vpx-Detect-libvpx-1.8.0.patch new file mode 100644 index 0000000..e7e5857 --- /dev/null +++ b/0001-codec-vpx-Detect-libvpx-1.8.0.patch @@ -0,0 +1,32 @@ +From 5575fe3eb3fd46bada8662268b74d03493476a84 Mon Sep 17 00:00:00 2001 +From: Danny Milosavljevic +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 +--- + 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 f03c7fae625..59b3acdef74 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 }, + diff --git a/fix-build-with-fdk-2.0.patch b/fix-build-with-fdk-2.0.patch new file mode 100644 index 0000000..167e033 --- /dev/null +++ b/fix-build-with-fdk-2.0.patch @@ -0,0 +1,67 @@ +From: Antonio Larrosa +Subject: Fix building vlc with fdk-aac v2 + +Based on the patch at https://git.libav.org/?p=libav.git;a=commitdiff_plain;h=141c960e21d2860e354f9b90df136184dd00a9a8;hp=c8bca9fe466f810fd484e2c6db7ef7bc83b5a943 + +Index: vlc-3.0.6/modules/codec/fdkaac.c +=================================================================== +--- vlc-3.0.6.orig/modules/codec/fdkaac.c ++++ vlc-3.0.6/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_t + 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) { +@@ -353,21 +362,27 @@ static block_t *EncodeAudio(encoder_t *p + 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; diff --git a/vlc.changes b/vlc.changes index 78618e7..4e26fcd 100644 --- a/vlc.changes +++ b/vlc.changes @@ -1,8 +1,18 @@ +------------------------------------------------------------------- +Tue Feb 12 16:19:01 UTC 2019 - Antonio Larrosa + +- Add fix-build-with-fdk-2.0.patch to fix building vlc with + libfdk-aac v2 +- Add 0001-codec-vpx-Detect-libvpx-1.8.0.patch to fix building vlc + with libvpx 1.8.0 +- Add the libx26410b_plugin.so codec plugin when building with + BUILD_ORIG + ------------------------------------------------------------------- Thu Jan 10 20:48:42 UTC 2019 - seanlew@opensuse.org - Update to version 3.0.6: - + Core: + + Core: * Fix potential subtitle picture allocation failures + Codec: * Add support for 12 bits decoding of AV1 diff --git a/vlc.spec b/vlc.spec index 162a61d..6af8ae5 100644 --- a/vlc.spec +++ b/vlc.spec @@ -47,12 +47,16 @@ Patch0: vlc.a52.patch Patch1: vlc-allow-deprecated-fribidi.patch # PATCH-FIX-UPSTREAM vlc-lua-5.3.patch dimstar@opensuse.org -- Replace lua_optlong with lua_optinteger Patch2: vlc-lua-5.3.patch +# PATCH-FIX-UPSTREAM fix-build-with-fdk-2.0.patch -- Fix building vlc with libfdk-aac v2 +Patch3: fix-build-with-fdk-2.0.patch # PATCH-FEATURE-OPENSUSE vlc-projectM-qt5.patch -- Build against projectM-qt5; openSUSE provides projectM as -qt and -qt5 variant Patch100: vlc-projectM-qt5.patch # PATCH-FIX-UPSTREAM 0001-Fix-leaking-AvahiServiceResolver-in-the-error-paths.patch -- Fix some memleaks Patch101: 0001-Fix-leaking-AvahiServiceResolver-in-the-error-paths.patch # PATCH-FIX-UPSTREAM 0002-Add-Avahi-implementation-for-chromecast-renderer-dis.patch -- Use Avahi for discovery, microdns is not available Patch102: 0002-Add-Avahi-implementation-for-chromecast-renderer-dis.patch +# PATCH-FIX-UPSTREAM 0001-codec-vpx-Detect-libvpx-1.8.0.patch -- Fix building vlc with libvpx 1.8.0 +Patch103: 0001-codec-vpx-Detect-libvpx-1.8.0.patch BuildRequires: Mesa-devel BuildRequires: SDL-devel >= 1.2.10 BuildRequires: aalib-devel @@ -291,8 +295,8 @@ installed as a dependency. %package lang # FIXME: consider using %%lang_package macro Summary: Translations for package %{name} -Group: System/Localization # We do not want to require vlc, which is GUI based, but only vlc-noX +Group: System/Localization Requires: %{name}-noX = %{version} Supplements: packageand(bundle-lang-other:%{name}-noX) Provides: %{name}-lang-all = %{version} @@ -326,8 +330,8 @@ This package adds jack support to vlc via plugins. %if 0%{?BUILD_ORIG} %package codecs Summary: Additional codecs for the VLC media player -Group: Productivity/Multimedia/Video/Players # We require the unrestricted libavcodec - same ABI version we linked +Group: Productivity/Multimedia/Video/Players Requires: %(rpm --qf "%%{name}" -qf $(readlink -f %{_libdir}/libavcodec.so))(unrestricted) Requires: %{name}-noX = %{version} # We need the noX package first, as it contains vlc-cache-gen @@ -340,8 +344,8 @@ codecs that are not available in the stock openSUSE distribution. %package vdpau Summary: Additional vdpau codecs for the VLC media player -Group: Productivity/Multimedia/Video/Players # We require the unrestricted libavcodec - same ABI version we linked +Group: Productivity/Multimedia/Video/Players Requires: %(rpm --qf "%%{name}" -qf $(readlink -f %{_libdir}/libavcodec.so))(unrestricted) Requires: %{name}-codecs = %{version} Requires: %{name}-noX = %{version} @@ -361,8 +365,8 @@ Group: Productivity/Multimedia/Video/Players Requires: %{name}-noX = %{version}-%{release} # We need the noX package first, as it contains vlc-cache-gen Requires(post): %{name}-noX -Conflicts: %{conflicts}-qt Supplements: packageand(%{name}-noX:libqt5) +Conflicts: %{conflicts}-qt %description qt This subpackage provides a Qt interface for VLC and selects it by @@ -372,11 +376,13 @@ default when `vlc` is invoked from an X session. %setup -q %patch0 -p1 %patch1 -p1 +%patch3 -p1 %if 0%{?suse_version} > 1320 %patch100 -p1 %endif %patch101 -p1 %patch102 -p1 +%patch103 -p1 ### And LUA 5.3.1 has some more API changes if pkg-config --atleast-version 5.3.1 lua; then @@ -1105,6 +1111,7 @@ done %{_libdir}/vlc/plugins/codec/libfdkaac_plugin.so %{_libdir}/vlc/plugins/codec/libfaad_plugin.so %{_libdir}/vlc/plugins/codec/libx264_plugin.so +%{_libdir}/vlc/plugins/codec/libx26410b_plugin.so %{_libdir}/vlc/plugins/codec/libx265_plugin.so %{_libdir}/vlc/plugins/video_filter/libpostproc_plugin.so