x42 / harvid Goto Github PK
View Code? Open in Web Editor NEWhttp ardour video daemon
Home Page: https://x42.github.io/harvid/
License: GNU General Public License v2.0
http ardour video daemon
Home Page: https://x42.github.io/harvid/
License: GNU General Public License v2.0
Builds fine on 1 CPU, but fails on multiple CPUs:
cc -c -o timecode.o -O2 -pipe -fno-omit-frame-pointer -fstack-protector -isystem /usr/local/include -fno-strict-aliasing `pkg-config --cflags libavcodec libavformat libavutil libswscale` timecode.c
export PKG_CONFIG_PATH=;\
cc -c -o vinfo.o -O2 -pipe -fno-omit-frame-pointer -fstack-protector -isystem /usr/local/include -fno-strict-aliasing `pkg-config --cflags libavcodec libavformat libavutil libswscale` vinfo.c
gmake[2]: *** No rule to make target '../libharvid/libharvid.a', needed by 'harvid'. Stop.
gmake[2]: Leaving directory '/usr/ports/multimedia/harvid/work/harvid-0.8.2/src'
gmake[1]: *** [Makefile:7: src] Error 2
gmake[1]: *** Waiting for unfinished jobs....
libharvid fails to build against ffmpeg-5.1, where the AVCodec
struct has been cleaned purged from private data.
See https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/20f972701806be20a77f808db332d9489343bb78
For whatever reasons, it seems that the data was so private, they didn't even consider bumping the minor version of libavcodec. ๐ค
anyhow, here's a patch that fixes the issue with some ugly #ifdef
s that test for some later version-bump.
the patch also includes some minor fixes to shut up warnings...
-- harvid.orig/libharvid/ffdecoder.c
+++ harvid/libharvid/ffdecoder.c
@@ -32,6 +32,7 @@
#include "ffcompat.h"
#include <libswscale/swscale.h>
+#include <libavutil/imgutils.h>
#ifndef MAX
#define MAX(A,B) ( ( (A) > (B) ) ? (A) : (B) )
@@ -350,7 +351,7 @@
int ff_open_movie(void *ptr, char *file_name, int render_fmt) {
int i;
- AVCodec *pCodec;
+ const AVCodec *pCodec;
ffst *ff = (ffst*) ptr;
if (ff->pFrameFMT) {
@@ -604,7 +605,11 @@
if (ff->avprev < 0 || ff->avprev >= timestamp || ((ff->avprev + 32 * ff->tpf) < timestamp)) {
rv = av_seek_frame(ff->pFormatCtx, ff->videoStream, timestamp, AVSEEK_FLAG_BACKWARD) ;
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59, 26, 100)
if (ff->pCodecCtx->codec->flush) {
+#else
+ if (1) {
+#endif
avcodec_flush_buffers(ff->pCodecCtx);
}
}
@@ -683,7 +688,11 @@
fprintf(stdout, " PTS mismatch want: %"PRId64" got: %"PRId64" -> re-seek\n", timestamp, pts);
// re-seek - make a guess, since we don't know the keyframe interval
rv = av_seek_frame(ff->pFormatCtx, ff->videoStream, MAX(0, timestamp - ff->tpf * 25), AVSEEK_FLAG_BACKWARD) ;
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59, 26, 100)
if (ff->pCodecCtx->codec->flush) {
+#else
+ if (1) {
+#endif
avcodec_flush_buffers(ff->pCodecCtx);
}
if (rv < 0) {
Hi! We're currently rebuilding packages against ffmpeg 5.0.
Unfortunately this does not work with harvid. I can provide a patch for some of the easier deprecations and changes to ffmpeg over the past five years, but the changes to AVPicture
are a bit above my pay grade:
https://ffmpeg.org/doxygen/4.0/group__lavc__picture.html
https://ffmpeg.org/doxygen/4.0/group__lavu__picture.html#ga5b6ead346a70342ae8a303c16d2b3629
It would be really cool if you could provide a fix for this, as I don't know how to do it :-/
nettings@roman:/local/build/harvid> make
make -C libharvid
make[1]: Entering directory '/local/build/harvid/libharvid'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/local/build/harvid/libharvid'
make -C src
make[1]: Entering directory '/local/build/harvid/src'
Makefile:20: *** "libjpeg is required - install libjpeg-dev, libjpeg8-dev or libjpeg62-dev". Stop.
make[1]: Leaving directory '/local/build/harvid/src'
make: *** [Makefile:7: src] Error 2
nettings@roman:/local/build/harvid> zypper se libjpeg
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
---+-----------------------+-------------------------------------------+--------
| libjpeg-turbo | A SIMD-accelerated library for manipula-> | package
i | libjpeg62 | A SIMD-accelerated JPEG compression/dec-> | package
| libjpeg62-32bit | A SIMD-accelerated JPEG compression/dec-> | package
| libjpeg62-devel | Development Tools for applications whic-> | package
| libjpeg62-devel-32bit | Development Tools for applications whic-> | package
i | libjpeg8 | A SIMD-accelerated JPEG compression/dec-> | package
| libjpeg8-32bit | A SIMD-accelerated JPEG compression/dec-> | package
i+ | libjpeg8-devel | Development Tools for applications whic-> | package
| libjpeg8-devel-32bit | Development Tools for applications whic-> | package
| libjpegxr0 | Open source implementation of jpegxr | package
nettings@roman:/local/build/harvid> head /usr/include/jpeglib.h
/*
* jpeglib.h
*
* This file was part of the Independent JPEG Group's software:
* Copyright (C) 1991-1998, Thomas G. Lane.
* Modified 2002-2009 by Guido Vollbeding.
* libjpeg-turbo Modifications:
* Copyright (C) 2009-2011, 2013-2014, 2016-2017, D. R. Commander.
* Copyright (C) 2015, Google, Inc.
* For conditions of distribution and use, see the accompanying README.ijg
Apparently, only the test in src/Makefile is at fault, after commenting it out, harvid builds successfully.
Hi,
I'm having an issue with harvid.
When I try to start it I get:
SRV: Error binding to 0.0.0.0:1554
SRV: server shut down.
This happens with the binary provided or also if I compile it myself.
I have several installations of ardour+harvid+xjadeo and it's the first time I get this error... I have no idea how to fix it.
Thanks for your help.
davrandom
hey, been having issues running harvid under Ardour3.5 and 3.5.14.
I'm using Arch64 and Ardour binary and when that failed, I tried the distros version. Same issue.
/opt/Ardour-3.5.14-dbg/bin/harvid
[WARNING]: Video-server was started but does not respond to requests...
[WARNING]: Could not connect to the Video Server. Start it or configure its access URL in Edit -> Preferences.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.