media-autobuild_suite icon indicating copy to clipboard operation
media-autobuild_suite copied to clipboard

Request: Add new Fraunhofer VVdeC and VVenC to the suite

Open BeyondVertical opened this issue 3 years ago • 23 comments

Hello,

I think it would be great, if the new Fraunhofer VVdeC and VVenC could be added to the suite. The sources are available here: https://github.com/fraunhoferhhi/vvdec https://github.com/fraunhoferhhi/vvenc

Thank you for considering!

BeyondVertical avatar Sep 16 '20 08:09 BeyondVertical

From last time I tried, they both currently do not compile with mingw-w64, I have considered tried to make it so they do, but that will have to be done at a time when I am free

1480c1 avatar Sep 16 '20 16:09 1480c1

Release tag v1.0.0 is available.

LigH-de avatar May 21 '21 06:05 LigH-de

vvenc-1.1.0 is out :) Speedups 20% for faster 15% for fast 7% for medium Added BCW Redefined the presets Improved SCC and 2-pass RC accuracy Various bugfixes and improvements -> https://github.com/fraunhoferhhi/vvenc/releases/tag/v1.1.0

Selur avatar Aug 28 '21 21:08 Selur

But does it compile in GCC? May still require VS.

LigH-de avatar Aug 29 '21 16:08 LigH-de

Still doesn't compile with mingw-w64 gcc without issue

1480c1 avatar Aug 29 '21 16:08 1480c1

Example?

Biswa96 avatar Aug 29 '21 16:08 Biswa96

[14/131] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/CodingStructure.cpp.obj
FAILED: source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/CodingStructure.cpp.obj
C:\msys64\ucrt64\bin\c++.exe -DVVENC_SOURCE -D_WIN32_WINNT=0x0600 -IC:/msys64/home/cddeg/vvenc/source/Lib/vvenc/../../../include -IC:/msys64/home/cddeg/bui -IC:/msys64/home/cddeg/vvenc/source/Lib/vvenc/SYSTEM -IC:/msys64/home/cddeg/vvenc/source/Lib/vvenc/. -IC:/msys64/home/cddeg/vvenc/source/Lib/vvenc/.. -IC:/msys64/home/cddeg/vvenc/source/Lib/vvenc/../DecoderLib -IC:/msys64/home/cddeg/vvenc/source/Lib/vvenc/../EncoderLib -IC:/msys64/home/cddeg/vvenc/source/Lib/vvenc/../CommonLib -IC:/msys64/home/cddeg/vvenc/source/Lib/vvenc/../CommonLib/x86 -DTARGET_SIMD_X86 -O3 -DNDEBUG -flto -fno-fat-lto-objects -msse4.1 -Wall -Werror -Wno-unused-function -Wno-unused-variable -Wno-sign-compare -fdiagnostics-show-option -std=gnu++14 -MD -MT source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/CodingStructure.cpp.obj -MF source\Lib\vvenc\CMakeFiles\vvenc.dir\__\CommonLib\CodingStructure.cpp.obj.d -o source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/CodingStructure.cpp.obj -c C:/msys64/home/cddeg/vvenc/source/Lib/CommonLib/CodingStructure.cpp
In file included from C:/msys64/home/cddeg/vvenc/source/Lib/CommonLib/Unit.h:52,
                 from C:/msys64/home/cddeg/vvenc/source/Lib/CommonLib/CodingStructure.h:52,
                 from C:/msys64/home/cddeg/vvenc/source/Lib/CommonLib/CodingStructure.cpp:52:
C:/msys64/home/cddeg/vvenc/source/Lib/CommonLib/CommonDef.h:590:62: error: ignoring attributes on template argument 'void(void*, int, const char*, va_list)' {aka 'void(void*, int, const char*, char*)'} [-Werror=ignored-attributes]
  590 | extern std::function<void( void*, int, const char*, va_list )> g_msgFnc;
      |                                            

with ucrt, one of many

1480c1 avatar Aug 29 '21 17:08 1480c1

in theory removing -Werror would probably solve it

1480c1 avatar Aug 29 '21 17:08 1480c1

@MartinEesmaa (VVCEasy) has some experience in compiling and integrating libvvdec into different software (ffmpeg, vlc, bitmovin player). I hope he can support this issue.

