On Thu, Jul 22 2021, Stuart Henderson <s...@spacehopper.org> wrote:
> +CC FFmpeg maintainer.
>
> On 2021/07/22 12:39, Charlene Wendling wrote:
>> 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.
>
> It doesn't do a runtime cpuid check like most video-related software
> manages, so it should be disabled on i386.
>
> libvidstab builds OK on i386. I'm in the middle of a bulk so I haven't
> done runtime tests or built ffmpeg.

libvidstab also builds ok on sparc64 using cwen's tarball.  And ffmpeg
builds and packages fine too with the diff to enable vidstab usage.

ports-wise, ok jca@

>> 
>> 
>> 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}" \
>> 
>
>

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to