Hi Marc, On Wed, 21 Jul 2021 12:51:18 +0200 Marc Espie <es...@nerim.net> wrote:
> vid.stab is a video stabilization library that interfaces with ffmpeg. > > From the xml plugins in kdenlive, I suspect it will work out of the > box there as well. > > Here's the patch to activate it in ffmpeg. From simple tests, it > seems to work as advertized. > (I have bumped avfilter because it gains a new interface AND a new > library dependency) > > (The port itself is attached) Trying to build on powerpc led to some issues: - The SSE checks don't work with OpenBSD (see the terrible CMakeModules/FindSSE.cmake), and reported SSE2 support on powerpc, breaking the build searching for headers that indeed cannot be found. I've disabled all SSE checks on !amd64, so it does not try to build the port with instruction sets that are not available. As such, libvidstab still uses SSE2 on amd64, and nothing on all other arches. I know some i386 support SSE2, but not all. I'll let sthen@ decide. - I've met several instance of char used to store (f)getc return values. It should be int instead, and as such the patch i bring fixes possible infinite loops on powerpc and arm*. - I've removed optimization flags because the port was build with -O3. I've attached a new port with these fixes. On amd64, i've tested with 'ffplay -vf vidstabdetect=show=1 [...]', where it seems to work. On macppc, the library is built successfully, but given how video playback is slow there, i would not dare to use that filter. I'm building ffmpeg atm. I'll report back if issues arise, i've some time, because it should be tested on more archs, ffmpeg is indeed an important port. Charlène. Index: Makefile =================================================================== RCS file: /cvs/ports/graphics/ffmpeg/Makefile,v retrieving revision 1.210 diff -u -p -r1.210 Makefile --- Makefile 9 Jul 2021 10:43:26 -0000 1.210 +++ Makefile 21 Jul 2021 10:47:56 -0000 @@ -4,7 +4,7 @@ COMMENT= audio/video converter and strea V= 4.4 DISTNAME= ffmpeg-${V} -REVISION= 0 +REVISION= 1 EPOCH= 1 CATEGORIES= graphics multimedia MASTER_SITES= https://ffmpeg.org/releases/ @@ -12,7 +12,7 @@ EXTRACT_SUFX= .tar.xz SHARED_LIBS= avcodec 25.0 \ avdevice 13.0 \ - avfilter 10.0 \ + avfilter 11.0 \ avformat 22.0 \ avresample 2.0 \ avutil 15.0 \ @@ -31,7 +31,7 @@ WANTLIB+= SDL2 X11 Xext Xv aom ass bz2 c WANTLIB+= freetype fribidi gsm iconv lzma m mp3lame opus WANTLIB+= pthread sndio speex ssl theoradec theoraenc v4l2 WANTLIB+= vorbis vorbisenc vpx x264 x265 xcb xcb-shape xcb-shm -WANTLIB+= xcb-xfixes xml2 xvidcore z +WANTLIB+= xcb-xfixes xml2 xvidcore vidstab z COMPILER= base-clang ports-gcc COMPILER_LANGS= c @@ -56,6 +56,7 @@ LIB_DEPENDS= archivers/bzip2 \ multimedia/libass \ multimedia/libtheora \ multimedia/libv4l \ + multimedia/libvidstab \ multimedia/libvpx \ multimedia/x264 \ multimedia/x265 \ @@ -65,7 +66,7 @@ LIB_DEPENDS= archivers/bzip2 \ # inter-library dependencies for the current configuration LIBavcodec_EXTRALIBS=-L${LOCALBASE}/lib -laom -ldav1d -lgsm -liconv -llzma -lmp3lame -lopus -lspeex -ltheoradec -ltheoraenc -lvorbis -lvorbisenc -lvpx -lx264 -lx265 -lxvidcore -lm -lz -pthread LIBavdevice_EXTRALIBS=-L${LOCALBASE}/lib -L${X11BASE}/lib -lX11 -lXext -lXv -lxcb-shape -lxcb-shm -lxcb-xfixes -lxcb -lsndio -lv4l2 -lm -LIBavfilter_EXTRALIBS=-L${LOCALBASE}/lib -L${X11BASE}/lib -lass -lfontconfig -lfreetype -lfribidi -lm -lz -pthread +LIBavfilter_EXTRALIBS=-L${LOCALBASE}/lib -L${X11BASE}/lib -lass -lfontconfig -lfreetype -lfribidi -lvidstab -lm -lz -pthread LIBavformat_EXTRALIBS=-L${LOCALBASE}/lib -lbz2 -lxml2 -lssl -lcrypto -lm -lz LIBavresample_EXTRALIBS=-lm LIBavutil_EXTRALIBS=-lm -pthread @@ -118,6 +119,7 @@ CONFIGURE_ARGS+=--enable-shared \ --enable-libxvid \ --enable-nonfree \ --enable-openssl \ + --enable-libvidstab \ --extra-cflags="-I${LOCALBASE}/include -I${X11BASE}/include" \ --extra-libs="-L${LOCALBASE}/lib -L${X11BASE}/lib" \ --extra-ldsoflags="${LDLIBFLAGS}" \
libvidstab.tgz
Description: Binary data