LigH-de avatar Jun 10 '22 06:06 LigH-de

Tried a build just now using their latest master branch, and it seems it compiled fine. I will try to see if I can add it to the suite in the morning

1480c1 avatar Jun 10 '22 07:06 1480c1

@LigH-de, I'm sure I can solve the issue to add vvenc and vvdec too, but I'm not very good programmer of Batchfile and others programming languages. I'm very good compiler and integrator, thank you!

@1480c1, I think you could add suite in the morning, if possible :).

If anyone wants to build libvvdec into ffmpeg, before @1480c1 adds suite, here is my script:

git clone https://github.com/fraunhoferhhi/vvdec.git
cd vvdec
mkdir build && cd build
cmake -DBUILD_SHARED_LIBS=1 ..
cmake --build . --config Release

After release shared build, we will go over ahead to tbiat/FFmpeg repository:

git clone https://github.com/tbiat/FFmpeg.git
cd FFmpeg
export PKG_CONFIG_PATH=~/vvdec/install/lib/pkgconfig
./configure --enable-gpl --enable-version3 --enable-libvvdec --enable-pic --enable-libxml2 --enable-libaom --enable-libx264 --enable-libx265 --enable-libvpx --enable-libsvtav1 --enable-libopus --enable-librav1e --enable-sdl2 --disable-w32threads
make -j
  • Martin Eesmaa

MartinEesmaa avatar Jun 10 '22 07:06 MartinEesmaa

Seems vvenc doesn't like being compiled under clang

In file included from D:/mabs/build/vvenc-git/source/Lib/CommonLib/AffineGradientSearch.cpp:53:
In file included from D:/mabs/build/vvenc-git/source/Lib/vvenc/../CommonLib/AffineGradientSearch.h:49:
D:/mabs/build/vvenc-git/source/Lib/vvenc/../CommonLib/CommonDef.h:710:8: error: inline variables are a C++17 extension [-Werror,-Wc++17-extensions]
static inline unsigned long _bit_scan_reverse( long a )
       ^
D:/mabs/build/vvenc-git/source/Lib/vvenc/../CommonLib/CommonDef.h:710:53: error: expected ')'
static inline unsigned long _bit_scan_reverse( long a )
                                                    ^
D:/mabs/build/vvenc-git/source/Lib/vvenc/../CommonLib/CommonDef.h:710:29: note: to match this '('
static inline unsigned long _bit_scan_reverse( long a )
                            ^
D:/mabs/msys64/mingw64/lib/clang/14.0.4/include/ia32intrin.h:85:37: note: expanded from macro '_bit_scan_reverse'
#define _bit_scan_reverse(A) __bsrd((A))
                                    ^
In file included from D:/mabs/build/vvenc-git/source/Lib/CommonLib/AffineGradientSearch.cpp:53:
In file included from D:/mabs/build/vvenc-git/source/Lib/vvenc/../CommonLib/AffineGradientSearch.h:49:
D:/mabs/build/vvenc-git/source/Lib/vvenc/../CommonLib/CommonDef.h:710:29: error: expected expression
static inline unsigned long _bit_scan_reverse( long a )
                            ^
D:/mabs/msys64/mingw64/lib/clang/14.0.4/include/ia32intrin.h:85:40: note: expanded from macro '_bit_scan_reverse'
#define _bit_scan_reverse(A) __bsrd((A))
                                       ^
In file included from D:/mabs/build/vvenc-git/source/Lib/CommonLib/AffineGradientSearch.cpp:53:

In file included from D:/mabs/build/vvenc-git/source/Lib/vvenc/../CommonLib/AffineGradientSearch.h:49:

D:/mabs/build/vvenc-git/source/Lib/vvenc/../CommonLib/CommonDef.h:710:56: error: expected ';' after top level declarator

static inline unsigned long _bit_scan_reverse( long a )

                                                       ^

                                                       ;

4 errors generated.

somehow, they conflicted on a name already in clang's headers

1480c1 avatar Jun 11 '22 00:06 1480c1

Your source coloring hides parts of the report...

inline variables are a C++17 extension

LigH-de avatar Jun 11 '22 11:06 LigH-de

