summaryrefslogtreecommitdiff
path: root/media-video/harvid
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /media-video/harvid
reinit the tree, so we can have metadata
Diffstat (limited to 'media-video/harvid')
-rw-r--r--media-video/harvid/Manifest9
-rw-r--r--media-video/harvid/files/ffmpeg29.patch301
-rw-r--r--media-video/harvid/harvid-0.8.0.ebuild54
-rw-r--r--media-video/harvid/harvid-0.8.1.ebuild50
-rw-r--r--media-video/harvid/harvid-0.8.2.ebuild50
-rw-r--r--media-video/harvid/metadata.xml10
6 files changed, 474 insertions, 0 deletions
diff --git a/media-video/harvid/Manifest b/media-video/harvid/Manifest
new file mode 100644
index 000000000000..2a1a7c41f7e7
--- /dev/null
+++ b/media-video/harvid/Manifest
@@ -0,0 +1,9 @@
+AUX ffmpeg29.patch 11613 SHA256 48494b5d143fe8dd6603bace505cb8b929c45767f4d2bb805750570c2b7d57e5 SHA512 40ddf43ea18912ff8bcf73925ac846a4c96a2b4269f4bb1ca6cdc7a314070bea338c8a4a181018781a6036090c67a1622c1b7968ebad0be290e3a60ce01cba53 WHIRLPOOL c63fb81728f345846f11031b00d88b04e86f29643dbbb232ca47dee526892f76e5031adcbf589e226adde28cf6949b3518dc6e6ac2b4c11fbb845ee645bd7ffa
+DIST harvid-0.8.0.tar.gz 116079 SHA256 d4c017fb010aa1479d41d3f4cc9f77e8a0140dd359ea629faeda81093c2c8c88 SHA512 8e999e91e36708df7264fc351e5b6cac6c47fa5e0e612d0917bbfa02e98d13f9758f43312e6febebe56e7b8f2f72b80b6c47598de7100d3b5479b80720b91568 WHIRLPOOL d50f94b745192158d95f895ce6d13933891078b484f4d5e6b9a06d7c65e340a59cf5a3e66e87c9b013618c4a9ecea7f8006aa7489c932d0d61769e64446fed36
+DIST harvid-0.8.1.tar.gz 116277 SHA256 a4aefc253ede1284b2eb6d3c193984eb4a9dde8dda832e2cbcb72242c3870e3e SHA512 b425eca844bb9eec3ec8caa324f783132a3e83938b258a5f8e92ce6dc47108ae491a009223b7e3c8051d965a1ff1b5e5509a804d1462641128a8524cde5ae60a WHIRLPOOL 5e9c6c5d6456cf04a22a04b862ec0fed9cc056d7db6f1803f88c7affdc3e51a8e6dd54b6d187672ff2ba62bd2abeec96d7cef51b91187d1607ef199650b18399
+DIST harvid-0.8.2.tar.gz 116541 SHA256 3e3e22f554c7c8f0efe3ca400200e95c9fd5c0495cc76c4ae08991bc2abbc358 SHA512 fde352124008cd3d6230950c79a3a2b8d581803f952c7313c941226b00e80f8078053d941f2c5ead04672639a8db696f0c33482f69dab78187801d7ebce23fce WHIRLPOOL 8cf6f7baf9539fc99d8738fd8fe5c4dfd321a28613bb2ec2591813c366cbcd50ba9f1ca16cb66c4700e401cbc396e9dd8e1b5d8400d3c2bbdce42ecad2944d4c
+EBUILD harvid-0.8.0.ebuild 1026 SHA256 b45eabe41b927078e12a8850f630dbfb7bca32f694a7bec085cffee99d3ddcaa SHA512 151afcf1b30f5e074f8ed29123f67e3dbfe9904cb0b57ea7bcab8d58fbead3620affd35078555e82a472a1ed5e2eca918a88e8f2b9dd0fdcfd64941649217be3 WHIRLPOOL 95a521016dc86446f212bb016a746d17e0d929e30750bae82440c60f6af032de85d518f981178d04effa5e2a0fb28b0420fa0ecb42e523e77dcad66c4868cda2
+EBUILD harvid-0.8.1.ebuild 970 SHA256 eaeb3b57b886f38cea3e11d19653a3b6159783c7053e719fc673e280b995db32 SHA512 1ecb3b7435b828af3708f3be3646f38dd98adc4933bb8a4fd9e6309bcf9b8fbddf8213ac466df7c0b8f3d4054e7c0faf4fd9d6910b53d8a3dd71a2031ee806f6 WHIRLPOOL 29335d3ba066143bdd596dafdb963ba9644ac6dd260b35c49b99f9fe1d129d9865f4a8501531de65b53224168d9c7ef5466fe52fdf9aa28ff34c5d678bde3225
+EBUILD harvid-0.8.2.ebuild 970 SHA256 17a489e9c5369d7b68cea766e5faf4de5686f63f0769381400d2778f4b360080 SHA512 a0d70a007258c7f13a55c9a8605e616b414acbbdc82b79647f9b8fe502c8757db7e284b80f62b4011ff01556b5b93dfa82adca3656bbf0b8c31ec0aaa2659ae8 WHIRLPOOL 106330f508436f9d69ec1e10d83faa103e6f07ccbc9f1110cb498079102f87c2d6381295c6669e500f42b6cfaaa1f5dad2b8d16bca0c4acdbc4a80e17be71421
+MISC ChangeLog 1565 SHA256 2e0e28893829e4df02310f5515309c45864957ca2ab2903b6c917fba913cde50 SHA512 2f353d524dd89d49aee2897da0099f92167ca003399360b526fe734a06f1888e1fb5aca9990d1298aaba5bbacb7c469efbb94e53e54898a3e7099b8b4bdc5fad WHIRLPOOL 9efe8e7714440e4dc536306495afc8f56daf0d7bcdcd83cdc3c886eac48ba7defc183f7626ce962aaaf3880fd2cf62e19f7adf2592da95819882de142988150b
+MISC metadata.xml 306 SHA256 9bc3b4f830c9c32dca4e5bac78d1a3cf7b46b620359dd0412a5342564eca82cd SHA512 4fa6b478e09481b73a9c1743c79b108e115a9452c31f3a37134d9ef939f4118c27690e9e7f33fcd0fa7a558d73840b84b944e14344d1ebffc10febc16cbf2315 WHIRLPOOL 3a6518b817dbbf8d03e42632070f79f3b29f50b5d9f0463abd2e8fe8dc91913683929130dfd3273b7238155761a46f83da0c6fb1f5f3bc11d38cd7b018da4392
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
new file mode 100644
index 000000000000..324ebb2f22f5
--- /dev/null
+++ b/media-video/harvid/harvid-0.8.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit toolchain-funcs multilib eutils
+
+DESCRIPTION="HTTP Ardour Video Daemon"
+HOMEPAGE="http://x42.github.io/harvid/"
+SRC_URI="https://github.com/x42/harvid/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="libav"
+
+RDEPEND="
+ !libav? ( >=media-video/ffmpeg-2.6:0= )
+ libav? ( >=media-video/libav-9:0= )
+ media-libs/libpng:0=
+ virtual/jpeg:0
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ epatch "${FILESDIR}/ffmpeg29.patch"
+}
+
+hv_make() {
+ emake \
+ CC="$(tc-getCC)" \
+ RANLIB="$(tc-getRANLIB)" \
+ STRIP="true" \
+ NM="$(tc-getNM) -B" \
+ LD="$(tc-getLD)" \
+ AR="$(tc-getAR)" \
+ PREFIX="${EPREFIX:-/}usr" \
+ libdir="${EPREFIX:-/}usr/$(get_libdir)" \
+ hdocdir="${EPREFIX:-/}usr/share/doc/${PF}" \
+ "${@}"
+}
+
+src_compile() {
+ hv_make -C libharvid
+ hv_make -C src
+ hv_make
+}
+
+src_install() {
+ hv_make DESTDIR="${D}" install
+ dodoc ChangeLog README.md
+}
diff --git a/media-video/harvid/harvid-0.8.1.ebuild b/media-video/harvid/harvid-0.8.1.ebuild
new file mode 100644
index 000000000000..56e380ac9d6e
--- /dev/null
+++ b/media-video/harvid/harvid-0.8.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit toolchain-funcs multilib eutils
+
+DESCRIPTION="HTTP Ardour Video Daemon"
+HOMEPAGE="http://x42.github.io/harvid/"
+SRC_URI="https://github.com/x42/harvid/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="libav"
+
+RDEPEND="
+ !libav? ( >=media-video/ffmpeg-2.6:0= )
+ libav? ( >=media-video/libav-9:0= )
+ media-libs/libpng:0=
+ virtual/jpeg:0
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+hv_make() {
+ emake \
+ CC="$(tc-getCC)" \
+ RANLIB="$(tc-getRANLIB)" \
+ STRIP="true" \
+ NM="$(tc-getNM) -B" \
+ LD="$(tc-getLD)" \
+ AR="$(tc-getAR)" \
+ PREFIX="${EPREFIX:-/}usr" \
+ libdir="${EPREFIX:-/}usr/$(get_libdir)" \
+ hdocdir="${EPREFIX:-/}usr/share/doc/${PF}" \
+ "${@}"
+}
+
+src_compile() {
+ hv_make -C libharvid
+ hv_make -C src
+ hv_make
+}
+
+src_install() {
+ hv_make DESTDIR="${D}" install
+ dodoc ChangeLog README.md
+}
diff --git a/media-video/harvid/harvid-0.8.2.ebuild b/media-video/harvid/harvid-0.8.2.ebuild
new file mode 100644
index 000000000000..8dbd4423ebc4
--- /dev/null
+++ b/media-video/harvid/harvid-0.8.2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit toolchain-funcs multilib eutils
+
+DESCRIPTION="HTTP Ardour Video Daemon"
+HOMEPAGE="http://x42.github.io/harvid/"
+SRC_URI="https://github.com/x42/harvid/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="libav"
+
+RDEPEND="
+ !libav? ( >=media-video/ffmpeg-2.6:0= )
+ libav? ( >=media-video/libav-9:0= )
+ media-libs/libpng:0=
+ virtual/jpeg:0
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+hv_make() {
+ emake \
+ CC="$(tc-getCC)" \
+ RANLIB="$(tc-getRANLIB)" \
+ STRIP="true" \
+ NM="$(tc-getNM) -B" \
+ LD="$(tc-getLD)" \
+ AR="$(tc-getAR)" \
+ PREFIX="${EPREFIX:-/}usr" \
+ libdir="${EPREFIX:-/}usr/$(get_libdir)" \
+ hdocdir="${EPREFIX:-/}usr/share/doc/${PF}" \
+ "${@}"
+}
+
+src_compile() {
+ hv_make -C libharvid
+ hv_make -C src
+ hv_make
+}
+
+src_install() {
+ hv_make DESTDIR="${D}" install
+ dodoc ChangeLog README.md
+}
diff --git a/media-video/harvid/metadata.xml b/media-video/harvid/metadata.xml
new file mode 100644
index 000000000000..42e24ce36b09
--- /dev/null
+++ b/media-video/harvid/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>media-video@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">x42/harvid</remote-id>
+ </upstream>
+</pkgmetadata>