vvenc: Encoder crash with GCC 12

When I’m compiling the encoder, I got this error:

/home/user/.cache/pikaur/build/vvenc/src/vvenc-1.3.1/source/Lib/CommonLib/InterPrediction.cpp: In member function ‘bool vvenc::InterPrediction::xCheckIdenticalMotion(const vvenc::CodingUnit&) const’:
/home/user/.cache/pikaur/build/vvenc/src/vvenc-1.3.1/source/Lib/CommonLib/InterPrediction.cpp:307:24: error: comparison between two arrays [-Werror=array-compare]
  307 |           if( cu.mv[0] == cu.mv[1] )
      |               ~~~~~~~~~^~~~~~~~~~~

So I removed all -Werror in all CMakeList.txt. But when I’m encoding a yuv file, I got this:

vvencapp: Fraunhofer VVC Encoder ver. 1.4.0 [Linux][GCC 12.1.0][64 bit][SIMD=AVX2]
CODING TOOL CFG: CTU128 QT44BTT21 IBD:1 CIP:0 SAO:1 ALF:1 (NonLinLuma:0 NonLinChr:0) CCALF:1 Tiles:1x1 Slices:1 WPP:0 WPP-Substreams:1 TMVP:1 DQ:1 SDH:0 CST:1 BDOF:1 DMVR:1 MTSImplicit:1 SBT:0 JCbCr:1 CabacInitPresent:0 AMVR:5 SMVD:3 LMCS:2 (Signal:SDR Opt:0) CIIP:0 MIP:1 AFFINE:2 (PROF:1, Type:1) MMVD:3 DisFracMMVD:1 SbTMVP:1 GPM:3 LFNST:1 MTS:0 ISP:3 TS:2 TSLog2MaxSize:4 useChromaTS:0 BDPCM:2 IBC:2 BCW:0
ENC. ALG. CFG: QPA:1 HAD:1 RDQ:1 RDQTS:1 ASR:1 MinSearchWindow:96 RestrictMESampling:0 EDO:2 MCTF:2
PRE-ANALYSIS CFG: STA:1 LeadFrames:0 TrailFrames:0
FAST TOOL CFG: ECU:0 FEN:1 FDM:1 FastSearch:4 (SCC:2) LCTUFast:1 FastMrg:2 PBIntraFast:1 AMaxBT:0 FastQtBtEnc:1 ContentBasedFastQtbt:0 FastMIP:4 FastIntraTools:1 IntraEstDecBit:2 FastLocalDualTree:1 IntegerET:0 FastSubPel:1 QtbttExtraFast:3 FastTTSplit:0 IBCFastMethod:3 FIM:0 ALFSpeed:0 QuantThr: 4
RATE CONTROL CFG: RateControl:0 LookAhead:0
PARALLEL PROCESSING CFG: NumThreads:4 MaxParallelFrames:4 WppBitEqual:1 WF:0

started @ Thu May 19 19:55:04 2022

POC    0 TId: 0 (  IDR_N_LP, I-SLICE, QP 5 )      28304 bits [Y 72.0273 dB    U 999.9900 dB    V 999.9900 dB] [ET     3 ] [L0 ] [L1 ]
POC   32 TId: 0 (       CRA, I-SLICE, QP 6 )     122144 bits [Y 60.5487 dB    U 999.9900 dB    V 999.9900 dB] [ET     7 ] [L0 ] [L1 ]
fish: Job 1, 'vvencapp -i /mnt/c/TempUse/yuv4…' terminated by signal SIGSEGV (Address boundary error)

I’m using vvenc inside Arch linux with WSL2. My command is vvencapp -i yuv420p.yuv -s 1920x1080 -c yuv420 -r 25 --qp 20 --threads 4 -o vvc.266. Does anybody know what problem is this?

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 24 (10 by maintainers)

Most upvoted comments

@CarlGao4, try this:

ffmpeg -i yourvideo.mp4 -pix_fmt yuv420p -strict 1 yuv420p.yuv
vvencapp -i yuv420p.yuv -s 1920x1080 -c yuv420 -r 25 --qp 20 --threads 4 -o vvc.266

It should work of yuv420 and yuv420p10 pixel formats only of YUV.

  • Martin Eesmaa

There isn’t any problem with the input file, because it works well with the vvencapp built by GCC 11.2.0 using the same command. So the problem is that I used GCC 12.1.0