@1480c1, my clang worked to build vvenc, before @adamjw24 merges into fraunhoferhhi/vvenc, you can now build vvenc with your clang msys2:

git clone https://github.com/adamjw24/vvenc --branch develop_fix_log2
cd vvenc
mkdir build && cd build
cmake ..
cmake --build . --config Release

Build log:

marti@MartinEesmaa CLANG64 ~/clang/vvenc/build
$ cmake ..
-- Building for: Ninja
-- The C compiler identification is Clang 14.0.3
-- The CXX compiler identification is Clang 14.0.3
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/msys64/clang64/bin/cc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/msys64/clang64/bin/c++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_MODULE_PATH: updating module path to: C:/msys64/home/marti/clang/vvenc/cmake/modules
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: C:/msys64/home/marti/clang/vvenc/build

marti@MartinEesmaa CLANG64 ~/clang/vvenc/build
$ cmake --build . --config Release
[1/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/AffineGradientSearch.cpp.obj
[2/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/InterpolationFilter.cpp.obj
[3/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/BitStream.cpp.obj
[4/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/ContextModelling.cpp.obj
[5/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Mv.cpp.obj
[6/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Contexts.cpp.obj
[7/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/MatrixIntraPrediction.cpp.obj
[8/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/ProfileLevelTier.cpp.obj
[9/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Buffer.cpp.obj
[10/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/IntraPrediction.cpp.obj
[11/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/LoopFilter.cpp.obj
[12/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/CodingStructure.cpp.obj
[13/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/DepQuant.cpp.obj
[14/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/InterPrediction.cpp.obj
[15/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/PicYuvMD5.cpp.obj
[16/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/AdaptiveLoopFilter.cpp.obj
[17/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Picture.cpp.obj
[18/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/MCTF.cpp.obj
[19/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/RomTr.cpp.obj
[20/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/SearchSpaceCounter.cpp.obj
[21/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Quant.cpp.obj
[22/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/SEI.cpp.obj
[23/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/TimeProfiler.cpp.obj
[24/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/StatCounter.cpp.obj
[25/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/TrQuant_EMT.cpp.obj
[26/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Reshape.cpp.obj
[27/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/QuantRDOQ.cpp.obj
[28/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/SampleAdaptiveOffset.cpp.obj
[29/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/RdCost.cpp.obj
[30/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Rom.cpp.obj
[31/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/QuantRDOQ2.cpp.obj
[32/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Unit.cpp.obj
[33/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/UnitPartitioner.cpp.obj
[34/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/TrQuant.cpp.obj
[35/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/DecoderLib/AnnexBread.cpp.obj
[36/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Slice.cpp.obj
[37/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncCfg.cpp.obj
[38/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/DecoderLib/NALread.cpp.obj
[39/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/DecoderLib/BinDecoder.cpp.obj
[40/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/UnitTools.cpp.obj
[41/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/dtrace.cpp.obj
[42/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/DecoderLib/DecCu.cpp.obj
[43/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/DecoderLib/DecSlice.cpp.obj
[44/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/DecoderLib/CABACReader.cpp.obj
[45/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/BinEncoder.cpp.obj
[46/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/BitAllocation.cpp.obj
[47/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/DecoderLib/SEIread.cpp.obj
[48/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncHRD.cpp.obj
[49/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/DecoderLib/VLCReader.cpp.obj
[50/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/CABACWriter.cpp.obj
[51/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/DecoderLib/DecLib.cpp.obj
[52/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/NALwrite.cpp.obj
[53/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncAdaptiveLoopFilter.cpp.obj
[54/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncReshape.cpp.obj
[55/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncModeCtrl.cpp.obj
[56/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncSampleAdaptiveOffset.cpp.obj
[57/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncCu.cpp.obj
[58/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncPicture.cpp.obj
[59/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncLib.cpp.obj
[60/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncGOP.cpp.obj
[61/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/SEIEncoder.cpp.obj
[62/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/Utilities/NoMallocThreadPool.cpp.obj
[63/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncSlice.cpp.obj
[64/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/IntraSearch.cpp.obj
[65/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/VLCWriter.cpp.obj
[66/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/vvenc.cpp.obj
[67/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/InitX86.cpp.obj
[68/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/vvencCfg.cpp.obj
[69/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse41/Buffer_sse41.cpp.obj
[70/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse41/LoopFilter_sse41.cpp.obj
[71/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/vvencimpl.cpp.obj
[72/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse41/IntraPred_sse41.cpp.obj
[73/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/RateCtrl.cpp.obj
[74/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/SEIwrite.cpp.obj
[75/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/CommonDefX86.cpp.obj
[76/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/InterSearch.cpp.obj
[77/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse41/AffineGradientSearch_sse41.cpp.obj
[78/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse41/AdaptiveLoopFilter_sse41.cpp.obj
[79/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse41/InterpolationFilter_sse41.cpp.obj
[80/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse41/InterPred_sse41.cpp.obj
[81/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse41/SampleAdaptiveOffset_sse41.cpp.obj
[82/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse41/Quant_sse41.cpp.obj
[83/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse42/Buffer_sse42.cpp.obj
[84/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx/AffineGradientSearch_avx.cpp.obj
[85/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse41/MCTF_avx41.cpp.obj
[86/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse42/InterPred_sse42.cpp.obj
[87/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse42/SampleAdaptiveOffset_sse42.cpp.obj
[88/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse41/Trafo_sse41.cpp.obj
[89/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse42/Quant_sse42.cpp.obj
[90/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse41/RdCost_sse41.cpp.obj
[91/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse42/InterpolationFilter_sse42.cpp.obj
[92/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse42/IntraPred_sse42.cpp.obj
[93/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse42/Trafo_sse42.cpp.obj
[94/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse42/MCTF_avx42.cpp.obj
[95/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx/Buffer_avx.cpp.obj
[96/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse42/LoopFilter_sse42.cpp.obj
[97/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/sse42/RdCost_sse42.cpp.obj
[98/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx/AdaptiveLoopFilter_avx.cpp.obj
[99/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx/InterPred_avx.cpp.obj
[100/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx2/AffineGradientSearch_avx2.cpp.obj
[101/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx/SampleAdaptiveOffset_avx.cpp.obj
[102/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx/IntraPred_avx.cpp.obj
[103/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx/InterpolationFilter_avx.cpp.obj
[104/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx/MCTF_avx.cpp.obj
[105/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx/LoopFilter_avx.cpp.obj
[106/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx/Quant_avx.cpp.obj
[107/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx2/Buffer_avx2.cpp.obj
[108/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx/Trafo_avx.cpp.obj
[109/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx/RdCost_avx.cpp.obj
[110/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx2/AdaptiveLoopFilter_avx2.cpp.obj
[111/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx2/InterPred_avx2.cpp.obj
[112/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx2/Quant_avx2.cpp.obj
[113/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx2/LoopFilter_avx2.cpp.obj
[114/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx2/MCTF_avx2.cpp.obj
[115/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx2/IntraPred_avx2.cpp.obj
[116/133] Building C object test/vvencinterfacetest/CMakeFiles/vvencinterfacetest.dir/vvencinterfacetest.c.obj
[117/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx2/InterpolationFilter_avx2.cpp.obj
[118/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx2/SampleAdaptiveOffset_avx2.cpp.obj
[119/133] Building CXX object source/App/vvencFFapp/CMakeFiles/vvencFFapp.dir/EncApp.cpp.obj
[120/133] Building CXX object source/App/vvencapp/CMakeFiles/vvencapp.dir/vvencapp.cpp.obj
[121/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx2/Trafo_avx2.cpp.obj
[122/133] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/avx2/RdCost_avx2.cpp.obj
[123/133] Building CXX object test/vvenclibtest/CMakeFiles/vvenclibtest.dir/vvenclibtest.cpp.obj
[124/133] Building CXX object source/App/vvencFFapp/CMakeFiles/vvencFFapp.dir/encmain.cpp.obj
[125/133] Building CXX object source/Lib/apputils/CMakeFiles/apputils.dir/YuvFileIO.cpp.obj
[126/133] Building CXX object source/Lib/apputils/CMakeFiles/apputils.dir/ParseArg.cpp.obj
[127/133] Building CXX object source/Lib/apputils/CMakeFiles/apputils.dir/VVEncAppCfg.cpp.obj
[128/133] Linking CXX static library ..\lib\release-static\libapputils.a
[129/133] Linking CXX static library ..\lib\release-static\libvvenc.a
[130/133] Linking CXX executable ..\bin\release-static\vvencinterfacetest.exe
[131/133] Linking CXX executable ..\bin\release-static\vvenclibtest.exe
[132/133] Linking CXX executable ..\bin\release-static\vvencapp.exe
[133/133] Linking CXX executable ..\bin\release-static\vvencFFapp.exe

marti@MartinEesmaa CLANG64 ~/clang/vvenc/build
$

REPORT:

$ ldd vvencapp.exe
        ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ffdffa60000)
        KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ffdfe2a0000)
        KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ffdfd060000)
        apphelp.dll => /c/WINDOWS/SYSTEM32/apphelp.dll (0x7ffdfa4c0000)
        ucrtbase.dll => /c/WINDOWS/System32/ucrtbase.dll (0x7ffdfcf40000)
        libc++.dll => /clang64/bin/libc++.dll (0x7ffd9a460000)
        libunwind.dll => /clang64/bin/libunwind.dll (0x7ffdf7060000)
  • Martin Eesmaa

MartinEesmaa avatar Jun 12 '22 08:06 MartinEesmaa

Using clang specifically for cargo-c among gcc for the rest - passes here.

LigH-de avatar Jun 12 '22 21:06 LigH-de

@LigH-de, I should make my own pull request and making lists of additional vvc programs to compile easily on Windows.

MartinEesmaa avatar Jun 13 '22 04:06 MartinEesmaa

@1480c1 & @LigH-de, I added vvenc and vvdec suites into autobuild media, so could you test and see if it works?

MartinEesmaa avatar Jun 13 '22 09:06 MartinEesmaa

VVENC plugin (tbiat/FFmpeg) is now available, but not finished codec, so it's expiremental codec. See the other contributor made libvvenc support of FFmpeg: https://github.com/tbiat/FFmpeg/pull/6

NOTE ⚠️: In FFmpeg vvc version of tbiat, libvvenc is only default of qp 32 and preset medium only. Changing your qp and preset might revert to default by qp 32 and preset medium in ffmpeg (modified repository of tbiat). In pixel format of libvvenc, you're allowed to change your pixel format maximum 10 bit. libvvenc is experimental codec in tbiat/FFmpeg.

Trying encode (eg. x264) to VVC with audio in FFmpeg may corrupt the encoded file, so you may need to disable audio -an to avoid corruption.

libvvenc awesome programmer: @yodadude2003

libvvenc (FFmpeg vvc version) works for:

  • Pixel format (changeable of 8/10bit) ✅
  • Video size (auto detects) ✅
  • Frame rate (auto detects) ✅
  • Bitrates ✅
  • Passes 🔳
  • Presets (only medium) ⚠️
  • QP/CRF (only you can set -global_quality command only, global_quality equals qp) ⚠️

libvvenc = experimental codec of FFmpeg

libvvdec = completed codec of FFmpeg

Status report of ffmpeg -codecs:

 DEV.L. vvc                  H.266 / VVC (Versatile Video Coding) (decoders: libvvdec ) (encoders: libvvenc )
  • Martin Eesmaa

MartinEesmaa avatar Jun 13 '22 13:06 MartinEesmaa

Will try https://github.com/MartinEesmaa/media-autobuild_suite after a backup...

LigH-de avatar Jun 13 '22 17:06 LigH-de

Your version built vvenc, vvdec, and the libraries. To include them in ffmpeg, I guess I would have to add parameters to build/ffmpeg_options.txt when I set up the suite to use it. Which also means: You may have to add these options to the set of ffmpeg compile options in the group of full version options in the batch file.

LigH-de avatar Jun 13 '22 21:06 LigH-de

@BlackScreen, it is now merged of your request 2da55dd.

MartinEesmaa avatar Jun 16 '22 07:06 MartinEesmaa

@BlackScreen, it is now merged of your request 2da55dd.

Thanks for your work. Will try it out soon.

BeyondVertical avatar Jun 16 '22 16:06 BeyondVertical

Regarding the naming in the configuration: It is developed by the Fraunhofer Society's Heinrich Hertz Institute; so I would recommend to treat the HHI separated.

LigH-de avatar Jun 16 '22 16:06 LigH-de