From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 0ECC8138330 for ; Tue, 11 Oct 2016 03:16:46 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 12AE5E0B6C; Tue, 11 Oct 2016 03:16:44 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 5E1DBE0B6C for ; Tue, 11 Oct 2016 03:16:43 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 252C2341640 for ; Tue, 11 Oct 2016 03:16:41 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id BB3172F9 for ; Tue, 11 Oct 2016 03:16:37 +0000 (UTC) From: "Jory Pratt" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jory Pratt" Message-ID: <1476155767.e1246b8e8b5a7b8025ee424b3a2a5c3f4117567a.anarchy@gentoo> Subject: [gentoo-commits] dev/anarchy:master commit in: media-video/vlc/files/, media-video/vlc/ X-VCS-Repository: dev/anarchy X-VCS-Files: media-video/vlc/Manifest media-video/vlc/files/qt4-select.patch media-video/vlc/files/vlc-2.1.0-TomWij-bisected-PA-broken-underflow.patch media-video/vlc/files/vlc-2.1.0-fix-libtremor-libs.patch media-video/vlc/files/vlc-2.1.0-libva-1.2.1-compat.patch media-video/vlc/files/vlc-2.2.2-qt5widgets.patch media-video/vlc/files/vlc-2.2.4-ffmpeg3.patch media-video/vlc/files/vlc-2.2.4-gcc6-fixup.patch media-video/vlc/files/vlc-2.2.4-relax_ffmpeg.patch media-video/vlc/files/vlc-9999-libva-1.2.1-compat.patch media-video/vlc/vlc-2.2.4.ebuild X-VCS-Directories: media-video/vlc/ media-video/vlc/files/ X-VCS-Committer: anarchy X-VCS-Committer-Name: Jory Pratt X-VCS-Revision: e1246b8e8b5a7b8025ee424b3a2a5c3f4117567a X-VCS-Branch: master Date: Tue, 11 Oct 2016 03:16:37 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 7f128c4a-3e9c-4209-847a-1bda67f2a37c X-Archives-Hash: 48802728760d750c47d86411c80f6c46 commit: e1246b8e8b5a7b8025ee424b3a2a5c3f4117567a Author: Jory A. Pratt gentoo org> AuthorDate: Tue Oct 11 03:16:07 2016 +0000 Commit: Jory Pratt gentoo org> CommitDate: Tue Oct 11 03:16:07 2016 +0000 URL: https://gitweb.gentoo.org/dev/anarchy.git/commit/?id=e1246b8e media-video/vlc : Fix 2.2.4 to build wih gcc-6.2 media-video/vlc/Manifest | 11 + media-video/vlc/files/qt4-select.patch | 51 ++ ...2.1.0-TomWij-bisected-PA-broken-underflow.patch | 23 + .../vlc/files/vlc-2.1.0-fix-libtremor-libs.patch | 11 + .../vlc/files/vlc-2.1.0-libva-1.2.1-compat.patch | 12 + media-video/vlc/files/vlc-2.2.2-qt5widgets.patch | 13 + media-video/vlc/files/vlc-2.2.4-ffmpeg3.patch | 160 +++++++ media-video/vlc/files/vlc-2.2.4-gcc6-fixup.patch | 293 ++++++++++++ media-video/vlc/files/vlc-2.2.4-relax_ffmpeg.patch | 45 ++ .../vlc/files/vlc-9999-libva-1.2.1-compat.patch | 12 + media-video/vlc/vlc-2.2.4.ebuild | 512 +++++++++++++++++++++ 11 files changed, 1143 insertions(+) diff --git a/media-video/vlc/Manifest b/media-video/vlc/Manifest new file mode 100644 index 0000000..c401e20 --- /dev/null +++ b/media-video/vlc/Manifest @@ -0,0 +1,11 @@ +AUX qt4-select.patch 2171 SHA256 30c76f06553d0a341224009c3130e54624a266cd77a034340e39d2b922c60d69 SHA512 0c3fab4457f1b8c9f1c2c9b690c1a137e1544a09a710e24ba9c8e228f0490ec27030846974610b8976bfca77e03054c5254719836cabc695a527f095659a651d WHIRLPOOL a4d8a2689a0e034f26f0e2d52275004f21a20f0a553050ce7483b1ab5d42faa8f465ff4dfed08a5defc25917d8f225922d14eaea5adb53d3556b6e41c5704a37 +AUX vlc-2.1.0-TomWij-bisected-PA-broken-underflow.patch 700 SHA256 91752f1ed1fbe8a2fcc78336a0725e1450946bab8085a4efce85a076dff40b87 SHA512 c3aa82ba9252f87d8f87c0bbfed7e0cdbd93c4f454e0ca6a9d73346e2efa294864af7eea1ea76b504354fb1baf5378cf626b35dcbfba3d888dbf0168ddfbed13 WHIRLPOOL 87c5017c8cdc1ad8cb313b6342f89af7ca7e90b20f151dd226ad8863407dae4cefb5934040154020778d3eb5dc78c5be43ae1e8e33fd0e823628c69c8cac7e61 +AUX vlc-2.1.0-fix-libtremor-libs.patch 453 SHA256 5b2d4272b0258b30d1e34717ad83ebe2bcea78a5247798a74c0b86ace6d39463 SHA512 6c25995a518aeb1d501fa217d897962e1e81f66a4f28b6bb164dde3afe7f91772bb608f946d802857fa9a272cab1f88d3990d582be89ab8e37b1a8b6681798ae WHIRLPOOL 39d9d1670e244169087ecc81654b1d6407c9e5f0f0da1bb1b15d7c89a7dab232b9a174c2a5e9ed2586a57a370f3cd9d2c9434381387a1fbc70b7f7bd8de2ef85 +AUX vlc-2.1.0-libva-1.2.1-compat.patch 272 SHA256 fe9a4fdfe5447c869ec881f9e30236486a885b9f64b4c80004db7964b2b931c1 SHA512 74cba8136b2abb7a78b5ee8c8b5a9b3509a4a16ff9d4f136a3a7e2d6ff634ce20e34b8d140810ac63dd6cd3115d71cbb87a6e213fb172485494e55ade1b5230a WHIRLPOOL 1d2e747f4097c7903b798d7dfd17e11de41c01e903afda0b2c766ef5d7977da32362c52e5bc41c93a1f801a93c857c08d2cee3840f76a55afe0b2a768250073e +AUX vlc-2.2.2-qt5widgets.patch 603 SHA256 b23c3bf441ac9bef25ca053a8bccec2652c9a251889d38624877ffc5562218ca SHA512 b5d8946406e84bce240376015ed994d6265d07fe9b777fd05c0f722142e99502bd129ec4acfe2cafa7a6dd98c9612913fa8644109489fa48dab6dc5522601050 WHIRLPOOL a00159f261e617f8e0e5c6b51b94428ba1080eb6107f13ce5b9506ae460437f9246ab79795a3443289cba2db36c7a6c2d5f585f6f888ca4881625856ce0ffaf3 +AUX vlc-2.2.4-ffmpeg3.patch 6377 SHA256 61c21d875d3ea5e0475194cfb199e2a95f20a5357bb2a0001d86dd1f4a5d3652 SHA512 efede86f7d4c8a475f14c88405d4f9810784b93b8dbee8a21ca2f59b4a62ba008996fbd72ad77300b76a6faa328720a7b99afdd753480f2a17dc25204e52d2ee WHIRLPOOL 49286dda70c1e510c8727f77bfec43786d0ae2b477f528032bf45e1fb9f34f9943e4a213c26f3c06e370c1e4856c16acb5d933cc91590d145a985fde81acbd09 +AUX vlc-2.2.4-gcc6-fixup.patch 8886 SHA256 480394a17f57c9bb1df1bc8f0ba3bf04afc7f09e8b8ac8b7099bc1f5dd55c57c SHA512 f0eb1fc5203c80ef5d1c243284cba62757051c288ca3013532c89f1a9febaa853827b564cf69edf31e8db48f7faab9f2ef71a9f0d110ac091d490676294a9c86 WHIRLPOOL d7246e1618b4e568c3befdb72eef078430d131f6ccc59f71993be3b0a1e120d93af674a2fbe41393d9ba4a73f8e9bfe8d2be8e65f0d9b7c86de9cc8d7d9246fa +AUX vlc-2.2.4-relax_ffmpeg.patch 1686 SHA256 3b76abff4553f581457252b6b98d3c3a537c91cd7b981f2f5a6772eb6597fd18 SHA512 a15862d6ac60575c0c338faff6052e3c28c4bd75f86f37ff8fbe36a64bc1a82689c56b2dc19f05109fc0913b85aab7ba28a94bfdd5fdd0e3c87cb7e6e58d1caa WHIRLPOOL aefdcf024869e7b074f3bc64ca12d187967edcbe31f03bb72a9d9dbb82be8453ec4866fae655a77ce4f500f8cae80e583de6e33b012c1f5ff1cc549a298a0596 +AUX vlc-9999-libva-1.2.1-compat.patch 291 SHA256 54eb34b32afe6876fa40abac2cb97097030f1d372bb81b63ef88231a17e5f237 SHA512 47b9d3f7a5e7c90045acac3b3253feb927da26646b6a457655669c1ab18f6a0e027160285695dc06642e6117ed1fcd87db90ae1f409e8fee737a2a41e80e1968 WHIRLPOOL df5cfdb4ba36ccd92e79de7b913b14c5416aca0834025dc51f8178db6c88f5eecb332ae7096800607d6f7526a56c7fb94e2f593bc0c0e19f643428bcd3eb5868 +DIST vlc-2.2.4.tar.xz 22199316 SHA256 1632e91d2a0087e0ef4c3fb4c95c3c2890f7715a9d1d43ffd46329f428cf53be SHA512 2fc1fe957ba7903f2e0c9640884ed850cb10a60132d80658dee8da0b5abaf4a6ccdf95fa2b8c0a4a827be5e7e40341318bce44662a5248e04442f4779010f85c WHIRLPOOL 0d59d9c2a623f72a6c708f9face6f29b7c7e71a9b38faf3717b8f223641c6f599d1407a4976874226dbbd9e553ec528249dc4f301c5682bfb49f5745468934b2 +EBUILD vlc-2.2.4.ebuild 15720 SHA256 f3a7086654c6fdec8e22b5c5ae1fd911d15d83f79a51fd6c4686398e17d87c55 SHA512 a0a2b29f8b34003a1e956df380146f209eb49ce5368b150605239964520f86d5b70a42b87031b5e27fd490e7982e6c1aa02c3cfd43a290783439af9a78f853ee WHIRLPOOL 74a90f06208bbdc726a0e78405e77f316b78a4a8b705c06cafe883fcd7b0ef6267e32e254b016310a52f01097b0044482f2087bc3545013da1e7bcc18504fbf0 diff --git a/media-video/vlc/files/qt4-select.patch b/media-video/vlc/files/qt4-select.patch new file mode 100644 index 0000000..fb1526a --- /dev/null +++ b/media-video/vlc/files/qt4-select.patch @@ -0,0 +1,51 @@ +https://gist.github.com/karolherbst/fb9e3d8f6ba05f1f5d54 +For use until upstream ever accepts this patch or fixes it themsleves +--- a/configure.ac ++++ b/configure.ac +@@ -3709,7 +3709,8 @@ + ]) + ]) + AS_IF([test "${enable_qt}" != "no"], [ +- PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [ ++ AS_IF([test "${enable_qt}" != "4"], [ ++ PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [ + PKG_CHECK_MODULES([QTX11], [Qt5X11Extras], [ + VLC_ADD_LIBS([qt4],[${QTX11_LIBS}]) + VLC_ADD_CXXFLAGS([qt4],[${QTX11_CFLAGS} -DQT5_HAS_X11]) +@@ -3721,20 +3722,23 @@ + AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) + AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) + AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) ++ enable_qt="5" +- ], [ +- PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [ +- AS_IF([test -n "${enable_qt}"],[ +- AC_MSG_ERROR([${QT_PKG_ERRORS}.]) +- ],[ +- AC_MSG_WARN([${QT_PKG_ERRORS}.]) +- ]) +- enable_qt="no" ++ ]) ++ ]) ++ AS_IF([test "${enable_qt}" != "5"], [ ++ PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [ ++ AS_IF([test -n "${enable_qt}"],[ ++ AC_MSG_ERROR([${QT_PKG_ERRORS}.]) ++ ],[ ++ AC_MSG_WARN([${QT_PKG_ERRORS}.]) + ]) +- QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)" +- AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) +- AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin]) +- AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) ++ enable_qt="no" + ]) ++ QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)" ++ AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) ++ AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin]) ++ AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) ++ ]) + ]) + AS_IF([test "${enable_qt}" != "no"], [ + VLC_ADD_PLUGIN([qt4]) + diff --git a/media-video/vlc/files/vlc-2.1.0-TomWij-bisected-PA-broken-underflow.patch b/media-video/vlc/files/vlc-2.1.0-TomWij-bisected-PA-broken-underflow.patch new file mode 100644 index 0000000..3163410 --- /dev/null +++ b/media-video/vlc/files/vlc-2.1.0-TomWij-bisected-PA-broken-underflow.patch @@ -0,0 +1,23 @@ +index 2debbcd..72e7fcf 100644 +--- a/modules/audio_output/pulse.c ++++ b/modules/audio_output/pulse.c +@@ -472,8 +472,17 @@ static void stream_underflow_cb(pa_stream *s, void *userdata) + { ++ uint32_t rate = pa_stream_get_sample_spec(s)->rate; + audio_output_t *aout = userdata; + +- msg_Dbg(aout, "underflow"); +- (void) s; ++ msg_Warn(aout, "underflow"); ++ stream_stop(s, aout); ++ ++ aout_sys_t *sys = aout->sys; ++ sys->first_pts = VLC_TS_INVALID; ++ ++ pa_operation *op = pa_stream_update_sample_rate(s, rate, NULL, NULL); ++ if (unlikely(op == NULL)) ++ return; ++ pa_operation_unref(op); + } + + static int stream_wait(pa_stream *stream, pa_threaded_mainloop *mainloop) diff --git a/media-video/vlc/files/vlc-2.1.0-fix-libtremor-libs.patch b/media-video/vlc/files/vlc-2.1.0-fix-libtremor-libs.patch new file mode 100644 index 0000000..8a58969 --- /dev/null +++ b/media-video/vlc/files/vlc-2.1.0-fix-libtremor-libs.patch @@ -0,0 +1,11 @@ +--- a/modules/codec/Makefile.am ++++ b/modules/codec/Makefile.am +@@ -215,7 +215,7 @@ + libtremor_plugin_la_SOURCES = codec/vorbis.c + libtremor_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DMODULE_NAME_IS_tremor + libtremor_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)' +-libtremor_plugin_la_LIBADD = -lvorbisdec -logg ++libtremor_plugin_la_LIBADD = $(VORBIS_LIBS) $(OGG_LIBS) + EXTRA_LTLIBRARIES += libtremor_plugin.la + codec_LTLIBRARIES += $(LTLIBtremor) + diff --git a/media-video/vlc/files/vlc-2.1.0-libva-1.2.1-compat.patch b/media-video/vlc/files/vlc-2.1.0-libva-1.2.1-compat.patch new file mode 100644 index 0000000..db73a4e --- /dev/null +++ b/media-video/vlc/files/vlc-2.1.0-libva-1.2.1-compat.patch @@ -0,0 +1,12 @@ +--- a/modules/codec/avcodec/vaapi.c ++++ b/modules/codec/avcodec/vaapi.c +@@ -36,6 +36,9 @@ + #include + #include + #include ++#if VA_MINOR_VERSION >= 34 ++# include ++#endif + + #include "avcodec.h" + #include "va.h" \ No newline at end of file diff --git a/media-video/vlc/files/vlc-2.2.2-qt5widgets.patch b/media-video/vlc/files/vlc-2.2.2-qt5widgets.patch new file mode 100644 index 0000000..a024d00 --- /dev/null +++ b/media-video/vlc/files/vlc-2.2.2-qt5widgets.patch @@ -0,0 +1,13 @@ +--- vlc-2.2.2/configure.ac ++++ vlc-2.2.2/configure.ac +@@ -3754,10 +3754,6 @@ + AC_MSG_WARN([Not building Qt Interface with X11 helpers.]) + ]) + +- PKG_CHECK_EXISTS([Qt5Core >= 5.5.0 Qt5Core < 5.6.0], [ +- AC_MSG_ERROR(["You cannot build VLC with Qt-5.5.0. You need to backport I78ef29975181ee22429c9bd4b11d96d9e68b7a9c"]) +- ]) +- + QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)" + QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)" + AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"]) diff --git a/media-video/vlc/files/vlc-2.2.4-ffmpeg3.patch b/media-video/vlc/files/vlc-2.2.4-ffmpeg3.patch new file mode 100644 index 0000000..3bc5954 --- /dev/null +++ b/media-video/vlc/files/vlc-2.2.4-ffmpeg3.patch @@ -0,0 +1,160 @@ +Index: vlc-2.2.4/configure.ac +=================================================================== +--- vlc-2.2.4.orig/configure.ac ++++ vlc-2.2.4/configure.ac +@@ -2323,8 +2323,8 @@ AC_ARG_ENABLE(avcodec, + [ --enable-avcodec libavcodec codec (default enabled)]) + AS_IF([test "${enable_avcodec}" != "no"], [ + PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 53.34.0 libavutil >= 51.22.0], [ +- PKG_CHECK_EXISTS([libavutil < 55],, [ +- AC_MSG_ERROR([libavutil versions 55 and later are not supported.]) ++ PKG_CHECK_EXISTS([libavutil < 56],, [ ++ AC_MSG_ERROR([libavutil versions 56 and later are not supported.]) + ]) + VLC_SAVE_FLAGS + CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}" +Index: vlc-2.2.4/modules/codec/avcodec/audio.c +=================================================================== +--- vlc-2.2.4.orig/modules/codec/avcodec/audio.c ++++ vlc-2.2.4/modules/codec/avcodec/audio.c +@@ -39,8 +39,6 @@ + #include + #include + +-#include +- + #include "avcodec.h" + + /***************************************************************************** +Index: vlc-2.2.4/modules/codec/avcodec/encoder.c +=================================================================== +--- vlc-2.2.4.orig/modules/codec/avcodec/encoder.c ++++ vlc-2.2.4/modules/codec/avcodec/encoder.c +@@ -41,7 +41,6 @@ + #include + + #include +-#include + + #include "avcodec.h" + #include "avcommon.h" +@@ -311,7 +310,7 @@ int OpenEncoder( vlc_object_t *p_this ) + else if( !GetFfmpegCodec( p_enc->fmt_out.i_codec, &i_cat, &i_codec_id, + &psz_namecodec ) ) + { +- if( FindFfmpegChroma( p_enc->fmt_out.i_codec ) == PIX_FMT_NONE ) ++ if( FindFfmpegChroma( p_enc->fmt_out.i_codec ) == AV_PIX_FMT_NONE ) + return VLC_EGENERIC; /* handed chroma output */ + + i_cat = VIDEO_ES; +@@ -555,7 +554,7 @@ int OpenEncoder( vlc_object_t *p_this ) + + if( p_codec->pix_fmts ) + { +- const enum PixelFormat *p = p_codec->pix_fmts; ++ const enum AVPixelFormat *p = p_codec->pix_fmts; + for( ; *p != -1; p++ ) + { + if( *p == p_context->pix_fmt ) break; +@@ -1017,7 +1016,7 @@ errmsg: + } + } + +- p_sys->frame = avcodec_alloc_frame(); ++ p_sys->frame = av_frame_alloc(); + if( !p_sys->frame ) + { + goto error; +@@ -1088,7 +1087,7 @@ static block_t *EncodeVideo( encoder_t * + AVFrame *frame = NULL; + if( likely(p_pict) ) { + frame = p_sys->frame; +- avcodec_get_frame_defaults( frame ); ++ av_frame_unref( frame ); + for( i_plane = 0; i_plane < p_pict->i_planes; i_plane++ ) + { + p_sys->frame->data[i_plane] = p_pict->p[i_plane].p_pixels; +@@ -1329,7 +1328,7 @@ static block_t *handle_delay_buffer( enc + //How much we need to copy from new packet + const int leftover = leftover_samples * p_sys->p_context->channels * p_sys->i_sample_bytes; + +- avcodec_get_frame_defaults( p_sys->frame ); ++ av_frame_unref( p_sys->frame ); + p_sys->frame->format = p_sys->p_context->sample_fmt; + p_sys->frame->nb_samples = leftover_samples + p_sys->i_samples_delay; + +@@ -1451,7 +1450,7 @@ static block_t *EncodeAudio( encoder_t * + while( ( p_aout_buf->i_nb_samples >= p_sys->i_frame_size ) || + ( p_sys->b_variable && p_aout_buf->i_nb_samples ) ) + { +- avcodec_get_frame_defaults( p_sys->frame ); ++ av_frame_unref( p_sys->frame ); + if( p_sys->b_variable ) + p_sys->frame->nb_samples = p_aout_buf->i_nb_samples; + else +Index: vlc-2.2.4/modules/codec/avcodec/vaapi.c +=================================================================== +--- vlc-2.2.4.orig/modules/codec/avcodec/vaapi.c ++++ vlc-2.2.4/modules/codec/avcodec/vaapi.c +@@ -598,7 +598,7 @@ static int Create( vlc_va_t *p_va, AVCod + return err; + + /* Only VLD supported */ +- p_va->pix_fmt = PIX_FMT_VAAPI_VLD; ++ p_va->pix_fmt = AV_PIX_FMT_VAAPI_VLD; + p_va->setup = Setup; + p_va->get = Get; + p_va->release = Release; +Index: vlc-2.2.4/modules/codec/avcodec/video.c +=================================================================== +--- vlc-2.2.4.orig/modules/codec/avcodec/video.c ++++ vlc-2.2.4/modules/codec/avcodec/video.c +@@ -108,8 +108,8 @@ static int lavc_GetFrame(struct AVCodecC + static int ffmpeg_GetFrameBuf ( struct AVCodecContext *, AVFrame * ); + static void ffmpeg_ReleaseFrameBuf( struct AVCodecContext *, AVFrame * ); + #endif +-static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *, +- const enum PixelFormat * ); ++static enum AVPixelFormat ffmpeg_GetFormat( AVCodecContext *, ++ const enum AVPixelFormat * ); + + static uint32_t ffmpeg_CodecTag( vlc_fourcc_t fcc ) + { +@@ -234,7 +234,7 @@ int InitVideoDec( decoder_t *p_dec, AVCo + p_sys->p_codec = p_codec; + p_sys->i_codec_id = i_codec_id; + p_sys->psz_namecodec = psz_namecodec; +- p_sys->p_ff_pic = avcodec_alloc_frame(); ++ p_sys->p_ff_pic = av_frame_alloc(); + p_sys->b_delayed_open = true; + p_sys->p_va = NULL; + vlc_sem_init( &p_sys->sem_mt, 0 ); +@@ -446,7 +446,7 @@ int InitVideoDec( decoder_t *p_dec, AVCo + if( ffmpeg_OpenCodec( p_dec ) < 0 ) + { + msg_Err( p_dec, "cannot open codec (%s)", p_sys->psz_namecodec ); +- avcodec_free_frame( &p_sys->p_ff_pic ); ++ av_frame_free( &p_sys->p_ff_pic ); + vlc_sem_destroy( &p_sys->sem_mt ); + free( p_sys ); + return VLC_EGENERIC; +@@ -826,7 +826,7 @@ void EndVideoDec( decoder_t *p_dec ) + wait_mt( p_sys ); + + if( p_sys->p_ff_pic ) +- avcodec_free_frame( &p_sys->p_ff_pic ); ++ av_frame_free( &p_sys->p_ff_pic ); + + if( p_sys->p_va ) + vlc_va_Delete( p_sys->p_va ); +@@ -1313,8 +1313,8 @@ static void ffmpeg_ReleaseFrameBuf( stru + } + #endif + +-static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, +- const enum PixelFormat *pi_fmt ) ++static enum AVPixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, ++ const enum AVPixelFormat *pi_fmt ) + { + decoder_t *p_dec = p_context->opaque; + decoder_sys_t *p_sys = p_dec->p_sys; diff --git a/media-video/vlc/files/vlc-2.2.4-gcc6-fixup.patch b/media-video/vlc/files/vlc-2.2.4-gcc6-fixup.patch new file mode 100644 index 0000000..73be43c --- /dev/null +++ b/media-video/vlc/files/vlc-2.2.4-gcc6-fixup.patch @@ -0,0 +1,293 @@ +From 8b0a359be21c8b66c7f7f5d34b85df3cf6689035 Mon Sep 17 00:00:00 2001 +From: Francois Cartegnie +Date: Sun, 24 Jul 2016 12:59:20 +0200 +Subject: [PATCH] Fix build using old GCC intrinsics + +As the 2.2 headers are still using vlc_atomics (picture) +we cannot have a way to avoid collisions with early +or late inclusion when using GCC >= 4.7 + +Conditionals in vlc_atomic won't work. + +Happens in ProjectM and Qt5. + +Signed-off-by: Jean-Baptiste Kempf +--- + modules/gui/qt4/actions_manager.cpp | 2 ++ + modules/gui/qt4/adapters/seekpoints.cpp | 4 +-- + modules/gui/qt4/adapters/seekpoints.hpp | 4 +-- + modules/gui/qt4/components/controller.cpp | 2 ++ + .../gui/qt4/components/playlist/playlist_model.hpp | 4 +-- + modules/gui/qt4/components/playlist/views.cpp | 6 ++++ + modules/gui/qt4/dialogs/messages.cpp | 2 ++ + modules/gui/qt4/dialogs/vlm.cpp | 4 --- + modules/gui/qt4/dialogs/vlm.hpp | 4 ++- + modules/gui/qt4/input_manager.cpp | 2 ++ + modules/gui/qt4/input_manager.hpp | 3 +- + modules/gui/qt4/menus.cpp | 2 ++ + modules/gui/qt4/qt4.hpp | 32 ++++++++++++++++++---- + modules/gui/qt4/util/pictureflow.cpp | 2 ++ + modules/visualization/projectm.cpp | 4 +++ + 15 files changed, 56 insertions(+), 21 deletions(-) + +diff --git a/modules/gui/qt4/actions_manager.cpp b/modules/gui/qt4/actions_manager.cpp +index eff40d9..b7ca967 100644 +--- a/modules/gui/qt4/actions_manager.cpp ++++ b/modules/gui/qt4/actions_manager.cpp +@@ -25,6 +25,8 @@ + # include "config.h" + #endif + ++#include "qt4.hpp" ++ + #include + #include + +diff --git a/modules/gui/qt4/adapters/seekpoints.cpp b/modules/gui/qt4/adapters/seekpoints.cpp +index fbf2957..a3564bb 100644 +--- a/modules/gui/qt4/adapters/seekpoints.cpp ++++ b/modules/gui/qt4/adapters/seekpoints.cpp +@@ -19,14 +19,12 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + ++#include "seekpoints.hpp" + + #include "recents.hpp" + #include "dialogs_provider.hpp" + #include "menus.hpp" + +-#include "seekpoints.hpp" +- +-#include "qt4.hpp" + #include "input_manager.hpp" + + SeekPoints::SeekPoints( QObject *parent, intf_thread_t *p_intf_ ) : +diff --git a/modules/gui/qt4/adapters/seekpoints.hpp b/modules/gui/qt4/adapters/seekpoints.hpp +index 0083989..bbb9214 100644 +--- a/modules/gui/qt4/adapters/seekpoints.hpp ++++ b/modules/gui/qt4/adapters/seekpoints.hpp +@@ -22,9 +22,7 @@ + #ifndef SEEKPOINTS_HPP + #define SEEKPOINTS_HPP + +-#ifdef HAVE_CONFIG_H +-#include "config.h" +-#endif ++#include "qt4.hpp" + + #include + #include +diff --git a/modules/gui/qt4/components/controller.cpp b/modules/gui/qt4/components/controller.cpp +index d93e0db..c43d929 100644 +--- a/modules/gui/qt4/components/controller.cpp ++++ b/modules/gui/qt4/components/controller.cpp +@@ -26,6 +26,8 @@ + # include "config.h" + #endif + ++#include "qt4.hpp" ++ + #include /* vout_thread_t for FSC */ + + /* Widgets */ +diff --git a/modules/gui/qt4/components/playlist/playlist_model.hpp b/modules/gui/qt4/components/playlist/playlist_model.hpp +index f9d1d0c..1f71ac9 100644 +--- a/modules/gui/qt4/components/playlist/playlist_model.hpp ++++ b/modules/gui/qt4/components/playlist/playlist_model.hpp +@@ -25,9 +25,7 @@ + #ifndef _PLAYLIST_MODEL_H_ + #define _PLAYLIST_MODEL_H_ + +-#ifdef HAVE_CONFIG_H +-# include "config.h" +-#endif ++#include "qt4.hpp" + + #include + #include +diff --git a/modules/gui/qt4/components/playlist/views.cpp b/modules/gui/qt4/components/playlist/views.cpp +index 59f6535..0066205 100644 +--- a/modules/gui/qt4/components/playlist/views.cpp ++++ b/modules/gui/qt4/components/playlist/views.cpp +@@ -21,6 +21,12 @@ + * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include "qt4.hpp" ++ + #include "components/playlist/views.hpp" + #include "components/playlist/vlc_model.hpp" /* VLCModel */ + #include "components/playlist/sorting.h" /* Columns List */ +diff --git a/modules/gui/qt4/dialogs/messages.cpp b/modules/gui/qt4/dialogs/messages.cpp +index 30793a2..9c79c99 100644 +--- a/modules/gui/qt4/dialogs/messages.cpp ++++ b/modules/gui/qt4/dialogs/messages.cpp +@@ -24,6 +24,8 @@ + # include "config.h" + #endif + ++#include "qt4.hpp" ++ + #include "dialogs/messages.hpp" + + #include +diff --git a/modules/gui/qt4/dialogs/vlm.cpp b/modules/gui/qt4/dialogs/vlm.cpp +index 0da88cc..595f015 100644 +--- a/modules/gui/qt4/dialogs/vlm.cpp ++++ b/modules/gui/qt4/dialogs/vlm.cpp +@@ -23,10 +23,6 @@ + * Foundation, Inc., 51 Franklin street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + +-#ifdef HAVE_CONFIG_H +-# include "config.h" +-#endif +- + #include "dialogs/vlm.hpp" + + #ifdef ENABLE_VLM +diff --git a/modules/gui/qt4/dialogs/vlm.hpp b/modules/gui/qt4/dialogs/vlm.hpp +index a3c6e5d..dcf7110 100644 +--- a/modules/gui/qt4/dialogs/vlm.hpp ++++ b/modules/gui/qt4/dialogs/vlm.hpp +@@ -25,8 +25,10 @@ + #ifndef QVLC_VLM_DIALOG_H_ + #define QVLC_VLM_DIALOG_H_ 1 + ++#include "qt4.hpp" ++ + #ifdef HAVE_CONFIG_H +-# include "config.h" ++#include "config.h" + #endif + + #ifdef ENABLE_VLM +diff --git a/modules/gui/qt4/input_manager.cpp b/modules/gui/qt4/input_manager.cpp +index fd45f4a..c50cb6c 100644 +--- a/modules/gui/qt4/input_manager.cpp ++++ b/modules/gui/qt4/input_manager.cpp +@@ -30,6 +30,8 @@ + # include "config.h" + #endif + ++#include "qt4.hpp" ++ + #include "input_manager.hpp" + #include "recents.hpp" + +diff --git a/modules/gui/qt4/input_manager.hpp b/modules/gui/qt4/input_manager.hpp +index 7d3b76a..4fbecbb 100644 +--- a/modules/gui/qt4/input_manager.hpp ++++ b/modules/gui/qt4/input_manager.hpp +@@ -29,9 +29,10 @@ + # include "config.h" + #endif + ++#include "qt4.hpp" ++ + #include + +-#include "qt4.hpp" + #include "util/singleton.hpp" + #include "adapters/variables.hpp" + +diff --git a/modules/gui/qt4/menus.cpp b/modules/gui/qt4/menus.cpp +index 116e98c..46240b0 100644 +--- a/modules/gui/qt4/menus.cpp ++++ b/modules/gui/qt4/menus.cpp +@@ -34,6 +34,8 @@ + # include "config.h" + #endif + ++#include "qt4.hpp" ++ + #include + #include + #include /* vout_thread_t */ +diff --git a/modules/gui/qt4/qt4.hpp b/modules/gui/qt4/qt4.hpp +index 44d7db6..5aec957 100644 +--- a/modules/gui/qt4/qt4.hpp ++++ b/modules/gui/qt4/qt4.hpp +@@ -29,12 +29,7 @@ + # include "config.h" + #endif + +-#include /* VLC_COMMON_MEMBERS for vlc_interface.h */ +-#include /* intf_thread_t */ +-#include /* playlist_t */ +- +-#define QT_NO_CAST_TO_ASCII +-#include ++#include + + #if ( QT_VERSION < 0x040600 ) + # error Update your Qt version to at least 4.6.0 +@@ -43,6 +38,31 @@ + #define HAS_QT47 ( QT_VERSION >= 0x040700 ) + #define HAS_QT5 ( QT_VERSION >= 0x050000 ) + ++#if HAS_QT5 ++ #include ++ #if defined(Q_COMPILER_ATOMICS) && \ ++ ( __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7 ) ) ++ #define VLC_ATOMIC_H ++ #include ++ using namespace std; ++ # define atomic_store(object,desired) \ ++ do { \ ++ *(object) = (desired); \ ++ __sync_synchronize(); \ ++ } while (0) ++ ++ # define atomic_load(object) \ ++ (__sync_synchronize(), *(object)) ++ #endif ++#endif ++ ++#include /* VLC_COMMON_MEMBERS for vlc_interface.h */ ++#include /* intf_thread_t */ ++#include /* playlist_t */ ++ ++#define QT_NO_CAST_TO_ASCII ++#include ++ + enum { + DialogEventTypeOffset = 0, + IMEventTypeOffset = 100, +diff --git a/modules/gui/qt4/util/pictureflow.cpp b/modules/gui/qt4/util/pictureflow.cpp +index 9318953..a7e6a01 100644 +--- a/modules/gui/qt4/util/pictureflow.cpp ++++ b/modules/gui/qt4/util/pictureflow.cpp +@@ -29,6 +29,8 @@ + THE SOFTWARE. + */ + ++#include "qt4.hpp" ++ + #include "pictureflow.hpp" + + #include +diff --git a/modules/visualization/projectm.cpp b/modules/visualization/projectm.cpp +index e80fbf4..96d532d 100644 +--- a/modules/visualization/projectm.cpp ++++ b/modules/visualization/projectm.cpp +@@ -30,6 +30,10 @@ + #endif + + #include ++#if defined(__GNUC__) && \ ++ ( __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7 ) ) ++ #define VLC_ATOMIC_H /* Ensure C atomics wont collide with old intrinsics */ ++#endif + + #include + #include +-- +2.8.1 + + diff --git a/media-video/vlc/files/vlc-2.2.4-relax_ffmpeg.patch b/media-video/vlc/files/vlc-2.2.4-relax_ffmpeg.patch new file mode 100644 index 0000000..218af58 --- /dev/null +++ b/media-video/vlc/files/vlc-2.2.4-relax_ffmpeg.patch @@ -0,0 +1,45 @@ +commit b8869f97ea66ac7ec9912a74c2e8b5e15daf7752 +Author: Rafaël Carré +Date: Fri Feb 26 00:36:26 2016 +0000 + + Relax requirements for FFmpeg hwaccel + + It doesn't error out anymore since 5edd1f62ca1 + +Index: vlc-2.2.4/configure.ac +=================================================================== +--- vlc-2.2.4.orig/configure.ac ++++ vlc-2.2.4/configure.ac +@@ -2383,7 +2383,9 @@ AS_IF([test "${have_vaapi}" = "yes" -a " + case "${avfork}" in + ffmpeg) + PKG_CHECK_EXISTS([libavcodec >= 57.10.100], [ +- AC_MSG_ERROR([VA API requires FFmpeg libavcodec < 57.10 or libav.]) ++ PKG_CHECK_EXISTS([libavcodec <= 57.12.100], [ ++ AC_MSG_ERROR([VA API requires FFmpeg libavcodec < 57.10 or > 57.12 or libav.]) ++ ]) + ]) + ;; + esac +@@ -2417,7 +2419,9 @@ AS_IF([test "${enable_dxva2}" != "no"], + case "${avfork}" in + ffmpeg) + PKG_CHECK_EXISTS([libavcodec >= 57.10.100], [ +- AC_MSG_ERROR([DXVA2 requires FFmpeg libavcodec < 57.10 or libav.]) ++ PKG_CHECK_EXISTS([libavcodec <= 57.12.100], [ ++ AC_MSG_ERROR([DXVA2 requires FFmpeg libavcodec < 57.10 or > 57.12 or libav.]) ++ ]) + ]) + ;; + esac +@@ -3181,7 +3185,9 @@ AS_IF([test "${have_vdpau}" = "yes" -a " + libav) av_vdpau_ver="55.26.0" ;; + ffmpeg) av_vdpau_ver="55.42.100" + PKG_CHECK_EXISTS([libavcodec >= 57.10.100], [ +- AC_MSG_ERROR([VDPAU requires FFmpeg libavcodec < 57.10 or libav.]) ++ PKG_CHECK_EXISTS([libavcodec <= 57.12.100], [ ++ AC_MSG_ERROR([VDPAU requires FFmpeg libavcodec < 57.10 or > 57.12 or libav.]) ++ ]) + ]) + ;; + esac diff --git a/media-video/vlc/files/vlc-9999-libva-1.2.1-compat.patch b/media-video/vlc/files/vlc-9999-libva-1.2.1-compat.patch new file mode 100644 index 0000000..adfdefe --- /dev/null +++ b/media-video/vlc/files/vlc-9999-libva-1.2.1-compat.patch @@ -0,0 +1,12 @@ +--- a/modules/codec/avcodec/vaapi.c ++++ b/modules/codec/avcodec/vaapi.c +@@ -34,6 +34,9 @@ + #ifdef VLC_VA_BACKEND_XLIB + # include + # include ++#if VA_MINOR_VERSION >= 34 ++# include ++#endif + #endif + #ifdef VLC_VA_BACKEND_DRM + # include diff --git a/media-video/vlc/vlc-2.2.4.ebuild b/media-video/vlc/vlc-2.2.4.ebuild new file mode 100644 index 0000000..6d5a4c8 --- /dev/null +++ b/media-video/vlc/vlc-2.2.4.ebuild @@ -0,0 +1,512 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +SCM="" +if [ "${PV%9999}" != "${PV}" ] ; then + SCM="git-r3" + + if [ "${PV%.9999}" != "${PV}" ] ; then + EGIT_REPO_URI="git://git.videolan.org/vlc/vlc-${PV%.9999}.git" + else + EGIT_REPO_URI="git://git.videolan.org/vlc.git" + fi +fi + +inherit eutils multilib autotools toolchain-funcs flag-o-matic versionator virtualx ${SCM} + +MY_PV="${PV/_/-}" +MY_PV="${MY_PV/-beta/-test}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="VLC media player - Video player and streamer" +HOMEPAGE="http://www.videolan.org/vlc/" +if [ "${PV%9999}" != "${PV}" ] ; then # Live ebuild + SRC_URI="" +elif [[ "${MY_P}" == "${P}" ]]; then + SRC_URI="http://download.videolan.org/pub/videolan/${PN}/${PV}/${P}.tar.xz" +else + SRC_URI="http://download.videolan.org/pub/videolan/testing/${MY_P}/${MY_P}.tar.xz" +fi + +LICENSE="LGPL-2.1 GPL-2" +SLOT="0/5-8" # vlc - vlccore + +if [[ ${PV} != *9999 ]] ; then + KEYWORDS="amd64 ~arm ~ppc ppc64 -sparc x86 ~x86-fbsd" +fi + +IUSE="a52 aalib alsa altivec atmo +audioqueue +avcodec + +avformat bidi bluray cdda cddb chromaprint dbus dc1394 debug + directfb directx dts dvb +dvbpsi dvd dxva2 elibc_glibc +encode faad fdk + fluidsynth +ffmpeg flac fontconfig +gcrypt gme gnome gnutls + growl httpd ieee1394 jack jpeg kate kde libass libav libcaca libnotify + +libsamplerate libtiger linsys libtar lirc live lua + macosx-dialog-provider macosx-eyetv macosx-quartztext macosx-qtkit + matroska media-library cpu_flags_x86_mmx modplug mp3 mpeg + mtp musepack ncurses neon ogg omxil opencv opengl optimisememory opus + png postproc projectm pulseaudio +qt4 qt5 rdp rtsp run-as-root samba + schroedinger sdl sdl-image sftp shout sid skins speex cpu_flags_x86_sse svg +swscale + taglib theora tremor truetype twolame udev upnp vaapi v4l vcdx vdpau + vlm vnc vorbis vpx wma-fixed +X x264 x265 +xcb xml xv zeroconf zvbi" + +RDEPEND=" + !=sys-libs/zlib-1.2.5.1-r2:0[minizip] + virtual/libintl:0 + a52? ( >=media-libs/a52dec-0.7.4-r3:0 ) + aalib? ( media-libs/aalib:0 ) + alsa? ( >=media-libs/alsa-lib-1.0.24:0 ) + avcodec? ( + !libav? ( + >=media-video/ffmpeg-2.8:0= + ) + libav? ( >=media-video/libav-11:0= ) + ) + avformat? ( + !libav? ( + >=media-video/ffmpeg-2.8:0= + ) + libav? ( media-video/libav:0= ) + ) + bidi? ( >=dev-libs/fribidi-0.10.4:0 ) + bluray? ( >=media-libs/libbluray-0.3:0 ) + cddb? ( >=media-libs/libcddb-1.2:0 ) + chromaprint? ( >=media-libs/chromaprint-0.6:0 ) + dbus? ( >=sys-apps/dbus-1.6:0 ) + dc1394? ( >=sys-libs/libraw1394-2.0.1:0 >=media-libs/libdc1394-2.1:2 ) + directfb? ( dev-libs/DirectFB:0 sys-libs/zlib:0 ) + dts? ( >=media-libs/libdca-0.0.5:0 ) + dvbpsi? ( >=media-libs/libdvbpsi-0.2.1:0= ) + dvd? ( >=media-libs/libdvdread-4.9:0 >=media-libs/libdvdnav-4.9:0 ) + elibc_glibc? ( >=sys-libs/glibc-2.8:2.2 ) + faad? ( >=media-libs/faad2-2.6.1:0 ) + fdk? ( media-libs/fdk-aac:0 ) + flac? ( >=media-libs/libogg-1:0 >=media-libs/flac-1.1.2:0 ) + fluidsynth? ( >=media-sound/fluidsynth-1.1.2:0 ) + fontconfig? ( media-libs/fontconfig:1.0 ) + gcrypt? ( >=dev-libs/libgcrypt-1.2.0:0= ) + gme? ( media-libs/game-music-emu:0 ) + gnome? ( gnome-base/gnome-vfs:2 dev-libs/glib:2 ) + gnutls? ( >=net-libs/gnutls-3.0.20:0 ) + ieee1394? ( >=sys-libs/libraw1394-2.0.1:0 >=sys-libs/libavc1394-0.5.3:0 ) + jack? ( >=media-sound/jack-audio-connection-kit-0.99.0-r1:0 ) + jpeg? ( virtual/jpeg:0 ) + kate? ( >=media-libs/libkate-0.3:0 ) + libass? ( >=media-libs/libass-0.9.8:0 media-libs/fontconfig:1.0 ) + libcaca? ( >=media-libs/libcaca-0.99_beta14:0 ) + libnotify? ( x11-libs/libnotify:0 x11-libs/gtk+:2 x11-libs/gdk-pixbuf:2 dev-libs/glib:2 ) + libsamplerate? ( media-libs/libsamplerate:0 ) + libtar? ( >=dev-libs/libtar-1.2.11-r3:0 ) + libtiger? ( >=media-libs/libtiger-0.3.1:0 ) + linsys? ( >=media-libs/zvbi-0.2.28:0 ) + lirc? ( app-misc/lirc:0 ) + live? ( >=media-plugins/live-2011.12.23:0 ) + lua? ( >=dev-lang/lua-5.1:0 ) + matroska? ( >=dev-libs/libebml-1:0= >=media-libs/libmatroska-1:0= ) + modplug? ( >=media-libs/libmodplug-0.8.4:0 !~media-libs/libmodplug-0.8.8 ) + mp3? ( media-libs/libmad:0 ) + mpeg? ( >=media-libs/libmpeg2-0.3.2:0 ) + mtp? ( >=media-libs/libmtp-1:0 ) + musepack? ( >=media-sound/musepack-tools-444:0 ) + ncurses? ( sys-libs/ncurses:0=[unicode] ) + ogg? ( >=media-libs/libogg-1:0 ) + opencv? ( >media-libs/opencv-2:0 ) + opengl? ( virtual/opengl:0 >=x11-libs/libX11-1.3.99.901:0 ) + opus? ( >=media-libs/opus-1.0.3:0 ) + png? ( media-libs/libpng:0= sys-libs/zlib:0 ) + postproc? ( + !libav? ( >=media-video/ffmpeg-2.2:0= ) + libav? ( media-libs/libpostproc:0= ) + ) + projectm? ( media-libs/libprojectm:0 media-fonts/dejavu:0 ) + pulseaudio? ( >=media-sound/pulseaudio-1:0 ) + qt4? ( >=dev-qt/qtgui-4.6:4 >=dev-qt/qtcore-4.6:4 ) + qt5? ( >=dev-qt/qtgui-5.1:5 >=dev-qt/qtcore-5.1:5 >=dev-qt/qtwidgets-5.5.1-r1:5 + >=dev-qt/qtx11extras-5.1:5 ) + rdp? ( >=net-misc/freerdp-1.0.1:0=[client] =net-fs/samba-3.4.6:0[smbclient] =net-fs/samba-4.0.0_alpha1:0[client] ) ) + schroedinger? ( >=media-libs/schroedinger-1.0.10:0 ) + sdl? ( >=media-libs/libsdl-1.2.10:0 + sdl-image? ( >=media-libs/sdl-image-1.2.10:0 sys-libs/zlib:0 ) ) + sftp? ( net-libs/libssh2:0 ) + shout? ( >=media-libs/libshout-2.1:0 ) + sid? ( media-libs/libsidplay:2 ) + skins? ( x11-libs/libXext:0 x11-libs/libXpm:0 x11-libs/libXinerama:0 ) + speex? ( media-libs/speex:0 ) + svg? ( >=gnome-base/librsvg-2.9:2 >=x11-libs/cairo-1.13.1:0 ) + swscale? ( + !libav? ( media-video/ffmpeg:0= ) + libav? ( media-video/libav:0= ) + ) + taglib? ( >=media-libs/taglib-1.9:0 sys-libs/zlib:0 ) + theora? ( >=media-libs/libtheora-1.0_beta3:0 ) + tremor? ( media-libs/tremor:0 ) + truetype? ( media-libs/freetype:2 virtual/ttf-fonts:0 + !fontconfig? ( media-fonts/dejavu:0 ) ) + twolame? ( media-sound/twolame:0 ) + udev? ( >=virtual/udev-142:0 ) + upnp? ( net-libs/libupnp:0 ) + v4l? ( media-libs/libv4l:0 ) + vaapi? ( + x11-libs/libva:0[X,drm] + !libav? ( >=media-video/ffmpeg-2.8:0=[vaapi] ) + libav? ( media-video/libav:0=[vaapi] ) + ) + vcdx? ( >=dev-libs/libcdio-0.78.2:0 >=media-video/vcdimager-0.7.22:0 ) + zeroconf? ( >=net-dns/avahi-0.6:0[dbus] ) +" + +# Temporarily block non-live FFMPEG versions as they break vdpau, 9999 works; +# thus we'll have to wait for a new release there. +RDEPEND="${RDEPEND} + vdpau? ( + >=x11-libs/libvdpau-0.6:0 + !libav? ( + >=media-video/ffmpeg-2.8:0= + ) + libav? ( >=media-video/libav-10:0= ) + ) + vnc? ( >=net-libs/libvncserver-0.9.9:0 ) + vorbis? ( >=media-libs/libvorbis-1.1:0 ) + vpx? ( media-libs/libvpx:0= ) + X? ( x11-libs/libX11:0 ) + x264? ( >=media-libs/x264-0.0.20090923:0= ) + x265? ( media-libs/x265:0= ) + xcb? ( >=x11-libs/libxcb-1.6:0 >=x11-libs/xcb-util-0.3.4:0 >=x11-libs/xcb-util-keysyms-0.3.4:0 ) + xml? ( >=dev-libs/libxml2-2.5:2 ) + zvbi? ( >=media-libs/zvbi-0.2.25:0 ) +" + +DEPEND="${RDEPEND} + kde? ( >=kde-base/kdelibs-4:4 ) + xcb? ( x11-proto/xproto:0 ) + app-arch/xz-utils:0 + x86? ( dev-lang/yasm:* ) + amd64? ( dev-lang/yasm:* ) + >=sys-devel/gettext-0.18.3:* + virtual/pkgconfig:* +" + +REQUIRED_USE=" + aalib? ( X ) + bidi? ( truetype ) + cddb? ( cdda ) + dvb? ( dvbpsi ) + dxva2? ( avcodec ) + ffmpeg? ( avcodec avformat swscale ) + fontconfig? ( truetype ) + gnutls? ( gcrypt ) + httpd? ( lua ) + libcaca? ( X ) + libtar? ( skins ) + libtiger? ( kate ) + qt4? ( X !qt5 ) + qt5? ( X !qt4 ) + sdl? ( X ) + skins? ( truetype X xml ^^ ( qt4 qt5 ) ) + vaapi? ( avcodec X ) + vdpau? ( xcb ) + vlm? ( encode ) + xv? ( xcb ) +" + +PATCHES=( + # Fix build system mistake. + "${FILESDIR}"/${PN}-2.1.0-fix-libtremor-libs.patch + + # Patch up incompatibilities and reconfigure autotools. + "${FILESDIR}"/${PN}-9999-libva-1.2.1-compat.patch + + # Fix up broken audio when skipping using a fixed reversed bisected commit. + "${FILESDIR}"/${PN}-2.1.0-TomWij-bisected-PA-broken-underflow.patch + + # Bug #541678 + "${FILESDIR}"/qt4-select.patch + + # Allow QT5.5 since Gentoo has a patched QTwidgets + "${FILESDIR}"/${PN}-2.2.2-qt5widgets.patch + + # Bug #575072 + "${FILESDIR}"/${PN}-2.2.4-relax_ffmpeg.patch + "${FILESDIR}"/${PN}-2.2.4-ffmpeg3.patch + + # BUg #587954 + "${FILESDIR}"/${PN}-2.2.4-gcc6-fixup.patch +) + +S="${WORKDIR}/${MY_P}" + +pkg_setup() { + if [[ "${MERGE_TYPE}" != "binary" ]] && tc-is-gcc ; then + if ! version_is_at_least 4.5 $(gcc-version) ; then + die "You need to have at least >=sys-devel/gcc-4.5 to build and/or have a working vlc, see bug #426754." + fi + fi +} + +src_unpack() { + if [ "${PV%9999}" != "${PV}" ] ; then + git-r3_src_unpack + else + unpack ${A} + fi +} + +src_prepare() { + # Remove unnecessary warnings about unimplemented pragmas on gcc for now. + # Need to recheck this with gcc 4.9 and every subsequent minor bump of gcc. + # + # config.h:792: warning: ignoring #pragma STDC FENV_ACCESS [-Wunknown-pragmas] + # config.h:793: warning: ignoring #pragma STDC FP_CONTRACT [-Wunknown-pragmas] + # + # https://gcc.gnu.org/c99status.html + if tc-is-gcc ; then + sed -i 's/ifndef __FAST_MATH__/if 0/g' configure.ac || die + fi + + # Bootstrap when we are on a git checkout. + if [[ "${PV%9999}" != "${PV}" ]] ; then + ./bootstrap + fi + + # Make it build with libtool 1.5 + rm -f m4/lt* m4/libtool.m4 || die + + # We are not in a real git checkout due to the absence of a .git directory. + touch src/revision.txt || die + + default + + # Don't use --started-from-file when not using dbus. + if ! use dbus ; then + sed -i 's/ --started-from-file//' share/vlc.desktop.in || die + fi + + eautoreconf + + # Disable automatic running of tests. + find . -name 'Makefile.in' -exec sed -i 's/\(..*\)check-TESTS/\1/' {} \; || die + + # If qtchooser is installed, it may break the build, because moc,rcc and uic binaries for wrong qt version may be used. + # Setting QT_SELECT environment variable will enforce correct binaries. + if use qt4; then + export QT_SELECT=qt4 + elif use qt5; then + export QT_SELECT=qt5 + fi +} + +src_configure() { + # Compatibility fix for Samba 4. + use samba && append-cppflags "-I/usr/include/samba-4.0" + + # We need to disable -fstack-check if use >=gcc 4.8.0. + # See bug #499996 + use x86 && append-cflags $(test-flags-CC -fno-stack-check) + + # Needs libresid-builder from libsidplay:2 which is in another directory... + # FIXME! + append-ldflags "-L/usr/$(get_libdir)/sidplay/builders/" + + if use truetype || use projectm ; then + local dejavu="/usr/share/fonts/dejavu/" + myconf="--with-default-font=${dejavu}/DejaVuSans.ttf \ + --with-default-font-family=Sans \ + --with-default-monospace-font=${dejavu}/DejaVuSansMono.ttf + --with-default-monospace-font-family=Monospace" + fi + + local qt_flag="" + if use qt4 ; then + qt_flag="--enable-qt=4" + elif use qt5 ; then + qt_flag="--enable-qt=5" + else + qt_flag="--disable-qt" + fi + + econf \ + ${myconf} \ + --enable-vlc \ + --docdir=/usr/share/doc/${PF} \ + --disable-dependency-tracking \ + --disable-optimizations \ + --disable-update-check \ + --enable-fast-install \ + --enable-screen \ + $(use_enable a52) \ + $(use_enable aalib aa) \ + $(use_enable alsa) \ + $(use_enable altivec) \ + $(use_enable atmo) \ + $(use_enable audioqueue) \ + $(use_enable avcodec) \ + $(use_enable avformat) \ + $(use_enable bidi fribidi) \ + $(use_enable bluray) \ + $(use_enable cdda vcd) \ + $(use_enable cddb libcddb) \ + $(use_enable chromaprint) \ + $(use_enable dbus) \ + $(use_enable directfb) \ + $(use_enable directx) \ + $(use_enable dc1394) \ + $(use_enable debug) \ + $(use_enable dts dca) \ + $(use_enable dvbpsi) \ + $(use_enable dvd dvdread) $(use_enable dvd dvdnav) \ + $(use_enable dxva2) \ + $(use_enable encode sout) \ + $(use_enable faad) \ + $(use_enable fdk fdkaac) \ + $(use_enable flac) \ + $(use_enable fluidsynth) \ + $(use_enable fontconfig) \ + $(use_enable gcrypt libgcrypt) \ + $(use_enable gme) \ + $(use_enable gnome gnomevfs) \ + $(use_enable gnutls) \ + $(use_enable growl) \ + $(use_enable httpd) \ + $(use_enable ieee1394 dv1394) \ + $(use_enable jack) \ + $(use_enable jpeg) \ + $(use_enable kate) \ + $(use_with kde kde-solid) \ + $(use_enable libass) \ + $(use_enable libcaca caca) \ + $(use_enable libnotify notify) \ + $(use_enable libsamplerate samplerate) \ + $(use_enable libtar) \ + $(use_enable libtiger tiger) \ + $(use_enable linsys) \ + $(use_enable lirc) \ + $(use_enable live live555) \ + $(use_enable lua) \ + $(use_enable macosx-dialog-provider) \ + $(use_enable macosx-eyetv) \ + $(use_enable macosx-qtkit) \ + $(use_enable macosx-quartztext) \ + $(use_enable matroska mkv) \ + $(use_enable cpu_flags_x86_mmx mmx) \ + $(use_enable modplug mod) \ + $(use_enable mp3 mad) \ + $(use_enable mpeg libmpeg2) \ + $(use_enable mtp) \ + $(use_enable musepack mpc) \ + $(use_enable ncurses) \ + $(use_enable neon) \ + $(use_enable ogg) $(use_enable ogg mux_ogg) \ + $(use_enable omxil) \ + $(use_enable omxil omxil-vout) \ + $(use_enable opencv) \ + $(use_enable opengl glspectrum) \ + $(use_enable opus) \ + $(use_enable optimisememory optimize-memory) \ + $(use_enable png) \ + $(use_enable postproc) \ + $(use_enable projectm) \ + $(use_enable pulseaudio pulse) \ + ${qt_flag} \ + $(use_enable rdp freerdp) \ + $(use_enable rtsp realrtsp) \ + $(use_enable run-as-root) \ + $(use_enable samba smbclient) \ + $(use_enable schroedinger) \ + $(use_enable sdl) \ + $(use_enable sdl-image) \ + $(use_enable sid) \ + $(use_enable sftp) \ + $(use_enable shout) \ + $(use_enable skins skins2) \ + $(use_enable speex) \ + $(use_enable cpu_flags_x86_sse sse) \ + $(use_enable svg) \ + $(use_enable svg svgdec) \ + $(use_enable swscale) \ + $(use_enable taglib) \ + $(use_enable theora) \ + $(use_enable tremor) \ + $(use_enable truetype freetype) \ + $(use_enable twolame) \ + $(use_enable udev) \ + $(use_enable upnp) \ + $(use_enable v4l v4l2) \ + $(use_enable vaapi libva) \ + $(use_enable vcdx) \ + $(use_enable vdpau) \ + $(use_enable vlm) \ + $(use_enable vnc) \ + $(use_enable vorbis) \ + $(use_enable vpx) \ + $(use_enable wma-fixed) \ + $(use_with X x) \ + $(use_enable x264) \ + $(use_enable x265) \ + $(use_enable xcb) \ + $(use_enable xml libxml2) \ + $(use_enable xv xvideo) \ + $(use_enable zeroconf bonjour) \ + $(use_enable zvbi) $(use_enable !zvbi telx) \ + --disable-asdcp \ + --disable-coverage \ + --disable-cprof \ + --disable-crystalhd \ + --disable-decklink \ + --disable-gles1 \ + --disable-gles2 \ + --disable-goom \ + --disable-kai \ + --disable-kva \ + --disable-maintainer-mode \ + --disable-merge-ffmpeg \ + --disable-mfx \ + --disable-mmal-codec \ + --disable-mmal-vout \ + --disable-opensles \ + --disable-oss \ + --disable-quicktime \ + --disable-rpi-omxil \ + --disable-shine \ + --disable-sndio \ + --disable-vda \ + --disable-vsxu \ + --disable-wasapi + + # ^ We don't have these disabled libraries in the Portage tree yet. + + # _FORTIFY_SOURCE is set to 2 in config.h, which is also the default value on Gentoo. + # Other values of _FORTIFY_SOURCE may break the build (bug 523144), so definition should not be removed from config.h. + # To prevent redefinition warnings, we undefine _FORTIFY_SOURCE at the very start of config.h file + sed -i '1i#undef _FORTIFY_SOURCE' "${S}"/config.h || die +} + +src_test() { + virtx emake check-TESTS +} + +DOCS="AUTHORS THANKS NEWS README doc/fortunes.txt doc/intf-vcd.txt" + +src_install() { + default + + # Punt useless libtool's .la files + find "${D}" -name '*.la' -delete +} + +pkg_postinst() { + if [ "$ROOT" = "/" ] && [ -x "/usr/$(get_libdir)/vlc/vlc-cache-gen" ] ; then + einfo "Running /usr/$(get_libdir)/vlc/vlc-cache-gen on /usr/$(get_libdir)/vlc/plugins/" + "/usr/$(get_libdir)/vlc/vlc-cache-gen" -f "/usr/$(get_libdir)/vlc/plugins/" + else + ewarn "We cannot run vlc-cache-gen (most likely ROOT!=/)" + ewarn "Please run /usr/$(get_libdir)/vlc/vlc-cache-gen manually" + ewarn "If you do not do it, vlc will take a long time to load." + fi +}