Gentoo Archives: gentoo-commits

From: Jory Pratt <anarchy@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] dev/anarchy:master commit in: media-video/vlc/files/, media-video/vlc/
Date: Tue, 11 Oct 2016 03:16:46
Message-Id: 1476155767.e1246b8e8b5a7b8025ee424b3a2a5c3f4117567a.anarchy@gentoo
1 commit: e1246b8e8b5a7b8025ee424b3a2a5c3f4117567a
2 Author: Jory A. Pratt <anarchy <AT> gentoo <DOT> org>
3 AuthorDate: Tue Oct 11 03:16:07 2016 +0000
4 Commit: Jory Pratt <anarchy <AT> gentoo <DOT> org>
5 CommitDate: Tue Oct 11 03:16:07 2016 +0000
6 URL: https://gitweb.gentoo.org/dev/anarchy.git/commit/?id=e1246b8e
7
8 media-video/vlc : Fix 2.2.4 to build wih gcc-6.2
9
10 media-video/vlc/Manifest | 11 +
11 media-video/vlc/files/qt4-select.patch | 51 ++
12 ...2.1.0-TomWij-bisected-PA-broken-underflow.patch | 23 +
13 .../vlc/files/vlc-2.1.0-fix-libtremor-libs.patch | 11 +
14 .../vlc/files/vlc-2.1.0-libva-1.2.1-compat.patch | 12 +
15 media-video/vlc/files/vlc-2.2.2-qt5widgets.patch | 13 +
16 media-video/vlc/files/vlc-2.2.4-ffmpeg3.patch | 160 +++++++
17 media-video/vlc/files/vlc-2.2.4-gcc6-fixup.patch | 293 ++++++++++++
18 media-video/vlc/files/vlc-2.2.4-relax_ffmpeg.patch | 45 ++
19 .../vlc/files/vlc-9999-libva-1.2.1-compat.patch | 12 +
20 media-video/vlc/vlc-2.2.4.ebuild | 512 +++++++++++++++++++++
21 11 files changed, 1143 insertions(+)
22
23 diff --git a/media-video/vlc/Manifest b/media-video/vlc/Manifest
24 new file mode 100644
25 index 0000000..c401e20
26 --- /dev/null
27 +++ b/media-video/vlc/Manifest
28 @@ -0,0 +1,11 @@
29 +AUX qt4-select.patch 2171 SHA256 30c76f06553d0a341224009c3130e54624a266cd77a034340e39d2b922c60d69 SHA512 0c3fab4457f1b8c9f1c2c9b690c1a137e1544a09a710e24ba9c8e228f0490ec27030846974610b8976bfca77e03054c5254719836cabc695a527f095659a651d WHIRLPOOL a4d8a2689a0e034f26f0e2d52275004f21a20f0a553050ce7483b1ab5d42faa8f465ff4dfed08a5defc25917d8f225922d14eaea5adb53d3556b6e41c5704a37
30 +AUX vlc-2.1.0-TomWij-bisected-PA-broken-underflow.patch 700 SHA256 91752f1ed1fbe8a2fcc78336a0725e1450946bab8085a4efce85a076dff40b87 SHA512 c3aa82ba9252f87d8f87c0bbfed7e0cdbd93c4f454e0ca6a9d73346e2efa294864af7eea1ea76b504354fb1baf5378cf626b35dcbfba3d888dbf0168ddfbed13 WHIRLPOOL 87c5017c8cdc1ad8cb313b6342f89af7ca7e90b20f151dd226ad8863407dae4cefb5934040154020778d3eb5dc78c5be43ae1e8e33fd0e823628c69c8cac7e61
31 +AUX vlc-2.1.0-fix-libtremor-libs.patch 453 SHA256 5b2d4272b0258b30d1e34717ad83ebe2bcea78a5247798a74c0b86ace6d39463 SHA512 6c25995a518aeb1d501fa217d897962e1e81f66a4f28b6bb164dde3afe7f91772bb608f946d802857fa9a272cab1f88d3990d582be89ab8e37b1a8b6681798ae WHIRLPOOL 39d9d1670e244169087ecc81654b1d6407c9e5f0f0da1bb1b15d7c89a7dab232b9a174c2a5e9ed2586a57a370f3cd9d2c9434381387a1fbc70b7f7bd8de2ef85
32 +AUX vlc-2.1.0-libva-1.2.1-compat.patch 272 SHA256 fe9a4fdfe5447c869ec881f9e30236486a885b9f64b4c80004db7964b2b931c1 SHA512 74cba8136b2abb7a78b5ee8c8b5a9b3509a4a16ff9d4f136a3a7e2d6ff634ce20e34b8d140810ac63dd6cd3115d71cbb87a6e213fb172485494e55ade1b5230a WHIRLPOOL 1d2e747f4097c7903b798d7dfd17e11de41c01e903afda0b2c766ef5d7977da32362c52e5bc41c93a1f801a93c857c08d2cee3840f76a55afe0b2a768250073e
33 +AUX vlc-2.2.2-qt5widgets.patch 603 SHA256 b23c3bf441ac9bef25ca053a8bccec2652c9a251889d38624877ffc5562218ca SHA512 b5d8946406e84bce240376015ed994d6265d07fe9b777fd05c0f722142e99502bd129ec4acfe2cafa7a6dd98c9612913fa8644109489fa48dab6dc5522601050 WHIRLPOOL a00159f261e617f8e0e5c6b51b94428ba1080eb6107f13ce5b9506ae460437f9246ab79795a3443289cba2db36c7a6c2d5f585f6f888ca4881625856ce0ffaf3
34 +AUX vlc-2.2.4-ffmpeg3.patch 6377 SHA256 61c21d875d3ea5e0475194cfb199e2a95f20a5357bb2a0001d86dd1f4a5d3652 SHA512 efede86f7d4c8a475f14c88405d4f9810784b93b8dbee8a21ca2f59b4a62ba008996fbd72ad77300b76a6faa328720a7b99afdd753480f2a17dc25204e52d2ee WHIRLPOOL 49286dda70c1e510c8727f77bfec43786d0ae2b477f528032bf45e1fb9f34f9943e4a213c26f3c06e370c1e4856c16acb5d933cc91590d145a985fde81acbd09
35 +AUX vlc-2.2.4-gcc6-fixup.patch 8886 SHA256 480394a17f57c9bb1df1bc8f0ba3bf04afc7f09e8b8ac8b7099bc1f5dd55c57c SHA512 f0eb1fc5203c80ef5d1c243284cba62757051c288ca3013532c89f1a9febaa853827b564cf69edf31e8db48f7faab9f2ef71a9f0d110ac091d490676294a9c86 WHIRLPOOL d7246e1618b4e568c3befdb72eef078430d131f6ccc59f71993be3b0a1e120d93af674a2fbe41393d9ba4a73f8e9bfe8d2be8e65f0d9b7c86de9cc8d7d9246fa
36 +AUX vlc-2.2.4-relax_ffmpeg.patch 1686 SHA256 3b76abff4553f581457252b6b98d3c3a537c91cd7b981f2f5a6772eb6597fd18 SHA512 a15862d6ac60575c0c338faff6052e3c28c4bd75f86f37ff8fbe36a64bc1a82689c56b2dc19f05109fc0913b85aab7ba28a94bfdd5fdd0e3c87cb7e6e58d1caa WHIRLPOOL aefdcf024869e7b074f3bc64ca12d187967edcbe31f03bb72a9d9dbb82be8453ec4866fae655a77ce4f500f8cae80e583de6e33b012c1f5ff1cc549a298a0596
37 +AUX vlc-9999-libva-1.2.1-compat.patch 291 SHA256 54eb34b32afe6876fa40abac2cb97097030f1d372bb81b63ef88231a17e5f237 SHA512 47b9d3f7a5e7c90045acac3b3253feb927da26646b6a457655669c1ab18f6a0e027160285695dc06642e6117ed1fcd87db90ae1f409e8fee737a2a41e80e1968 WHIRLPOOL df5cfdb4ba36ccd92e79de7b913b14c5416aca0834025dc51f8178db6c88f5eecb332ae7096800607d6f7526a56c7fb94e2f593bc0c0e19f643428bcd3eb5868
38 +DIST vlc-2.2.4.tar.xz 22199316 SHA256 1632e91d2a0087e0ef4c3fb4c95c3c2890f7715a9d1d43ffd46329f428cf53be SHA512 2fc1fe957ba7903f2e0c9640884ed850cb10a60132d80658dee8da0b5abaf4a6ccdf95fa2b8c0a4a827be5e7e40341318bce44662a5248e04442f4779010f85c WHIRLPOOL 0d59d9c2a623f72a6c708f9face6f29b7c7e71a9b38faf3717b8f223641c6f599d1407a4976874226dbbd9e553ec528249dc4f301c5682bfb49f5745468934b2
39 +EBUILD vlc-2.2.4.ebuild 15720 SHA256 f3a7086654c6fdec8e22b5c5ae1fd911d15d83f79a51fd6c4686398e17d87c55 SHA512 a0a2b29f8b34003a1e956df380146f209eb49ce5368b150605239964520f86d5b70a42b87031b5e27fd490e7982e6c1aa02c3cfd43a290783439af9a78f853ee WHIRLPOOL 74a90f06208bbdc726a0e78405e77f316b78a4a8b705c06cafe883fcd7b0ef6267e32e254b016310a52f01097b0044482f2087bc3545013da1e7bcc18504fbf0
40
41 diff --git a/media-video/vlc/files/qt4-select.patch b/media-video/vlc/files/qt4-select.patch
42 new file mode 100644
43 index 0000000..fb1526a
44 --- /dev/null
45 +++ b/media-video/vlc/files/qt4-select.patch
46 @@ -0,0 +1,51 @@
47 +https://gist.github.com/karolherbst/fb9e3d8f6ba05f1f5d54
48 +For use until upstream ever accepts this patch or fixes it themsleves
49 +--- a/configure.ac
50 ++++ b/configure.ac
51 +@@ -3709,7 +3709,8 @@
52 + ])
53 + ])
54 + AS_IF([test "${enable_qt}" != "no"], [
55 +- PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [
56 ++ AS_IF([test "${enable_qt}" != "4"], [
57 ++ PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [
58 + PKG_CHECK_MODULES([QTX11], [Qt5X11Extras], [
59 + VLC_ADD_LIBS([qt4],[${QTX11_LIBS}])
60 + VLC_ADD_CXXFLAGS([qt4],[${QTX11_CFLAGS} -DQT5_HAS_X11])
61 +@@ -3721,20 +3722,23 @@
62 + AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
63 + AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
64 + AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
65 ++ enable_qt="5"
66 +- ], [
67 +- PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
68 +- AS_IF([test -n "${enable_qt}"],[
69 +- AC_MSG_ERROR([${QT_PKG_ERRORS}.])
70 +- ],[
71 +- AC_MSG_WARN([${QT_PKG_ERRORS}.])
72 +- ])
73 +- enable_qt="no"
74 ++ ])
75 ++ ])
76 ++ AS_IF([test "${enable_qt}" != "5"], [
77 ++ PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
78 ++ AS_IF([test -n "${enable_qt}"],[
79 ++ AC_MSG_ERROR([${QT_PKG_ERRORS}.])
80 ++ ],[
81 ++ AC_MSG_WARN([${QT_PKG_ERRORS}.])
82 + ])
83 +- QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
84 +- AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
85 +- AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
86 +- AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
87 ++ enable_qt="no"
88 + ])
89 ++ QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
90 ++ AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
91 ++ AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
92 ++ AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
93 ++ ])
94 + ])
95 + AS_IF([test "${enable_qt}" != "no"], [
96 + VLC_ADD_PLUGIN([qt4])
97 +
98
99 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
100 new file mode 100644
101 index 0000000..3163410
102 --- /dev/null
103 +++ b/media-video/vlc/files/vlc-2.1.0-TomWij-bisected-PA-broken-underflow.patch
104 @@ -0,0 +1,23 @@
105 +index 2debbcd..72e7fcf 100644
106 +--- a/modules/audio_output/pulse.c
107 ++++ b/modules/audio_output/pulse.c
108 +@@ -472,8 +472,17 @@ static void stream_underflow_cb(pa_stream *s, void *userdata)
109 + {
110 ++ uint32_t rate = pa_stream_get_sample_spec(s)->rate;
111 + audio_output_t *aout = userdata;
112 +
113 +- msg_Dbg(aout, "underflow");
114 +- (void) s;
115 ++ msg_Warn(aout, "underflow");
116 ++ stream_stop(s, aout);
117 ++
118 ++ aout_sys_t *sys = aout->sys;
119 ++ sys->first_pts = VLC_TS_INVALID;
120 ++
121 ++ pa_operation *op = pa_stream_update_sample_rate(s, rate, NULL, NULL);
122 ++ if (unlikely(op == NULL))
123 ++ return;
124 ++ pa_operation_unref(op);
125 + }
126 +
127 + static int stream_wait(pa_stream *stream, pa_threaded_mainloop *mainloop)
128
129 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
130 new file mode 100644
131 index 0000000..8a58969
132 --- /dev/null
133 +++ b/media-video/vlc/files/vlc-2.1.0-fix-libtremor-libs.patch
134 @@ -0,0 +1,11 @@
135 +--- a/modules/codec/Makefile.am
136 ++++ b/modules/codec/Makefile.am
137 +@@ -215,7 +215,7 @@
138 + libtremor_plugin_la_SOURCES = codec/vorbis.c
139 + libtremor_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DMODULE_NAME_IS_tremor
140 + libtremor_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)'
141 +-libtremor_plugin_la_LIBADD = -lvorbisdec -logg
142 ++libtremor_plugin_la_LIBADD = $(VORBIS_LIBS) $(OGG_LIBS)
143 + EXTRA_LTLIBRARIES += libtremor_plugin.la
144 + codec_LTLIBRARIES += $(LTLIBtremor)
145 +
146
147 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
148 new file mode 100644
149 index 0000000..db73a4e
150 --- /dev/null
151 +++ b/media-video/vlc/files/vlc-2.1.0-libva-1.2.1-compat.patch
152 @@ -0,0 +1,12 @@
153 +--- a/modules/codec/avcodec/vaapi.c
154 ++++ b/modules/codec/avcodec/vaapi.c
155 +@@ -36,6 +36,9 @@
156 + #include <libavcodec/vaapi.h>
157 + #include <X11/Xlib.h>
158 + #include <va/va_x11.h>
159 ++#if VA_MINOR_VERSION >= 34
160 ++# include <va/va_compat.h>
161 ++#endif
162 +
163 + #include "avcodec.h"
164 + #include "va.h"
165 \ No newline at end of file
166
167 diff --git a/media-video/vlc/files/vlc-2.2.2-qt5widgets.patch b/media-video/vlc/files/vlc-2.2.2-qt5widgets.patch
168 new file mode 100644
169 index 0000000..a024d00
170 --- /dev/null
171 +++ b/media-video/vlc/files/vlc-2.2.2-qt5widgets.patch
172 @@ -0,0 +1,13 @@
173 +--- vlc-2.2.2/configure.ac
174 ++++ vlc-2.2.2/configure.ac
175 +@@ -3754,10 +3754,6 @@
176 + AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
177 + ])
178 +
179 +- PKG_CHECK_EXISTS([Qt5Core >= 5.5.0 Qt5Core < 5.6.0], [
180 +- AC_MSG_ERROR(["You cannot build VLC with Qt-5.5.0. You need to backport I78ef29975181ee22429c9bd4b11d96d9e68b7a9c"])
181 +- ])
182 +-
183 + QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
184 + QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
185 + AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
186
187 diff --git a/media-video/vlc/files/vlc-2.2.4-ffmpeg3.patch b/media-video/vlc/files/vlc-2.2.4-ffmpeg3.patch
188 new file mode 100644
189 index 0000000..3bc5954
190 --- /dev/null
191 +++ b/media-video/vlc/files/vlc-2.2.4-ffmpeg3.patch
192 @@ -0,0 +1,160 @@
193 +Index: vlc-2.2.4/configure.ac
194 +===================================================================
195 +--- vlc-2.2.4.orig/configure.ac
196 ++++ vlc-2.2.4/configure.ac
197 +@@ -2323,8 +2323,8 @@ AC_ARG_ENABLE(avcodec,
198 + [ --enable-avcodec libavcodec codec (default enabled)])
199 + AS_IF([test "${enable_avcodec}" != "no"], [
200 + PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 53.34.0 libavutil >= 51.22.0], [
201 +- PKG_CHECK_EXISTS([libavutil < 55],, [
202 +- AC_MSG_ERROR([libavutil versions 55 and later are not supported.])
203 ++ PKG_CHECK_EXISTS([libavutil < 56],, [
204 ++ AC_MSG_ERROR([libavutil versions 56 and later are not supported.])
205 + ])
206 + VLC_SAVE_FLAGS
207 + CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
208 +Index: vlc-2.2.4/modules/codec/avcodec/audio.c
209 +===================================================================
210 +--- vlc-2.2.4.orig/modules/codec/avcodec/audio.c
211 ++++ vlc-2.2.4/modules/codec/avcodec/audio.c
212 +@@ -39,8 +39,6 @@
213 + #include <libavcodec/avcodec.h>
214 + #include <libavutil/mem.h>
215 +
216 +-#include <libavutil/audioconvert.h>
217 +-
218 + #include "avcodec.h"
219 +
220 + /*****************************************************************************
221 +Index: vlc-2.2.4/modules/codec/avcodec/encoder.c
222 +===================================================================
223 +--- vlc-2.2.4.orig/modules/codec/avcodec/encoder.c
224 ++++ vlc-2.2.4/modules/codec/avcodec/encoder.c
225 +@@ -41,7 +41,6 @@
226 + #include <vlc_cpu.h>
227 +
228 + #include <libavcodec/avcodec.h>
229 +-#include <libavutil/audioconvert.h>
230 +
231 + #include "avcodec.h"
232 + #include "avcommon.h"
233 +@@ -311,7 +310,7 @@ int OpenEncoder( vlc_object_t *p_this )
234 + else if( !GetFfmpegCodec( p_enc->fmt_out.i_codec, &i_cat, &i_codec_id,
235 + &psz_namecodec ) )
236 + {
237 +- if( FindFfmpegChroma( p_enc->fmt_out.i_codec ) == PIX_FMT_NONE )
238 ++ if( FindFfmpegChroma( p_enc->fmt_out.i_codec ) == AV_PIX_FMT_NONE )
239 + return VLC_EGENERIC; /* handed chroma output */
240 +
241 + i_cat = VIDEO_ES;
242 +@@ -555,7 +554,7 @@ int OpenEncoder( vlc_object_t *p_this )
243 +
244 + if( p_codec->pix_fmts )
245 + {
246 +- const enum PixelFormat *p = p_codec->pix_fmts;
247 ++ const enum AVPixelFormat *p = p_codec->pix_fmts;
248 + for( ; *p != -1; p++ )
249 + {
250 + if( *p == p_context->pix_fmt ) break;
251 +@@ -1017,7 +1016,7 @@ errmsg:
252 + }
253 + }
254 +
255 +- p_sys->frame = avcodec_alloc_frame();
256 ++ p_sys->frame = av_frame_alloc();
257 + if( !p_sys->frame )
258 + {
259 + goto error;
260 +@@ -1088,7 +1087,7 @@ static block_t *EncodeVideo( encoder_t *
261 + AVFrame *frame = NULL;
262 + if( likely(p_pict) ) {
263 + frame = p_sys->frame;
264 +- avcodec_get_frame_defaults( frame );
265 ++ av_frame_unref( frame );
266 + for( i_plane = 0; i_plane < p_pict->i_planes; i_plane++ )
267 + {
268 + p_sys->frame->data[i_plane] = p_pict->p[i_plane].p_pixels;
269 +@@ -1329,7 +1328,7 @@ static block_t *handle_delay_buffer( enc
270 + //How much we need to copy from new packet
271 + const int leftover = leftover_samples * p_sys->p_context->channels * p_sys->i_sample_bytes;
272 +
273 +- avcodec_get_frame_defaults( p_sys->frame );
274 ++ av_frame_unref( p_sys->frame );
275 + p_sys->frame->format = p_sys->p_context->sample_fmt;
276 + p_sys->frame->nb_samples = leftover_samples + p_sys->i_samples_delay;
277 +
278 +@@ -1451,7 +1450,7 @@ static block_t *EncodeAudio( encoder_t *
279 + while( ( p_aout_buf->i_nb_samples >= p_sys->i_frame_size ) ||
280 + ( p_sys->b_variable && p_aout_buf->i_nb_samples ) )
281 + {
282 +- avcodec_get_frame_defaults( p_sys->frame );
283 ++ av_frame_unref( p_sys->frame );
284 + if( p_sys->b_variable )
285 + p_sys->frame->nb_samples = p_aout_buf->i_nb_samples;
286 + else
287 +Index: vlc-2.2.4/modules/codec/avcodec/vaapi.c
288 +===================================================================
289 +--- vlc-2.2.4.orig/modules/codec/avcodec/vaapi.c
290 ++++ vlc-2.2.4/modules/codec/avcodec/vaapi.c
291 +@@ -598,7 +598,7 @@ static int Create( vlc_va_t *p_va, AVCod
292 + return err;
293 +
294 + /* Only VLD supported */
295 +- p_va->pix_fmt = PIX_FMT_VAAPI_VLD;
296 ++ p_va->pix_fmt = AV_PIX_FMT_VAAPI_VLD;
297 + p_va->setup = Setup;
298 + p_va->get = Get;
299 + p_va->release = Release;
300 +Index: vlc-2.2.4/modules/codec/avcodec/video.c
301 +===================================================================
302 +--- vlc-2.2.4.orig/modules/codec/avcodec/video.c
303 ++++ vlc-2.2.4/modules/codec/avcodec/video.c
304 +@@ -108,8 +108,8 @@ static int lavc_GetFrame(struct AVCodecC
305 + static int ffmpeg_GetFrameBuf ( struct AVCodecContext *, AVFrame * );
306 + static void ffmpeg_ReleaseFrameBuf( struct AVCodecContext *, AVFrame * );
307 + #endif
308 +-static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *,
309 +- const enum PixelFormat * );
310 ++static enum AVPixelFormat ffmpeg_GetFormat( AVCodecContext *,
311 ++ const enum AVPixelFormat * );
312 +
313 + static uint32_t ffmpeg_CodecTag( vlc_fourcc_t fcc )
314 + {
315 +@@ -234,7 +234,7 @@ int InitVideoDec( decoder_t *p_dec, AVCo
316 + p_sys->p_codec = p_codec;
317 + p_sys->i_codec_id = i_codec_id;
318 + p_sys->psz_namecodec = psz_namecodec;
319 +- p_sys->p_ff_pic = avcodec_alloc_frame();
320 ++ p_sys->p_ff_pic = av_frame_alloc();
321 + p_sys->b_delayed_open = true;
322 + p_sys->p_va = NULL;
323 + vlc_sem_init( &p_sys->sem_mt, 0 );
324 +@@ -446,7 +446,7 @@ int InitVideoDec( decoder_t *p_dec, AVCo
325 + if( ffmpeg_OpenCodec( p_dec ) < 0 )
326 + {
327 + msg_Err( p_dec, "cannot open codec (%s)", p_sys->psz_namecodec );
328 +- avcodec_free_frame( &p_sys->p_ff_pic );
329 ++ av_frame_free( &p_sys->p_ff_pic );
330 + vlc_sem_destroy( &p_sys->sem_mt );
331 + free( p_sys );
332 + return VLC_EGENERIC;
333 +@@ -826,7 +826,7 @@ void EndVideoDec( decoder_t *p_dec )
334 + wait_mt( p_sys );
335 +
336 + if( p_sys->p_ff_pic )
337 +- avcodec_free_frame( &p_sys->p_ff_pic );
338 ++ av_frame_free( &p_sys->p_ff_pic );
339 +
340 + if( p_sys->p_va )
341 + vlc_va_Delete( p_sys->p_va );
342 +@@ -1313,8 +1313,8 @@ static void ffmpeg_ReleaseFrameBuf( stru
343 + }
344 + #endif
345 +
346 +-static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context,
347 +- const enum PixelFormat *pi_fmt )
348 ++static enum AVPixelFormat ffmpeg_GetFormat( AVCodecContext *p_context,
349 ++ const enum AVPixelFormat *pi_fmt )
350 + {
351 + decoder_t *p_dec = p_context->opaque;
352 + decoder_sys_t *p_sys = p_dec->p_sys;
353
354 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
355 new file mode 100644
356 index 0000000..73be43c
357 --- /dev/null
358 +++ b/media-video/vlc/files/vlc-2.2.4-gcc6-fixup.patch
359 @@ -0,0 +1,293 @@
360 +From 8b0a359be21c8b66c7f7f5d34b85df3cf6689035 Mon Sep 17 00:00:00 2001
361 +From: Francois Cartegnie <fcvlcdev@××××.fr>
362 +Date: Sun, 24 Jul 2016 12:59:20 +0200
363 +Subject: [PATCH] Fix build using old GCC intrinsics
364 +
365 +As the 2.2 headers are still using vlc_atomics (picture)
366 +we cannot have a way to avoid collisions with early
367 +or late <atomic> inclusion when using GCC >= 4.7
368 +
369 +Conditionals in vlc_atomic won't work.
370 +
371 +Happens in ProjectM and Qt5.
372 +
373 +Signed-off-by: Jean-Baptiste Kempf <jb@××××××××.org>
374 +---
375 + modules/gui/qt4/actions_manager.cpp | 2 ++
376 + modules/gui/qt4/adapters/seekpoints.cpp | 4 +--
377 + modules/gui/qt4/adapters/seekpoints.hpp | 4 +--
378 + modules/gui/qt4/components/controller.cpp | 2 ++
379 + .../gui/qt4/components/playlist/playlist_model.hpp | 4 +--
380 + modules/gui/qt4/components/playlist/views.cpp | 6 ++++
381 + modules/gui/qt4/dialogs/messages.cpp | 2 ++
382 + modules/gui/qt4/dialogs/vlm.cpp | 4 ---
383 + modules/gui/qt4/dialogs/vlm.hpp | 4 ++-
384 + modules/gui/qt4/input_manager.cpp | 2 ++
385 + modules/gui/qt4/input_manager.hpp | 3 +-
386 + modules/gui/qt4/menus.cpp | 2 ++
387 + modules/gui/qt4/qt4.hpp | 32 ++++++++++++++++++----
388 + modules/gui/qt4/util/pictureflow.cpp | 2 ++
389 + modules/visualization/projectm.cpp | 4 +++
390 + 15 files changed, 56 insertions(+), 21 deletions(-)
391 +
392 +diff --git a/modules/gui/qt4/actions_manager.cpp b/modules/gui/qt4/actions_manager.cpp
393 +index eff40d9..b7ca967 100644
394 +--- a/modules/gui/qt4/actions_manager.cpp
395 ++++ b/modules/gui/qt4/actions_manager.cpp
396 +@@ -25,6 +25,8 @@
397 + # include "config.h"
398 + #endif
399 +
400 ++#include "qt4.hpp"
401 ++
402 + #include <vlc_vout.h>
403 + #include <vlc_keys.h>
404 +
405 +diff --git a/modules/gui/qt4/adapters/seekpoints.cpp b/modules/gui/qt4/adapters/seekpoints.cpp
406 +index fbf2957..a3564bb 100644
407 +--- a/modules/gui/qt4/adapters/seekpoints.cpp
408 ++++ b/modules/gui/qt4/adapters/seekpoints.cpp
409 +@@ -19,14 +19,12 @@
410 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
411 + *****************************************************************************/
412 +
413 ++#include "seekpoints.hpp"
414 +
415 + #include "recents.hpp"
416 + #include "dialogs_provider.hpp"
417 + #include "menus.hpp"
418 +
419 +-#include "seekpoints.hpp"
420 +-
421 +-#include "qt4.hpp"
422 + #include "input_manager.hpp"
423 +
424 + SeekPoints::SeekPoints( QObject *parent, intf_thread_t *p_intf_ ) :
425 +diff --git a/modules/gui/qt4/adapters/seekpoints.hpp b/modules/gui/qt4/adapters/seekpoints.hpp
426 +index 0083989..bbb9214 100644
427 +--- a/modules/gui/qt4/adapters/seekpoints.hpp
428 ++++ b/modules/gui/qt4/adapters/seekpoints.hpp
429 +@@ -22,9 +22,7 @@
430 + #ifndef SEEKPOINTS_HPP
431 + #define SEEKPOINTS_HPP
432 +
433 +-#ifdef HAVE_CONFIG_H
434 +-#include "config.h"
435 +-#endif
436 ++#include "qt4.hpp"
437 +
438 + #include <vlc_common.h>
439 + #include <vlc_interface.h>
440 +diff --git a/modules/gui/qt4/components/controller.cpp b/modules/gui/qt4/components/controller.cpp
441 +index d93e0db..c43d929 100644
442 +--- a/modules/gui/qt4/components/controller.cpp
443 ++++ b/modules/gui/qt4/components/controller.cpp
444 +@@ -26,6 +26,8 @@
445 + # include "config.h"
446 + #endif
447 +
448 ++#include "qt4.hpp"
449 ++
450 + #include <vlc_vout.h> /* vout_thread_t for FSC */
451 +
452 + /* Widgets */
453 +diff --git a/modules/gui/qt4/components/playlist/playlist_model.hpp b/modules/gui/qt4/components/playlist/playlist_model.hpp
454 +index f9d1d0c..1f71ac9 100644
455 +--- a/modules/gui/qt4/components/playlist/playlist_model.hpp
456 ++++ b/modules/gui/qt4/components/playlist/playlist_model.hpp
457 +@@ -25,9 +25,7 @@
458 + #ifndef _PLAYLIST_MODEL_H_
459 + #define _PLAYLIST_MODEL_H_
460 +
461 +-#ifdef HAVE_CONFIG_H
462 +-# include "config.h"
463 +-#endif
464 ++#include "qt4.hpp"
465 +
466 + #include <vlc_input.h>
467 + #include <vlc_playlist.h>
468 +diff --git a/modules/gui/qt4/components/playlist/views.cpp b/modules/gui/qt4/components/playlist/views.cpp
469 +index 59f6535..0066205 100644
470 +--- a/modules/gui/qt4/components/playlist/views.cpp
471 ++++ b/modules/gui/qt4/components/playlist/views.cpp
472 +@@ -21,6 +21,12 @@
473 + * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
474 + *****************************************************************************/
475 +
476 ++#ifdef HAVE_CONFIG_H
477 ++#include "config.h"
478 ++#endif
479 ++
480 ++#include "qt4.hpp"
481 ++
482 + #include "components/playlist/views.hpp"
483 + #include "components/playlist/vlc_model.hpp" /* VLCModel */
484 + #include "components/playlist/sorting.h" /* Columns List */
485 +diff --git a/modules/gui/qt4/dialogs/messages.cpp b/modules/gui/qt4/dialogs/messages.cpp
486 +index 30793a2..9c79c99 100644
487 +--- a/modules/gui/qt4/dialogs/messages.cpp
488 ++++ b/modules/gui/qt4/dialogs/messages.cpp
489 +@@ -24,6 +24,8 @@
490 + # include "config.h"
491 + #endif
492 +
493 ++#include "qt4.hpp"
494 ++
495 + #include "dialogs/messages.hpp"
496 +
497 + #include <QPlainTextEdit>
498 +diff --git a/modules/gui/qt4/dialogs/vlm.cpp b/modules/gui/qt4/dialogs/vlm.cpp
499 +index 0da88cc..595f015 100644
500 +--- a/modules/gui/qt4/dialogs/vlm.cpp
501 ++++ b/modules/gui/qt4/dialogs/vlm.cpp
502 +@@ -23,10 +23,6 @@
503 + * Foundation, Inc., 51 Franklin street, Fifth Floor, Boston MA 02110-1301, USA.
504 + *****************************************************************************/
505 +
506 +-#ifdef HAVE_CONFIG_H
507 +-# include "config.h"
508 +-#endif
509 +-
510 + #include "dialogs/vlm.hpp"
511 +
512 + #ifdef ENABLE_VLM
513 +diff --git a/modules/gui/qt4/dialogs/vlm.hpp b/modules/gui/qt4/dialogs/vlm.hpp
514 +index a3c6e5d..dcf7110 100644
515 +--- a/modules/gui/qt4/dialogs/vlm.hpp
516 ++++ b/modules/gui/qt4/dialogs/vlm.hpp
517 +@@ -25,8 +25,10 @@
518 + #ifndef QVLC_VLM_DIALOG_H_
519 + #define QVLC_VLM_DIALOG_H_ 1
520 +
521 ++#include "qt4.hpp"
522 ++
523 + #ifdef HAVE_CONFIG_H
524 +-# include "config.h"
525 ++#include "config.h"
526 + #endif
527 +
528 + #ifdef ENABLE_VLM
529 +diff --git a/modules/gui/qt4/input_manager.cpp b/modules/gui/qt4/input_manager.cpp
530 +index fd45f4a..c50cb6c 100644
531 +--- a/modules/gui/qt4/input_manager.cpp
532 ++++ b/modules/gui/qt4/input_manager.cpp
533 +@@ -30,6 +30,8 @@
534 + # include "config.h"
535 + #endif
536 +
537 ++#include "qt4.hpp"
538 ++
539 + #include "input_manager.hpp"
540 + #include "recents.hpp"
541 +
542 +diff --git a/modules/gui/qt4/input_manager.hpp b/modules/gui/qt4/input_manager.hpp
543 +index 7d3b76a..4fbecbb 100644
544 +--- a/modules/gui/qt4/input_manager.hpp
545 ++++ b/modules/gui/qt4/input_manager.hpp
546 +@@ -29,9 +29,10 @@
547 + # include "config.h"
548 + #endif
549 +
550 ++#include "qt4.hpp"
551 ++
552 + #include <vlc_input.h>
553 +
554 +-#include "qt4.hpp"
555 + #include "util/singleton.hpp"
556 + #include "adapters/variables.hpp"
557 +
558 +diff --git a/modules/gui/qt4/menus.cpp b/modules/gui/qt4/menus.cpp
559 +index 116e98c..46240b0 100644
560 +--- a/modules/gui/qt4/menus.cpp
561 ++++ b/modules/gui/qt4/menus.cpp
562 +@@ -34,6 +34,8 @@
563 + # include "config.h"
564 + #endif
565 +
566 ++#include "qt4.hpp"
567 ++
568 + #include <vlc_common.h>
569 + #include <vlc_intf_strings.h>
570 + #include <vlc_vout.h> /* vout_thread_t */
571 +diff --git a/modules/gui/qt4/qt4.hpp b/modules/gui/qt4/qt4.hpp
572 +index 44d7db6..5aec957 100644
573 +--- a/modules/gui/qt4/qt4.hpp
574 ++++ b/modules/gui/qt4/qt4.hpp
575 +@@ -29,12 +29,7 @@
576 + # include "config.h"
577 + #endif
578 +
579 +-#include <vlc_common.h> /* VLC_COMMON_MEMBERS for vlc_interface.h */
580 +-#include <vlc_interface.h> /* intf_thread_t */
581 +-#include <vlc_playlist.h> /* playlist_t */
582 +-
583 +-#define QT_NO_CAST_TO_ASCII
584 +-#include <QString>
585 ++#include <QtGlobal>
586 +
587 + #if ( QT_VERSION < 0x040600 )
588 + # error Update your Qt version to at least 4.6.0
589 +@@ -43,6 +38,31 @@
590 + #define HAS_QT47 ( QT_VERSION >= 0x040700 )
591 + #define HAS_QT5 ( QT_VERSION >= 0x050000 )
592 +
593 ++#if HAS_QT5
594 ++ #include <QtCore/qcompilerdetection.h>
595 ++ #if defined(Q_COMPILER_ATOMICS) && \
596 ++ ( __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7 ) )
597 ++ #define VLC_ATOMIC_H
598 ++ #include <atomic>
599 ++ using namespace std;
600 ++ # define atomic_store(object,desired) \
601 ++ do { \
602 ++ *(object) = (desired); \
603 ++ __sync_synchronize(); \
604 ++ } while (0)
605 ++
606 ++ # define atomic_load(object) \
607 ++ (__sync_synchronize(), *(object))
608 ++ #endif
609 ++#endif
610 ++
611 ++#include <vlc_common.h> /* VLC_COMMON_MEMBERS for vlc_interface.h */
612 ++#include <vlc_interface.h> /* intf_thread_t */
613 ++#include <vlc_playlist.h> /* playlist_t */
614 ++
615 ++#define QT_NO_CAST_TO_ASCII
616 ++#include <QString>
617 ++
618 + enum {
619 + DialogEventTypeOffset = 0,
620 + IMEventTypeOffset = 100,
621 +diff --git a/modules/gui/qt4/util/pictureflow.cpp b/modules/gui/qt4/util/pictureflow.cpp
622 +index 9318953..a7e6a01 100644
623 +--- a/modules/gui/qt4/util/pictureflow.cpp
624 ++++ b/modules/gui/qt4/util/pictureflow.cpp
625 +@@ -29,6 +29,8 @@
626 + THE SOFTWARE.
627 + */
628 +
629 ++#include "qt4.hpp"
630 ++
631 + #include "pictureflow.hpp"
632 +
633 + #include <QApplication>
634 +diff --git a/modules/visualization/projectm.cpp b/modules/visualization/projectm.cpp
635 +index e80fbf4..96d532d 100644
636 +--- a/modules/visualization/projectm.cpp
637 ++++ b/modules/visualization/projectm.cpp
638 +@@ -30,6 +30,10 @@
639 + #endif
640 +
641 + #include <assert.h>
642 ++#if defined(__GNUC__) && \
643 ++ ( __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7 ) )
644 ++ #define VLC_ATOMIC_H /* Ensure C atomics wont collide with old intrinsics */
645 ++#endif
646 +
647 + #include <vlc_common.h>
648 + #include <vlc_plugin.h>
649 +--
650 +2.8.1
651 +
652 +
653
654 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
655 new file mode 100644
656 index 0000000..218af58
657 --- /dev/null
658 +++ b/media-video/vlc/files/vlc-2.2.4-relax_ffmpeg.patch
659 @@ -0,0 +1,45 @@
660 +commit b8869f97ea66ac7ec9912a74c2e8b5e15daf7752
661 +Author: Rafaël Carré <funman@××××××××.org>
662 +Date: Fri Feb 26 00:36:26 2016 +0000
663 +
664 + Relax requirements for FFmpeg hwaccel
665 +
666 + It doesn't error out anymore since 5edd1f62ca1
667 +
668 +Index: vlc-2.2.4/configure.ac
669 +===================================================================
670 +--- vlc-2.2.4.orig/configure.ac
671 ++++ vlc-2.2.4/configure.ac
672 +@@ -2383,7 +2383,9 @@ AS_IF([test "${have_vaapi}" = "yes" -a "
673 + case "${avfork}" in
674 + ffmpeg)
675 + PKG_CHECK_EXISTS([libavcodec >= 57.10.100], [
676 +- AC_MSG_ERROR([VA API requires FFmpeg libavcodec < 57.10 or libav.])
677 ++ PKG_CHECK_EXISTS([libavcodec <= 57.12.100], [
678 ++ AC_MSG_ERROR([VA API requires FFmpeg libavcodec < 57.10 or > 57.12 or libav.])
679 ++ ])
680 + ])
681 + ;;
682 + esac
683 +@@ -2417,7 +2419,9 @@ AS_IF([test "${enable_dxva2}" != "no"],
684 + case "${avfork}" in
685 + ffmpeg)
686 + PKG_CHECK_EXISTS([libavcodec >= 57.10.100], [
687 +- AC_MSG_ERROR([DXVA2 requires FFmpeg libavcodec < 57.10 or libav.])
688 ++ PKG_CHECK_EXISTS([libavcodec <= 57.12.100], [
689 ++ AC_MSG_ERROR([DXVA2 requires FFmpeg libavcodec < 57.10 or > 57.12 or libav.])
690 ++ ])
691 + ])
692 + ;;
693 + esac
694 +@@ -3181,7 +3185,9 @@ AS_IF([test "${have_vdpau}" = "yes" -a "
695 + libav) av_vdpau_ver="55.26.0" ;;
696 + ffmpeg) av_vdpau_ver="55.42.100"
697 + PKG_CHECK_EXISTS([libavcodec >= 57.10.100], [
698 +- AC_MSG_ERROR([VDPAU requires FFmpeg libavcodec < 57.10 or libav.])
699 ++ PKG_CHECK_EXISTS([libavcodec <= 57.12.100], [
700 ++ AC_MSG_ERROR([VDPAU requires FFmpeg libavcodec < 57.10 or > 57.12 or libav.])
701 ++ ])
702 + ])
703 + ;;
704 + esac
705
706 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
707 new file mode 100644
708 index 0000000..adfdefe
709 --- /dev/null
710 +++ b/media-video/vlc/files/vlc-9999-libva-1.2.1-compat.patch
711 @@ -0,0 +1,12 @@
712 +--- a/modules/codec/avcodec/vaapi.c
713 ++++ b/modules/codec/avcodec/vaapi.c
714 +@@ -34,6 +34,9 @@
715 + #ifdef VLC_VA_BACKEND_XLIB
716 + # include <vlc_xlib.h>
717 + # include <va/va_x11.h>
718 ++#if VA_MINOR_VERSION >= 34
719 ++# include <va/va_compat.h>
720 ++#endif
721 + #endif
722 + #ifdef VLC_VA_BACKEND_DRM
723 + # include <sys/types.h>
724
725 diff --git a/media-video/vlc/vlc-2.2.4.ebuild b/media-video/vlc/vlc-2.2.4.ebuild
726 new file mode 100644
727 index 0000000..6d5a4c8
728 --- /dev/null
729 +++ b/media-video/vlc/vlc-2.2.4.ebuild
730 @@ -0,0 +1,512 @@
731 +# Copyright 1999-2016 Gentoo Foundation
732 +# Distributed under the terms of the GNU General Public License v2
733 +# $Id$
734 +
735 +EAPI=6
736 +
737 +SCM=""
738 +if [ "${PV%9999}" != "${PV}" ] ; then
739 + SCM="git-r3"
740 +
741 + if [ "${PV%.9999}" != "${PV}" ] ; then
742 + EGIT_REPO_URI="git://git.videolan.org/vlc/vlc-${PV%.9999}.git"
743 + else
744 + EGIT_REPO_URI="git://git.videolan.org/vlc.git"
745 + fi
746 +fi
747 +
748 +inherit eutils multilib autotools toolchain-funcs flag-o-matic versionator virtualx ${SCM}
749 +
750 +MY_PV="${PV/_/-}"
751 +MY_PV="${MY_PV/-beta/-test}"
752 +MY_P="${PN}-${MY_PV}"
753 +
754 +DESCRIPTION="VLC media player - Video player and streamer"
755 +HOMEPAGE="http://www.videolan.org/vlc/"
756 +if [ "${PV%9999}" != "${PV}" ] ; then # Live ebuild
757 + SRC_URI=""
758 +elif [[ "${MY_P}" == "${P}" ]]; then
759 + SRC_URI="http://download.videolan.org/pub/videolan/${PN}/${PV}/${P}.tar.xz"
760 +else
761 + SRC_URI="http://download.videolan.org/pub/videolan/testing/${MY_P}/${MY_P}.tar.xz"
762 +fi
763 +
764 +LICENSE="LGPL-2.1 GPL-2"
765 +SLOT="0/5-8" # vlc - vlccore
766 +
767 +if [[ ${PV} != *9999 ]] ; then
768 + KEYWORDS="amd64 ~arm ~ppc ppc64 -sparc x86 ~x86-fbsd"
769 +fi
770 +
771 +IUSE="a52 aalib alsa altivec atmo +audioqueue +avcodec
772 + +avformat bidi bluray cdda cddb chromaprint dbus dc1394 debug
773 + directfb directx dts dvb +dvbpsi dvd dxva2 elibc_glibc +encode faad fdk
774 + fluidsynth +ffmpeg flac fontconfig +gcrypt gme gnome gnutls
775 + growl httpd ieee1394 jack jpeg kate kde libass libav libcaca libnotify
776 + +libsamplerate libtiger linsys libtar lirc live lua
777 + macosx-dialog-provider macosx-eyetv macosx-quartztext macosx-qtkit
778 + matroska media-library cpu_flags_x86_mmx modplug mp3 mpeg
779 + mtp musepack ncurses neon ogg omxil opencv opengl optimisememory opus
780 + png postproc projectm pulseaudio +qt4 qt5 rdp rtsp run-as-root samba
781 + schroedinger sdl sdl-image sftp shout sid skins speex cpu_flags_x86_sse svg +swscale
782 + taglib theora tremor truetype twolame udev upnp vaapi v4l vcdx vdpau
783 + vlm vnc vorbis vpx wma-fixed +X x264 x265 +xcb xml xv zeroconf zvbi"
784 +
785 +RDEPEND="
786 + !<media-video/ffmpeg-1.2:0
787 + dev-libs/libgpg-error:0
788 + net-dns/libidn:0
789 + >=sys-libs/zlib-1.2.5.1-r2:0[minizip]
790 + virtual/libintl:0
791 + a52? ( >=media-libs/a52dec-0.7.4-r3:0 )
792 + aalib? ( media-libs/aalib:0 )
793 + alsa? ( >=media-libs/alsa-lib-1.0.24:0 )
794 + avcodec? (
795 + !libav? (
796 + >=media-video/ffmpeg-2.8:0=
797 + )
798 + libav? ( >=media-video/libav-11:0= )
799 + )
800 + avformat? (
801 + !libav? (
802 + >=media-video/ffmpeg-2.8:0=
803 + )
804 + libav? ( media-video/libav:0= )
805 + )
806 + bidi? ( >=dev-libs/fribidi-0.10.4:0 )
807 + bluray? ( >=media-libs/libbluray-0.3:0 )
808 + cddb? ( >=media-libs/libcddb-1.2:0 )
809 + chromaprint? ( >=media-libs/chromaprint-0.6:0 )
810 + dbus? ( >=sys-apps/dbus-1.6:0 )
811 + dc1394? ( >=sys-libs/libraw1394-2.0.1:0 >=media-libs/libdc1394-2.1:2 )
812 + directfb? ( dev-libs/DirectFB:0 sys-libs/zlib:0 )
813 + dts? ( >=media-libs/libdca-0.0.5:0 )
814 + dvbpsi? ( >=media-libs/libdvbpsi-0.2.1:0= )
815 + dvd? ( >=media-libs/libdvdread-4.9:0 >=media-libs/libdvdnav-4.9:0 )
816 + elibc_glibc? ( >=sys-libs/glibc-2.8:2.2 )
817 + faad? ( >=media-libs/faad2-2.6.1:0 )
818 + fdk? ( media-libs/fdk-aac:0 )
819 + flac? ( >=media-libs/libogg-1:0 >=media-libs/flac-1.1.2:0 )
820 + fluidsynth? ( >=media-sound/fluidsynth-1.1.2:0 )
821 + fontconfig? ( media-libs/fontconfig:1.0 )
822 + gcrypt? ( >=dev-libs/libgcrypt-1.2.0:0= )
823 + gme? ( media-libs/game-music-emu:0 )
824 + gnome? ( gnome-base/gnome-vfs:2 dev-libs/glib:2 )
825 + gnutls? ( >=net-libs/gnutls-3.0.20:0 )
826 + ieee1394? ( >=sys-libs/libraw1394-2.0.1:0 >=sys-libs/libavc1394-0.5.3:0 )
827 + jack? ( >=media-sound/jack-audio-connection-kit-0.99.0-r1:0 )
828 + jpeg? ( virtual/jpeg:0 )
829 + kate? ( >=media-libs/libkate-0.3:0 )
830 + libass? ( >=media-libs/libass-0.9.8:0 media-libs/fontconfig:1.0 )
831 + libcaca? ( >=media-libs/libcaca-0.99_beta14:0 )
832 + libnotify? ( x11-libs/libnotify:0 x11-libs/gtk+:2 x11-libs/gdk-pixbuf:2 dev-libs/glib:2 )
833 + libsamplerate? ( media-libs/libsamplerate:0 )
834 + libtar? ( >=dev-libs/libtar-1.2.11-r3:0 )
835 + libtiger? ( >=media-libs/libtiger-0.3.1:0 )
836 + linsys? ( >=media-libs/zvbi-0.2.28:0 )
837 + lirc? ( app-misc/lirc:0 )
838 + live? ( >=media-plugins/live-2011.12.23:0 )
839 + lua? ( >=dev-lang/lua-5.1:0 )
840 + matroska? ( >=dev-libs/libebml-1:0= >=media-libs/libmatroska-1:0= )
841 + modplug? ( >=media-libs/libmodplug-0.8.4:0 !~media-libs/libmodplug-0.8.8 )
842 + mp3? ( media-libs/libmad:0 )
843 + mpeg? ( >=media-libs/libmpeg2-0.3.2:0 )
844 + mtp? ( >=media-libs/libmtp-1:0 )
845 + musepack? ( >=media-sound/musepack-tools-444:0 )
846 + ncurses? ( sys-libs/ncurses:0=[unicode] )
847 + ogg? ( >=media-libs/libogg-1:0 )
848 + opencv? ( >media-libs/opencv-2:0 )
849 + opengl? ( virtual/opengl:0 >=x11-libs/libX11-1.3.99.901:0 )
850 + opus? ( >=media-libs/opus-1.0.3:0 )
851 + png? ( media-libs/libpng:0= sys-libs/zlib:0 )
852 + postproc? (
853 + !libav? ( >=media-video/ffmpeg-2.2:0= )
854 + libav? ( media-libs/libpostproc:0= )
855 + )
856 + projectm? ( media-libs/libprojectm:0 media-fonts/dejavu:0 )
857 + pulseaudio? ( >=media-sound/pulseaudio-1:0 )
858 + qt4? ( >=dev-qt/qtgui-4.6:4 >=dev-qt/qtcore-4.6:4 )
859 + qt5? ( >=dev-qt/qtgui-5.1:5 >=dev-qt/qtcore-5.1:5 >=dev-qt/qtwidgets-5.5.1-r1:5
860 + >=dev-qt/qtx11extras-5.1:5 )
861 + rdp? ( >=net-misc/freerdp-1.0.1:0=[client] <net-misc/freerdp-2 )
862 + samba? ( || ( ( >=net-fs/samba-3.4.6:0[smbclient] <net-fs/samba-4.0.0_alpha1:0[smbclient] )
863 + >=net-fs/samba-4.0.0_alpha1:0[client] ) )
864 + schroedinger? ( >=media-libs/schroedinger-1.0.10:0 )
865 + sdl? ( >=media-libs/libsdl-1.2.10:0
866 + sdl-image? ( >=media-libs/sdl-image-1.2.10:0 sys-libs/zlib:0 ) )
867 + sftp? ( net-libs/libssh2:0 )
868 + shout? ( >=media-libs/libshout-2.1:0 )
869 + sid? ( media-libs/libsidplay:2 )
870 + skins? ( x11-libs/libXext:0 x11-libs/libXpm:0 x11-libs/libXinerama:0 )
871 + speex? ( media-libs/speex:0 )
872 + svg? ( >=gnome-base/librsvg-2.9:2 >=x11-libs/cairo-1.13.1:0 )
873 + swscale? (
874 + !libav? ( media-video/ffmpeg:0= )
875 + libav? ( media-video/libav:0= )
876 + )
877 + taglib? ( >=media-libs/taglib-1.9:0 sys-libs/zlib:0 )
878 + theora? ( >=media-libs/libtheora-1.0_beta3:0 )
879 + tremor? ( media-libs/tremor:0 )
880 + truetype? ( media-libs/freetype:2 virtual/ttf-fonts:0
881 + !fontconfig? ( media-fonts/dejavu:0 ) )
882 + twolame? ( media-sound/twolame:0 )
883 + udev? ( >=virtual/udev-142:0 )
884 + upnp? ( net-libs/libupnp:0 )
885 + v4l? ( media-libs/libv4l:0 )
886 + vaapi? (
887 + x11-libs/libva:0[X,drm]
888 + !libav? ( >=media-video/ffmpeg-2.8:0=[vaapi] )
889 + libav? ( media-video/libav:0=[vaapi] )
890 + )
891 + vcdx? ( >=dev-libs/libcdio-0.78.2:0 >=media-video/vcdimager-0.7.22:0 )
892 + zeroconf? ( >=net-dns/avahi-0.6:0[dbus] )
893 +"
894 +
895 +# Temporarily block non-live FFMPEG versions as they break vdpau, 9999 works;
896 +# thus we'll have to wait for a new release there.
897 +RDEPEND="${RDEPEND}
898 + vdpau? (
899 + >=x11-libs/libvdpau-0.6:0
900 + !libav? (
901 + >=media-video/ffmpeg-2.8:0=
902 + )
903 + libav? ( >=media-video/libav-10:0= )
904 + )
905 + vnc? ( >=net-libs/libvncserver-0.9.9:0 )
906 + vorbis? ( >=media-libs/libvorbis-1.1:0 )
907 + vpx? ( media-libs/libvpx:0= )
908 + X? ( x11-libs/libX11:0 )
909 + x264? ( >=media-libs/x264-0.0.20090923:0= )
910 + x265? ( media-libs/x265:0= )
911 + xcb? ( >=x11-libs/libxcb-1.6:0 >=x11-libs/xcb-util-0.3.4:0 >=x11-libs/xcb-util-keysyms-0.3.4:0 )
912 + xml? ( >=dev-libs/libxml2-2.5:2 )
913 + zvbi? ( >=media-libs/zvbi-0.2.25:0 )
914 +"
915 +
916 +DEPEND="${RDEPEND}
917 + kde? ( >=kde-base/kdelibs-4:4 )
918 + xcb? ( x11-proto/xproto:0 )
919 + app-arch/xz-utils:0
920 + x86? ( dev-lang/yasm:* )
921 + amd64? ( dev-lang/yasm:* )
922 + >=sys-devel/gettext-0.18.3:*
923 + virtual/pkgconfig:*
924 +"
925 +
926 +REQUIRED_USE="
927 + aalib? ( X )
928 + bidi? ( truetype )
929 + cddb? ( cdda )
930 + dvb? ( dvbpsi )
931 + dxva2? ( avcodec )
932 + ffmpeg? ( avcodec avformat swscale )
933 + fontconfig? ( truetype )
934 + gnutls? ( gcrypt )
935 + httpd? ( lua )
936 + libcaca? ( X )
937 + libtar? ( skins )
938 + libtiger? ( kate )
939 + qt4? ( X !qt5 )
940 + qt5? ( X !qt4 )
941 + sdl? ( X )
942 + skins? ( truetype X xml ^^ ( qt4 qt5 ) )
943 + vaapi? ( avcodec X )
944 + vdpau? ( xcb )
945 + vlm? ( encode )
946 + xv? ( xcb )
947 +"
948 +
949 +PATCHES=(
950 + # Fix build system mistake.
951 + "${FILESDIR}"/${PN}-2.1.0-fix-libtremor-libs.patch
952 +
953 + # Patch up incompatibilities and reconfigure autotools.
954 + "${FILESDIR}"/${PN}-9999-libva-1.2.1-compat.patch
955 +
956 + # Fix up broken audio when skipping using a fixed reversed bisected commit.
957 + "${FILESDIR}"/${PN}-2.1.0-TomWij-bisected-PA-broken-underflow.patch
958 +
959 + # Bug #541678
960 + "${FILESDIR}"/qt4-select.patch
961 +
962 + # Allow QT5.5 since Gentoo has a patched QTwidgets
963 + "${FILESDIR}"/${PN}-2.2.2-qt5widgets.patch
964 +
965 + # Bug #575072
966 + "${FILESDIR}"/${PN}-2.2.4-relax_ffmpeg.patch
967 + "${FILESDIR}"/${PN}-2.2.4-ffmpeg3.patch
968 +
969 + # BUg #587954
970 + "${FILESDIR}"/${PN}-2.2.4-gcc6-fixup.patch
971 +)
972 +
973 +S="${WORKDIR}/${MY_P}"
974 +
975 +pkg_setup() {
976 + if [[ "${MERGE_TYPE}" != "binary" ]] && tc-is-gcc ; then
977 + if ! version_is_at_least 4.5 $(gcc-version) ; then
978 + die "You need to have at least >=sys-devel/gcc-4.5 to build and/or have a working vlc, see bug #426754."
979 + fi
980 + fi
981 +}
982 +
983 +src_unpack() {
984 + if [ "${PV%9999}" != "${PV}" ] ; then
985 + git-r3_src_unpack
986 + else
987 + unpack ${A}
988 + fi
989 +}
990 +
991 +src_prepare() {
992 + # Remove unnecessary warnings about unimplemented pragmas on gcc for now.
993 + # Need to recheck this with gcc 4.9 and every subsequent minor bump of gcc.
994 + #
995 + # config.h:792: warning: ignoring #pragma STDC FENV_ACCESS [-Wunknown-pragmas]
996 + # config.h:793: warning: ignoring #pragma STDC FP_CONTRACT [-Wunknown-pragmas]
997 + #
998 + # https://gcc.gnu.org/c99status.html
999 + if tc-is-gcc ; then
1000 + sed -i 's/ifndef __FAST_MATH__/if 0/g' configure.ac || die
1001 + fi
1002 +
1003 + # Bootstrap when we are on a git checkout.
1004 + if [[ "${PV%9999}" != "${PV}" ]] ; then
1005 + ./bootstrap
1006 + fi
1007 +
1008 + # Make it build with libtool 1.5
1009 + rm -f m4/lt* m4/libtool.m4 || die
1010 +
1011 + # We are not in a real git checkout due to the absence of a .git directory.
1012 + touch src/revision.txt || die
1013 +
1014 + default
1015 +
1016 + # Don't use --started-from-file when not using dbus.
1017 + if ! use dbus ; then
1018 + sed -i 's/ --started-from-file//' share/vlc.desktop.in || die
1019 + fi
1020 +
1021 + eautoreconf
1022 +
1023 + # Disable automatic running of tests.
1024 + find . -name 'Makefile.in' -exec sed -i 's/\(..*\)check-TESTS/\1/' {} \; || die
1025 +
1026 + # If qtchooser is installed, it may break the build, because moc,rcc and uic binaries for wrong qt version may be used.
1027 + # Setting QT_SELECT environment variable will enforce correct binaries.
1028 + if use qt4; then
1029 + export QT_SELECT=qt4
1030 + elif use qt5; then
1031 + export QT_SELECT=qt5
1032 + fi
1033 +}
1034 +
1035 +src_configure() {
1036 + # Compatibility fix for Samba 4.
1037 + use samba && append-cppflags "-I/usr/include/samba-4.0"
1038 +
1039 + # We need to disable -fstack-check if use >=gcc 4.8.0.
1040 + # See bug #499996
1041 + use x86 && append-cflags $(test-flags-CC -fno-stack-check)
1042 +
1043 + # Needs libresid-builder from libsidplay:2 which is in another directory...
1044 + # FIXME!
1045 + append-ldflags "-L/usr/$(get_libdir)/sidplay/builders/"
1046 +
1047 + if use truetype || use projectm ; then
1048 + local dejavu="/usr/share/fonts/dejavu/"
1049 + myconf="--with-default-font=${dejavu}/DejaVuSans.ttf \
1050 + --with-default-font-family=Sans \
1051 + --with-default-monospace-font=${dejavu}/DejaVuSansMono.ttf
1052 + --with-default-monospace-font-family=Monospace"
1053 + fi
1054 +
1055 + local qt_flag=""
1056 + if use qt4 ; then
1057 + qt_flag="--enable-qt=4"
1058 + elif use qt5 ; then
1059 + qt_flag="--enable-qt=5"
1060 + else
1061 + qt_flag="--disable-qt"
1062 + fi
1063 +
1064 + econf \
1065 + ${myconf} \
1066 + --enable-vlc \
1067 + --docdir=/usr/share/doc/${PF} \
1068 + --disable-dependency-tracking \
1069 + --disable-optimizations \
1070 + --disable-update-check \
1071 + --enable-fast-install \
1072 + --enable-screen \
1073 + $(use_enable a52) \
1074 + $(use_enable aalib aa) \
1075 + $(use_enable alsa) \
1076 + $(use_enable altivec) \
1077 + $(use_enable atmo) \
1078 + $(use_enable audioqueue) \
1079 + $(use_enable avcodec) \
1080 + $(use_enable avformat) \
1081 + $(use_enable bidi fribidi) \
1082 + $(use_enable bluray) \
1083 + $(use_enable cdda vcd) \
1084 + $(use_enable cddb libcddb) \
1085 + $(use_enable chromaprint) \
1086 + $(use_enable dbus) \
1087 + $(use_enable directfb) \
1088 + $(use_enable directx) \
1089 + $(use_enable dc1394) \
1090 + $(use_enable debug) \
1091 + $(use_enable dts dca) \
1092 + $(use_enable dvbpsi) \
1093 + $(use_enable dvd dvdread) $(use_enable dvd dvdnav) \
1094 + $(use_enable dxva2) \
1095 + $(use_enable encode sout) \
1096 + $(use_enable faad) \
1097 + $(use_enable fdk fdkaac) \
1098 + $(use_enable flac) \
1099 + $(use_enable fluidsynth) \
1100 + $(use_enable fontconfig) \
1101 + $(use_enable gcrypt libgcrypt) \
1102 + $(use_enable gme) \
1103 + $(use_enable gnome gnomevfs) \
1104 + $(use_enable gnutls) \
1105 + $(use_enable growl) \
1106 + $(use_enable httpd) \
1107 + $(use_enable ieee1394 dv1394) \
1108 + $(use_enable jack) \
1109 + $(use_enable jpeg) \
1110 + $(use_enable kate) \
1111 + $(use_with kde kde-solid) \
1112 + $(use_enable libass) \
1113 + $(use_enable libcaca caca) \
1114 + $(use_enable libnotify notify) \
1115 + $(use_enable libsamplerate samplerate) \
1116 + $(use_enable libtar) \
1117 + $(use_enable libtiger tiger) \
1118 + $(use_enable linsys) \
1119 + $(use_enable lirc) \
1120 + $(use_enable live live555) \
1121 + $(use_enable lua) \
1122 + $(use_enable macosx-dialog-provider) \
1123 + $(use_enable macosx-eyetv) \
1124 + $(use_enable macosx-qtkit) \
1125 + $(use_enable macosx-quartztext) \
1126 + $(use_enable matroska mkv) \
1127 + $(use_enable cpu_flags_x86_mmx mmx) \
1128 + $(use_enable modplug mod) \
1129 + $(use_enable mp3 mad) \
1130 + $(use_enable mpeg libmpeg2) \
1131 + $(use_enable mtp) \
1132 + $(use_enable musepack mpc) \
1133 + $(use_enable ncurses) \
1134 + $(use_enable neon) \
1135 + $(use_enable ogg) $(use_enable ogg mux_ogg) \
1136 + $(use_enable omxil) \
1137 + $(use_enable omxil omxil-vout) \
1138 + $(use_enable opencv) \
1139 + $(use_enable opengl glspectrum) \
1140 + $(use_enable opus) \
1141 + $(use_enable optimisememory optimize-memory) \
1142 + $(use_enable png) \
1143 + $(use_enable postproc) \
1144 + $(use_enable projectm) \
1145 + $(use_enable pulseaudio pulse) \
1146 + ${qt_flag} \
1147 + $(use_enable rdp freerdp) \
1148 + $(use_enable rtsp realrtsp) \
1149 + $(use_enable run-as-root) \
1150 + $(use_enable samba smbclient) \
1151 + $(use_enable schroedinger) \
1152 + $(use_enable sdl) \
1153 + $(use_enable sdl-image) \
1154 + $(use_enable sid) \
1155 + $(use_enable sftp) \
1156 + $(use_enable shout) \
1157 + $(use_enable skins skins2) \
1158 + $(use_enable speex) \
1159 + $(use_enable cpu_flags_x86_sse sse) \
1160 + $(use_enable svg) \
1161 + $(use_enable svg svgdec) \
1162 + $(use_enable swscale) \
1163 + $(use_enable taglib) \
1164 + $(use_enable theora) \
1165 + $(use_enable tremor) \
1166 + $(use_enable truetype freetype) \
1167 + $(use_enable twolame) \
1168 + $(use_enable udev) \
1169 + $(use_enable upnp) \
1170 + $(use_enable v4l v4l2) \
1171 + $(use_enable vaapi libva) \
1172 + $(use_enable vcdx) \
1173 + $(use_enable vdpau) \
1174 + $(use_enable vlm) \
1175 + $(use_enable vnc) \
1176 + $(use_enable vorbis) \
1177 + $(use_enable vpx) \
1178 + $(use_enable wma-fixed) \
1179 + $(use_with X x) \
1180 + $(use_enable x264) \
1181 + $(use_enable x265) \
1182 + $(use_enable xcb) \
1183 + $(use_enable xml libxml2) \
1184 + $(use_enable xv xvideo) \
1185 + $(use_enable zeroconf bonjour) \
1186 + $(use_enable zvbi) $(use_enable !zvbi telx) \
1187 + --disable-asdcp \
1188 + --disable-coverage \
1189 + --disable-cprof \
1190 + --disable-crystalhd \
1191 + --disable-decklink \
1192 + --disable-gles1 \
1193 + --disable-gles2 \
1194 + --disable-goom \
1195 + --disable-kai \
1196 + --disable-kva \
1197 + --disable-maintainer-mode \
1198 + --disable-merge-ffmpeg \
1199 + --disable-mfx \
1200 + --disable-mmal-codec \
1201 + --disable-mmal-vout \
1202 + --disable-opensles \
1203 + --disable-oss \
1204 + --disable-quicktime \
1205 + --disable-rpi-omxil \
1206 + --disable-shine \
1207 + --disable-sndio \
1208 + --disable-vda \
1209 + --disable-vsxu \
1210 + --disable-wasapi
1211 +
1212 + # ^ We don't have these disabled libraries in the Portage tree yet.
1213 +
1214 + # _FORTIFY_SOURCE is set to 2 in config.h, which is also the default value on Gentoo.
1215 + # Other values of _FORTIFY_SOURCE may break the build (bug 523144), so definition should not be removed from config.h.
1216 + # To prevent redefinition warnings, we undefine _FORTIFY_SOURCE at the very start of config.h file
1217 + sed -i '1i#undef _FORTIFY_SOURCE' "${S}"/config.h || die
1218 +}
1219 +
1220 +src_test() {
1221 + virtx emake check-TESTS
1222 +}
1223 +
1224 +DOCS="AUTHORS THANKS NEWS README doc/fortunes.txt doc/intf-vcd.txt"
1225 +
1226 +src_install() {
1227 + default
1228 +
1229 + # Punt useless libtool's .la files
1230 + find "${D}" -name '*.la' -delete
1231 +}
1232 +
1233 +pkg_postinst() {
1234 + if [ "$ROOT" = "/" ] && [ -x "/usr/$(get_libdir)/vlc/vlc-cache-gen" ] ; then
1235 + einfo "Running /usr/$(get_libdir)/vlc/vlc-cache-gen on /usr/$(get_libdir)/vlc/plugins/"
1236 + "/usr/$(get_libdir)/vlc/vlc-cache-gen" -f "/usr/$(get_libdir)/vlc/plugins/"
1237 + else
1238 + ewarn "We cannot run vlc-cache-gen (most likely ROOT!=/)"
1239 + ewarn "Please run /usr/$(get_libdir)/vlc/vlc-cache-gen manually"
1240 + ewarn "If you do not do it, vlc will take a long time to load."
1241 + fi
1242 +}