Gentoo Archives: gentoo-commits

From: Alexis Ballier <aballier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/harvid/, media-video/harvid/files/
Date: Sun, 01 Nov 2015 11:48:57
Message-Id: 1446378519.cdcbf30d4e01200406dd04ce3e7b01a76005ca6b.aballier@gentoo
1 commit: cdcbf30d4e01200406dd04ce3e7b01a76005ca6b
2 Author: Alexis Ballier <aballier <AT> gentoo <DOT> org>
3 AuthorDate: Sun Nov 1 11:42:47 2015 +0000
4 Commit: Alexis Ballier <aballier <AT> gentoo <DOT> org>
5 CommitDate: Sun Nov 1 11:48:39 2015 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cdcbf30d
7
8 media-video/harvid : Fix build with ffmpeg git master.
9
10 Package-Manager: portage-2.2.23
11
12 media-video/harvid/files/ffmpeg29.patch | 301 ++++++++++++++++++++++++++++++++
13 media-video/harvid/harvid-0.8.0.ebuild | 10 +-
14 2 files changed, 308 insertions(+), 3 deletions(-)
15
16 diff --git a/media-video/harvid/files/ffmpeg29.patch b/media-video/harvid/files/ffmpeg29.patch
17 new file mode 100644
18 index 0000000..09fe15a
19 --- /dev/null
20 +++ b/media-video/harvid/files/ffmpeg29.patch
21 @@ -0,0 +1,301 @@
22 +Index: harvid-0.8.0/libharvid/decoder_ctrl.c
23 +===================================================================
24 +--- harvid-0.8.0.orig/libharvid/decoder_ctrl.c
25 ++++ harvid-0.8.0/libharvid/decoder_ctrl.c
26 +@@ -29,7 +29,7 @@
27 + #include "ffcompat.h"
28 + #include "dlog.h"
29 +
30 +-#define DEFAULT_PIX_FMT (PIX_FMT_RGB24) // TODO global default
31 ++#define DEFAULT_PIX_FMT (AV_PIX_FMT_RGB24) // TODO global default
32 +
33 + //#define HASH_EMIT_KEYS 3
34 + #define HASH_FUNCTION HASH_SAX
35 +@@ -104,15 +104,15 @@ static inline int my_open_movie(void **v
36 + }
37 + ff_create(vd);
38 + assert (
39 +- render_fmt == PIX_FMT_YUV420P
40 +- || render_fmt == PIX_FMT_YUV440P
41 +- || render_fmt == PIX_FMT_YUYV422
42 +- || render_fmt == PIX_FMT_UYVY422
43 +- || render_fmt == PIX_FMT_RGB24
44 +- || render_fmt == PIX_FMT_BGR24
45 +- || render_fmt == PIX_FMT_RGBA
46 +- || render_fmt == PIX_FMT_ARGB
47 +- || render_fmt == PIX_FMT_BGRA
48 ++ render_fmt == AV_PIX_FMT_YUV420P
49 ++ || render_fmt == AV_PIX_FMT_YUV440P
50 ++ || render_fmt == AV_PIX_FMT_YUYV422
51 ++ || render_fmt == AV_PIX_FMT_UYVY422
52 ++ || render_fmt == AV_PIX_FMT_RGB24
53 ++ || render_fmt == AV_PIX_FMT_BGR24
54 ++ || render_fmt == AV_PIX_FMT_RGBA
55 ++ || render_fmt == AV_PIX_FMT_ARGB
56 ++ || render_fmt == AV_PIX_FMT_BGRA
57 + );
58 +
59 + if (!ff_open_movie (*vd, fn, render_fmt)) {
60 +@@ -144,7 +144,7 @@ static inline void my_get_info_canonical
61 + static JVOBJECT *newjvo (JVOBJECT *jvo, pthread_mutex_t *appendlock) {
62 + debugmsg(DEBUG_DCTL, "DCTL: newjvo() allocated new decoder object\n");
63 + JVOBJECT *n = calloc(1, sizeof(JVOBJECT));
64 +- n->fmt = PIX_FMT_NONE;
65 ++ n->fmt = AV_PIX_FMT_NONE;
66 + n->frame = -1;
67 + pthread_mutex_init(&n->lock, NULL);
68 + JVOBJECT *cptr = jvo;
69 +@@ -175,8 +175,8 @@ static JVOBJECT *testjvd(JVOBJECT *jvo,
70 + if (!(cptr->flags&VOF_VALID) || cptr->id != id) {
71 + continue;
72 + }
73 +- if (fmt != PIX_FMT_NONE && cptr->fmt != fmt
74 +- && cptr->fmt != PIX_FMT_NONE
75 ++ if (fmt != AV_PIX_FMT_NONE && cptr->fmt != fmt
76 ++ && cptr->fmt != AV_PIX_FMT_NONE
77 + ) {
78 + continue;
79 + }
80 +@@ -324,7 +324,7 @@ static int clearjvo(JVD *jvd, int f, int
81 + my_destroy(&cptr->decoder);
82 + cptr->decoder = NULL;
83 + cptr->flags &= ~VOF_OPEN;
84 +- cptr->fmt = PIX_FMT_NONE;
85 ++ cptr->fmt = AV_PIX_FMT_NONE;
86 + }
87 +
88 + hashref_delete_jvo(jvd, cptr);
89 +@@ -410,7 +410,7 @@ static JVOBJECT *getjvo(JVD *jvd) {
90 + if (cptr->flags&(VOF_OPEN)) {
91 + my_destroy(&cptr->decoder); // close it.
92 + cptr->decoder = NULL; // not really need..
93 +- cptr->fmt = PIX_FMT_NONE;
94 ++ cptr->fmt = AV_PIX_FMT_NONE;
95 + }
96 +
97 + hashref_delete_jvo(jvd, cptr);
98 +@@ -563,7 +563,7 @@ static JVOBJECT *new_video_object(JVD *j
99 +
100 +
101 + jvo->id = id;
102 +- jvo->fmt = fmt == PIX_FMT_NONE ? DEFAULT_PIX_FMT : fmt;
103 ++ jvo->fmt = fmt == AV_PIX_FMT_NONE ? DEFAULT_PIX_FMT : fmt;
104 + jvo->frame = -1;
105 + jvo->flags |= VOF_VALID;
106 +
107 +@@ -619,7 +619,7 @@ static void * dctrl_get_decoder(void *p,
108 + * use it IFF frame == -1 (ie. non-blocking info lookups) */
109 + if (frame < 0) {
110 + pthread_rwlock_rdlock(&jvd->lock_jdh);
111 +- if (fmt == PIX_FMT_NONE) {
112 ++ if (fmt == AV_PIX_FMT_NONE) {
113 + HASH_FIND(hhi, jvd->jvi, &id, sizeof(unsigned short), jvo);
114 + } else {
115 + const JVOBJECT jvt = {id, fmt, 0};
116 +@@ -670,7 +670,7 @@ static void * dctrl_get_decoder(void *p,
117 + jvo->lru = time(NULL);
118 + pthread_mutex_unlock(&jvo->lock);
119 +
120 +- if (fmt == PIX_FMT_NONE) fmt = DEFAULT_PIX_FMT;
121 ++ if (fmt == AV_PIX_FMT_NONE) fmt = DEFAULT_PIX_FMT;
122 +
123 + if (!my_open_movie(&jvo->decoder, get_fn(jvd, jvo->id), fmt)) {
124 + pthread_mutex_lock(&jvo->lock);
125 +@@ -798,7 +798,7 @@ int dctrl_decode(void *p, unsigned short
126 +
127 + int dctrl_get_info(void *p, unsigned short id, VInfo *i) {
128 + int err = 0;
129 +- JVOBJECT *jvo = (JVOBJECT*) dctrl_get_decoder(p, id, PIX_FMT_NONE, -1, &err);
130 ++ JVOBJECT *jvo = (JVOBJECT*) dctrl_get_decoder(p, id, AV_PIX_FMT_NONE, -1, &err);
131 + if (!jvo) return err;
132 + my_get_info(jvo->decoder, i);
133 + jvo->hitcount_info++;
134 +Index: harvid-0.8.0/libharvid/ffdecoder.c
135 +===================================================================
136 +--- harvid-0.8.0.orig/libharvid/ffdecoder.c
137 ++++ harvid-0.8.0/libharvid/ffdecoder.c
138 +@@ -102,7 +102,7 @@ static int ff_getbuffersize(void *ptr, s
139 +
140 + static void render_empty_frame(ffst *ff, uint8_t* buf, int w, int h, int xoff, int ys) {
141 + switch (ff->render_fmt) {
142 +- case PIX_FMT_UYVY422:
143 ++ case AV_PIX_FMT_UYVY422:
144 + {
145 + int i;
146 + for (i = 0; i < w*h*2; i += 2) {
147 +@@ -110,7 +110,7 @@ static void render_empty_frame(ffst *ff,
148 + }
149 + }
150 + break;
151 +- case PIX_FMT_YUYV422:
152 ++ case AV_PIX_FMT_YUYV422:
153 + {
154 + int i;
155 + for (i = 0; i < w*h*2; i += 2) {
156 +@@ -118,25 +118,25 @@ static void render_empty_frame(ffst *ff,
157 + }
158 + }
159 + break;
160 +- case PIX_FMT_YUV420P:
161 ++ case AV_PIX_FMT_YUV420P:
162 + {
163 + size_t Ylen = w * h;
164 + memset(buf, 0, Ylen);
165 + memset(buf+Ylen, 0x80, Ylen/2);
166 + }
167 + break;
168 +- case PIX_FMT_YUV440P:
169 ++ case AV_PIX_FMT_YUV440P:
170 + {
171 + size_t Ylen = w * h;
172 + memset(buf, 0, Ylen);
173 + memset(buf+Ylen, 0x80, Ylen);
174 + }
175 + break;
176 +- case PIX_FMT_BGR24:
177 +- case PIX_FMT_RGB24:
178 +- case PIX_FMT_RGBA:
179 +- case PIX_FMT_BGRA:
180 +- case PIX_FMT_ARGB:
181 ++ case AV_PIX_FMT_BGR24:
182 ++ case AV_PIX_FMT_RGB24:
183 ++ case AV_PIX_FMT_RGBA:
184 ++ case AV_PIX_FMT_BGRA:
185 ++ case AV_PIX_FMT_ARGB:
186 + memset(buf, 0, ff_getbuffersize(ff, NULL));
187 + break;
188 + default:
189 +@@ -147,8 +147,8 @@ static void render_empty_frame(ffst *ff,
190 + #if 1 // draw cross
191 + int x,y;
192 + switch (ff->render_fmt) {
193 +- case PIX_FMT_YUV420P:
194 +- case PIX_FMT_YUV440P:
195 ++ case AV_PIX_FMT_YUV420P:
196 ++ case AV_PIX_FMT_YUV440P:
197 + for (x = 0, y = 0; x < w-1; x++, y = h * x / w) {
198 + int off = (x + w * y);
199 + buf[off]=127; buf[off+1]=127;
200 +@@ -156,8 +156,8 @@ static void render_empty_frame(ffst *ff,
201 + buf[off]=127; buf[off+1]=127;
202 + }
203 + break;
204 +- case PIX_FMT_YUYV422:
205 +- case PIX_FMT_UYVY422:
206 ++ case AV_PIX_FMT_YUYV422:
207 ++ case AV_PIX_FMT_UYVY422:
208 + for (x = 0, y = 0; x < w-1; x++, y = h * x / w) {
209 + int off = (x + w * y) * 2;
210 + buf[off] = 127; buf[off+1] = 127;
211 +@@ -165,8 +165,8 @@ static void render_empty_frame(ffst *ff,
212 + buf[off] = 127; buf[off+1] = 127;
213 + }
214 + break;
215 +- case PIX_FMT_RGB24:
216 +- case PIX_FMT_BGR24:
217 ++ case AV_PIX_FMT_RGB24:
218 ++ case AV_PIX_FMT_BGR24:
219 + for (x = 0, y = 0; x < w-1; x++, y = h * x / w) {
220 + int off = 3 * (x + w * y);
221 + buf[off]=255; buf[off+1]=255; buf[off+2]=255;
222 +@@ -174,11 +174,11 @@ static void render_empty_frame(ffst *ff,
223 + buf[off]=255; buf[off+1]=255; buf[off+2]=255;
224 + }
225 + break;
226 +- case PIX_FMT_RGBA:
227 +- case PIX_FMT_BGRA:
228 +- case PIX_FMT_ARGB:
229 ++ case AV_PIX_FMT_RGBA:
230 ++ case AV_PIX_FMT_BGRA:
231 ++ case AV_PIX_FMT_ARGB:
232 + {
233 +- const int O = (ff->render_fmt == PIX_FMT_ARGB) ? 1 : 0;
234 ++ const int O = (ff->render_fmt == AV_PIX_FMT_ARGB) ? 1 : 0;
235 + for (x = 0, y = 0; x < w-1; x++, y = h * x / w) {
236 + int off = 4 * (x + w * y) + O;
237 + buf[off]=255; buf[off+1]=255; buf[off+2]=255;
238 +@@ -749,7 +749,7 @@ void ff_get_info_canonical(void *ptr, VI
239 +
240 + void ff_create(void **ff) {
241 + (*((ffst**)ff)) = (ffst*) calloc(1, sizeof(ffst));
242 +- (*((ffst**)ff))->render_fmt = PIX_FMT_RGB24;
243 ++ (*((ffst**)ff))->render_fmt = AV_PIX_FMT_RGB24;
244 + (*((ffst**)ff))->want_ignstart = 0;
245 + (*((ffst**)ff))->want_genpts = 0;
246 + (*((ffst**)ff))->packet.data = NULL;
247 +@@ -792,25 +792,25 @@ void ff_resize(void *ptr, int w, int h,
248 +
249 + const char * ff_fmt_to_text(int fmt) {
250 + switch (fmt) {
251 +- case PIX_FMT_NONE:
252 ++ case AV_PIX_FMT_NONE:
253 + return "-";
254 +- case PIX_FMT_BGR24:
255 ++ case AV_PIX_FMT_BGR24:
256 + return "BGR24";
257 +- case PIX_FMT_RGB24:
258 ++ case AV_PIX_FMT_RGB24:
259 + return "RGB24";
260 +- case PIX_FMT_RGBA:
261 ++ case AV_PIX_FMT_RGBA:
262 + return "RGBA";
263 +- case PIX_FMT_BGRA:
264 ++ case AV_PIX_FMT_BGRA:
265 + return "BGRA";
266 +- case PIX_FMT_ARGB:
267 ++ case AV_PIX_FMT_ARGB:
268 + return "ARGB";
269 +- case PIX_FMT_YUV420P:
270 ++ case AV_PIX_FMT_YUV420P:
271 + return "YUV420P";
272 +- case PIX_FMT_YUYV422:
273 ++ case AV_PIX_FMT_YUYV422:
274 + return "YUYV422";
275 +- case PIX_FMT_UYVY422:
276 ++ case AV_PIX_FMT_UYVY422:
277 + return "UYVY422";
278 +- case PIX_FMT_YUV440P:
279 ++ case AV_PIX_FMT_YUV440P:
280 + return "YUV440P";
281 + default:
282 + return "?";
283 +Index: harvid-0.8.0/src/ics_handler.c
284 +===================================================================
285 +--- harvid-0.8.0.orig/src/ics_handler.c
286 ++++ harvid-0.8.0/src/ics_handler.c
287 +@@ -109,16 +109,16 @@ void parse_param(struct queryparserstate
288 + else if (!strncmp(val, "jpeg",4)) {qps->a->render_fmt = FMT_JPG; qps->a->misc_int = atoi(&val[4]);}
289 + else if (!strcmp(val, "png")) qps->a->render_fmt = FMT_PNG;
290 + else if (!strcmp(val, "ppm")) qps->a->render_fmt = FMT_PPM;
291 +- else if (!strcmp(val, "yuv")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_YUV420P;}
292 +- else if (!strcmp(val, "yuv420")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_YUV420P;}
293 +- else if (!strcmp(val, "yuv440")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_YUV440P;}
294 +- else if (!strcmp(val, "yuv422")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_YUYV422;}
295 +- else if (!strcmp(val, "uyv422")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_UYVY422;}
296 +- else if (!strcmp(val, "rgb")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_RGB24;}
297 +- else if (!strcmp(val, "bgr")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_BGR24;}
298 +- else if (!strcmp(val, "rgba")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_RGBA;}
299 +- else if (!strcmp(val, "argb")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_ARGB;}
300 +- else if (!strcmp(val, "bgra")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_BGRA;}
301 ++ else if (!strcmp(val, "yuv")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_YUV420P;}
302 ++ else if (!strcmp(val, "yuv420")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_YUV420P;}
303 ++ else if (!strcmp(val, "yuv440")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_YUV440P;}
304 ++ else if (!strcmp(val, "yuv422")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_YUYV422;}
305 ++ else if (!strcmp(val, "uyv422")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_UYVY422;}
306 ++ else if (!strcmp(val, "rgb")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_RGB24;}
307 ++ else if (!strcmp(val, "bgr")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_BGR24;}
308 ++ else if (!strcmp(val, "rgba")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_RGBA;}
309 ++ else if (!strcmp(val, "argb")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_ARGB;}
310 ++ else if (!strcmp(val, "bgra")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_BGRA;}
311 + /* info, version, rc,... format */
312 + else if (!strcmp(val, "html")) qps->a->render_fmt = OUT_HTML;
313 + else if (!strcmp(val, "xhtml")) qps->a->render_fmt = OUT_HTML;
314 +@@ -141,7 +141,7 @@ static void parse_http_query_params(stru
315 + static int parse_http_query(CONN *c, char *query, httpheader *h, ics_request_args *a) {
316 + struct queryparserstate qps = {a, NULL, 0};
317 +
318 +- a->decode_fmt = PIX_FMT_RGB24;
319 ++ a->decode_fmt = AV_PIX_FMT_RGB24;
320 + a->render_fmt = FMT_PNG;
321 + a->frame = 0;
322 + a->misc_int = 0;
323
324 diff --git a/media-video/harvid/harvid-0.8.0.ebuild b/media-video/harvid/harvid-0.8.0.ebuild
325 index 5c2db60..cb77af2 100644
326 --- a/media-video/harvid/harvid-0.8.0.ebuild
327 +++ b/media-video/harvid/harvid-0.8.0.ebuild
328 @@ -4,7 +4,7 @@
329
330 EAPI=5
331
332 -inherit toolchain-funcs multilib
333 +inherit toolchain-funcs multilib eutils
334
335 DESCRIPTION="HTTP Ardour Video Daemon"
336 HOMEPAGE="http://x42.github.io/harvid/"
337 @@ -16,8 +16,8 @@ KEYWORDS="~amd64"
338 IUSE="libav"
339
340 RDEPEND="
341 - !libav? ( media-video/ffmpeg:= )
342 - libav? ( media-video/libav:= )
343 + !libav? ( >=media-video/ffmpeg-2.6:0= )
344 + libav? ( >=media-video/libav-9:0= )
345 media-libs/libpng:0=
346 virtual/jpeg:0
347 "
348 @@ -25,6 +25,10 @@ DEPEND="${RDEPEND}
349 virtual/pkgconfig
350 "
351
352 +src_prepare() {
353 + epatch "${FILESDIR}/ffmpeg29.patch"
354 +}
355 +
356 hv_make() {
357 emake \
358 CC="$(tc-getCC)" \