summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Ballier <aballier@gentoo.org>2015-11-01 12:42:47 +0100
committerAlexis Ballier <aballier@gentoo.org>2015-11-01 12:48:39 +0100
commitcdcbf30d4e01200406dd04ce3e7b01a76005ca6b (patch)
tree94e1edb38208ec1c1e6e13cb85521d51349ab716 /media-video/harvid
parentdev-python/simplekv: Bump to 0.10.0. py3 support. (diff)
downloadgentoo-cdcbf30d4e01200406dd04ce3e7b01a76005ca6b.tar.gz
gentoo-cdcbf30d4e01200406dd04ce3e7b01a76005ca6b.tar.bz2
gentoo-cdcbf30d4e01200406dd04ce3e7b01a76005ca6b.zip
media-video/harvid : Fix build with ffmpeg git master.
Package-Manager: portage-2.2.23
Diffstat (limited to 'media-video/harvid')
-rw-r--r--media-video/harvid/files/ffmpeg29.patch301
-rw-r--r--media-video/harvid/harvid-0.8.0.ebuild10
2 files changed, 308 insertions, 3 deletions
diff --git a/media-video/harvid/files/ffmpeg29.patch b/media-video/harvid/files/ffmpeg29.patch
new file mode 100644
index 000000000000..09fe15abca27
--- /dev/null
+++ b/media-video/harvid/files/ffmpeg29.patch
@@ -0,0 +1,301 @@
+Index: harvid-0.8.0/libharvid/decoder_ctrl.c
+===================================================================
+--- harvid-0.8.0.orig/libharvid/decoder_ctrl.c
++++ harvid-0.8.0/libharvid/decoder_ctrl.c
+@@ -29,7 +29,7 @@
+ #include "ffcompat.h"
+ #include "dlog.h"
+
+-#define DEFAULT_PIX_FMT (PIX_FMT_RGB24) // TODO global default
++#define DEFAULT_PIX_FMT (AV_PIX_FMT_RGB24) // TODO global default
+
+ //#define HASH_EMIT_KEYS 3
+ #define HASH_FUNCTION HASH_SAX
+@@ -104,15 +104,15 @@ static inline int my_open_movie(void **v
+ }
+ ff_create(vd);
+ assert (
+- render_fmt == PIX_FMT_YUV420P
+- || render_fmt == PIX_FMT_YUV440P
+- || render_fmt == PIX_FMT_YUYV422
+- || render_fmt == PIX_FMT_UYVY422
+- || render_fmt == PIX_FMT_RGB24
+- || render_fmt == PIX_FMT_BGR24
+- || render_fmt == PIX_FMT_RGBA
+- || render_fmt == PIX_FMT_ARGB
+- || render_fmt == PIX_FMT_BGRA
++ render_fmt == AV_PIX_FMT_YUV420P
++ || render_fmt == AV_PIX_FMT_YUV440P
++ || render_fmt == AV_PIX_FMT_YUYV422
++ || render_fmt == AV_PIX_FMT_UYVY422
++ || render_fmt == AV_PIX_FMT_RGB24
++ || render_fmt == AV_PIX_FMT_BGR24
++ || render_fmt == AV_PIX_FMT_RGBA
++ || render_fmt == AV_PIX_FMT_ARGB
++ || render_fmt == AV_PIX_FMT_BGRA
+ );
+
+ if (!ff_open_movie (*vd, fn, render_fmt)) {
+@@ -144,7 +144,7 @@ static inline void my_get_info_canonical
+ static JVOBJECT *newjvo (JVOBJECT *jvo, pthread_mutex_t *appendlock) {
+ debugmsg(DEBUG_DCTL, "DCTL: newjvo() allocated new decoder object\n");
+ JVOBJECT *n = calloc(1, sizeof(JVOBJECT));
+- n->fmt = PIX_FMT_NONE;
++ n->fmt = AV_PIX_FMT_NONE;
+ n->frame = -1;
+ pthread_mutex_init(&n->lock, NULL);
+ JVOBJECT *cptr = jvo;
+@@ -175,8 +175,8 @@ static JVOBJECT *testjvd(JVOBJECT *jvo,
+ if (!(cptr->flags&VOF_VALID) || cptr->id != id) {
+ continue;
+ }
+- if (fmt != PIX_FMT_NONE && cptr->fmt != fmt
+- && cptr->fmt != PIX_FMT_NONE
++ if (fmt != AV_PIX_FMT_NONE && cptr->fmt != fmt
++ && cptr->fmt != AV_PIX_FMT_NONE
+ ) {
+ continue;
+ }
+@@ -324,7 +324,7 @@ static int clearjvo(JVD *jvd, int f, int
+ my_destroy(&cptr->decoder);
+ cptr->decoder = NULL;
+ cptr->flags &= ~VOF_OPEN;
+- cptr->fmt = PIX_FMT_NONE;
++ cptr->fmt = AV_PIX_FMT_NONE;
+ }
+
+ hashref_delete_jvo(jvd, cptr);
+@@ -410,7 +410,7 @@ static JVOBJECT *getjvo(JVD *jvd) {
+ if (cptr->flags&(VOF_OPEN)) {
+ my_destroy(&cptr->decoder); // close it.
+ cptr->decoder = NULL; // not really need..
+- cptr->fmt = PIX_FMT_NONE;
++ cptr->fmt = AV_PIX_FMT_NONE;
+ }
+
+ hashref_delete_jvo(jvd, cptr);
+@@ -563,7 +563,7 @@ static JVOBJECT *new_video_object(JVD *j
+
+
+ jvo->id = id;
+- jvo->fmt = fmt == PIX_FMT_NONE ? DEFAULT_PIX_FMT : fmt;
++ jvo->fmt = fmt == AV_PIX_FMT_NONE ? DEFAULT_PIX_FMT : fmt;
+ jvo->frame = -1;
+ jvo->flags |= VOF_VALID;
+
+@@ -619,7 +619,7 @@ static void * dctrl_get_decoder(void *p,
+ * use it IFF frame == -1 (ie. non-blocking info lookups) */
+ if (frame < 0) {
+ pthread_rwlock_rdlock(&jvd->lock_jdh);
+- if (fmt == PIX_FMT_NONE) {
++ if (fmt == AV_PIX_FMT_NONE) {
+ HASH_FIND(hhi, jvd->jvi, &id, sizeof(unsigned short), jvo);
+ } else {
+ const JVOBJECT jvt = {id, fmt, 0};
+@@ -670,7 +670,7 @@ static void * dctrl_get_decoder(void *p,
+ jvo->lru = time(NULL);
+ pthread_mutex_unlock(&jvo->lock);
+
+- if (fmt == PIX_FMT_NONE) fmt = DEFAULT_PIX_FMT;
++ if (fmt == AV_PIX_FMT_NONE) fmt = DEFAULT_PIX_FMT;
+
+ if (!my_open_movie(&jvo->decoder, get_fn(jvd, jvo->id), fmt)) {
+ pthread_mutex_lock(&jvo->lock);
+@@ -798,7 +798,7 @@ int dctrl_decode(void *p, unsigned short
+
+ int dctrl_get_info(void *p, unsigned short id, VInfo *i) {
+ int err = 0;
+- JVOBJECT *jvo = (JVOBJECT*) dctrl_get_decoder(p, id, PIX_FMT_NONE, -1, &err);
++ JVOBJECT *jvo = (JVOBJECT*) dctrl_get_decoder(p, id, AV_PIX_FMT_NONE, -1, &err);
+ if (!jvo) return err;
+ my_get_info(jvo->decoder, i);
+ jvo->hitcount_info++;
+Index: harvid-0.8.0/libharvid/ffdecoder.c
+===================================================================
+--- harvid-0.8.0.orig/libharvid/ffdecoder.c
++++ harvid-0.8.0/libharvid/ffdecoder.c
+@@ -102,7 +102,7 @@ static int ff_getbuffersize(void *ptr, s
+
+ static void render_empty_frame(ffst *ff, uint8_t* buf, int w, int h, int xoff, int ys) {
+ switch (ff->render_fmt) {
+- case PIX_FMT_UYVY422:
++ case AV_PIX_FMT_UYVY422:
+ {
+ int i;
+ for (i = 0; i < w*h*2; i += 2) {
+@@ -110,7 +110,7 @@ static void render_empty_frame(ffst *ff,
+ }
+ }
+ break;
+- case PIX_FMT_YUYV422:
++ case AV_PIX_FMT_YUYV422:
+ {
+ int i;
+ for (i = 0; i < w*h*2; i += 2) {
+@@ -118,25 +118,25 @@ static void render_empty_frame(ffst *ff,
+ }
+ }
+ break;
+- case PIX_FMT_YUV420P:
++ case AV_PIX_FMT_YUV420P:
+ {
+ size_t Ylen = w * h;
+ memset(buf, 0, Ylen);
+ memset(buf+Ylen, 0x80, Ylen/2);
+ }
+ break;
+- case PIX_FMT_YUV440P:
++ case AV_PIX_FMT_YUV440P:
+ {
+ size_t Ylen = w * h;
+ memset(buf, 0, Ylen);
+ memset(buf+Ylen, 0x80, Ylen);
+ }
+ break;
+- case PIX_FMT_BGR24:
+- case PIX_FMT_RGB24:
+- case PIX_FMT_RGBA:
+- case PIX_FMT_BGRA:
+- case PIX_FMT_ARGB:
++ case AV_PIX_FMT_BGR24:
++ case AV_PIX_FMT_RGB24:
++ case AV_PIX_FMT_RGBA:
++ case AV_PIX_FMT_BGRA:
++ case AV_PIX_FMT_ARGB:
+ memset(buf, 0, ff_getbuffersize(ff, NULL));
+ break;
+ default:
+@@ -147,8 +147,8 @@ static void render_empty_frame(ffst *ff,
+ #if 1 // draw cross
+ int x,y;
+ switch (ff->render_fmt) {
+- case PIX_FMT_YUV420P:
+- case PIX_FMT_YUV440P:
++ case AV_PIX_FMT_YUV420P:
++ case AV_PIX_FMT_YUV440P:
+ for (x = 0, y = 0; x < w-1; x++, y = h * x / w) {
+ int off = (x + w * y);
+ buf[off]=127; buf[off+1]=127;
+@@ -156,8 +156,8 @@ static void render_empty_frame(ffst *ff,
+ buf[off]=127; buf[off+1]=127;
+ }
+ break;
+- case PIX_FMT_YUYV422:
+- case PIX_FMT_UYVY422:
++ case AV_PIX_FMT_YUYV422:
++ case AV_PIX_FMT_UYVY422:
+ for (x = 0, y = 0; x < w-1; x++, y = h * x / w) {
+ int off = (x + w * y) * 2;
+ buf[off] = 127; buf[off+1] = 127;
+@@ -165,8 +165,8 @@ static void render_empty_frame(ffst *ff,
+ buf[off] = 127; buf[off+1] = 127;
+ }
+ break;
+- case PIX_FMT_RGB24:
+- case PIX_FMT_BGR24:
++ case AV_PIX_FMT_RGB24:
++ case AV_PIX_FMT_BGR24:
+ for (x = 0, y = 0; x < w-1; x++, y = h * x / w) {
+ int off = 3 * (x + w * y);
+ buf[off]=255; buf[off+1]=255; buf[off+2]=255;
+@@ -174,11 +174,11 @@ static void render_empty_frame(ffst *ff,
+ buf[off]=255; buf[off+1]=255; buf[off+2]=255;
+ }
+ break;
+- case PIX_FMT_RGBA:
+- case PIX_FMT_BGRA:
+- case PIX_FMT_ARGB:
++ case AV_PIX_FMT_RGBA:
++ case AV_PIX_FMT_BGRA:
++ case AV_PIX_FMT_ARGB:
+ {
+- const int O = (ff->render_fmt == PIX_FMT_ARGB) ? 1 : 0;
++ const int O = (ff->render_fmt == AV_PIX_FMT_ARGB) ? 1 : 0;
+ for (x = 0, y = 0; x < w-1; x++, y = h * x / w) {
+ int off = 4 * (x + w * y) + O;
+ buf[off]=255; buf[off+1]=255; buf[off+2]=255;
+@@ -749,7 +749,7 @@ void ff_get_info_canonical(void *ptr, VI
+
+ void ff_create(void **ff) {
+ (*((ffst**)ff)) = (ffst*) calloc(1, sizeof(ffst));
+- (*((ffst**)ff))->render_fmt = PIX_FMT_RGB24;
++ (*((ffst**)ff))->render_fmt = AV_PIX_FMT_RGB24;
+ (*((ffst**)ff))->want_ignstart = 0;
+ (*((ffst**)ff))->want_genpts = 0;
+ (*((ffst**)ff))->packet.data = NULL;
+@@ -792,25 +792,25 @@ void ff_resize(void *ptr, int w, int h,
+
+ const char * ff_fmt_to_text(int fmt) {
+ switch (fmt) {
+- case PIX_FMT_NONE:
++ case AV_PIX_FMT_NONE:
+ return "-";
+- case PIX_FMT_BGR24:
++ case AV_PIX_FMT_BGR24:
+ return "BGR24";
+- case PIX_FMT_RGB24:
++ case AV_PIX_FMT_RGB24:
+ return "RGB24";
+- case PIX_FMT_RGBA:
++ case AV_PIX_FMT_RGBA:
+ return "RGBA";
+- case PIX_FMT_BGRA:
++ case AV_PIX_FMT_BGRA:
+ return "BGRA";
+- case PIX_FMT_ARGB:
++ case AV_PIX_FMT_ARGB:
+ return "ARGB";
+- case PIX_FMT_YUV420P:
++ case AV_PIX_FMT_YUV420P:
+ return "YUV420P";
+- case PIX_FMT_YUYV422:
++ case AV_PIX_FMT_YUYV422:
+ return "YUYV422";
+- case PIX_FMT_UYVY422:
++ case AV_PIX_FMT_UYVY422:
+ return "UYVY422";
+- case PIX_FMT_YUV440P:
++ case AV_PIX_FMT_YUV440P:
+ return "YUV440P";
+ default:
+ return "?";
+Index: harvid-0.8.0/src/ics_handler.c
+===================================================================
+--- harvid-0.8.0.orig/src/ics_handler.c
++++ harvid-0.8.0/src/ics_handler.c
+@@ -109,16 +109,16 @@ void parse_param(struct queryparserstate
+ else if (!strncmp(val, "jpeg",4)) {qps->a->render_fmt = FMT_JPG; qps->a->misc_int = atoi(&val[4]);}
+ else if (!strcmp(val, "png")) qps->a->render_fmt = FMT_PNG;
+ else if (!strcmp(val, "ppm")) qps->a->render_fmt = FMT_PPM;
+- else if (!strcmp(val, "yuv")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_YUV420P;}
+- else if (!strcmp(val, "yuv420")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_YUV420P;}
+- else if (!strcmp(val, "yuv440")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_YUV440P;}
+- else if (!strcmp(val, "yuv422")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_YUYV422;}
+- else if (!strcmp(val, "uyv422")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_UYVY422;}
+- else if (!strcmp(val, "rgb")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_RGB24;}
+- else if (!strcmp(val, "bgr")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_BGR24;}
+- else if (!strcmp(val, "rgba")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_RGBA;}
+- else if (!strcmp(val, "argb")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_ARGB;}
+- else if (!strcmp(val, "bgra")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = PIX_FMT_BGRA;}
++ else if (!strcmp(val, "yuv")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_YUV420P;}
++ else if (!strcmp(val, "yuv420")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_YUV420P;}
++ else if (!strcmp(val, "yuv440")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_YUV440P;}
++ else if (!strcmp(val, "yuv422")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_YUYV422;}
++ else if (!strcmp(val, "uyv422")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_UYVY422;}
++ else if (!strcmp(val, "rgb")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_RGB24;}
++ else if (!strcmp(val, "bgr")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_BGR24;}
++ else if (!strcmp(val, "rgba")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_RGBA;}
++ else if (!strcmp(val, "argb")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_ARGB;}
++ else if (!strcmp(val, "bgra")) {qps->a->render_fmt = FMT_RAW; qps->a->decode_fmt = AV_PIX_FMT_BGRA;}
+ /* info, version, rc,... format */
+ else if (!strcmp(val, "html")) qps->a->render_fmt = OUT_HTML;
+ else if (!strcmp(val, "xhtml")) qps->a->render_fmt = OUT_HTML;
+@@ -141,7 +141,7 @@ static void parse_http_query_params(stru
+ static int parse_http_query(CONN *c, char *query, httpheader *h, ics_request_args *a) {
+ struct queryparserstate qps = {a, NULL, 0};
+
+- a->decode_fmt = PIX_FMT_RGB24;
++ a->decode_fmt = AV_PIX_FMT_RGB24;
+ a->render_fmt = FMT_PNG;
+ a->frame = 0;
+ a->misc_int = 0;
diff --git a/media-video/harvid/harvid-0.8.0.ebuild b/media-video/harvid/harvid-0.8.0.ebuild
index 5c2db6056594..cb77af216155 100644
--- a/media-video/harvid/harvid-0.8.0.ebuild
+++ b/media-video/harvid/harvid-0.8.0.ebuild
@@ -4,7 +4,7 @@
EAPI=5
-inherit toolchain-funcs multilib
+inherit toolchain-funcs multilib eutils
DESCRIPTION="HTTP Ardour Video Daemon"
HOMEPAGE="http://x42.github.io/harvid/"
@@ -16,8 +16,8 @@ KEYWORDS="~amd64"
IUSE="libav"
RDEPEND="
- !libav? ( media-video/ffmpeg:= )
- libav? ( media-video/libav:= )
+ !libav? ( >=media-video/ffmpeg-2.6:0= )
+ libav? ( >=media-video/libav-9:0= )
media-libs/libpng:0=
virtual/jpeg:0
"
@@ -25,6 +25,10 @@ DEPEND="${RDEPEND}
virtual/pkgconfig
"
+src_prepare() {
+ epatch "${FILESDIR}/ffmpeg29.patch"
+}
+
hv_make() {
emake \
CC="$(tc-getCC)" \