fraunhoferhhi / vvdec

VVdeC, the Fraunhofer Versatile Video Decoder
https://www.hhi.fraunhofer.de/en/departments/vca/technologies-and-solutions/h266-vvc.html
BSD 3-Clause Clear License
453 stars 91 forks source link

Segmentation Fault for Main 10 with VPS #101

Closed scenarnick closed 2 years ago

scenarnick commented 2 years ago

Hi all, we're seeing a segfault (Mac OS master as of today) when trying to decode the attached stream. It's a Main 10, 640 x 480 with VPS. The same stream from the same encoder works fine without VPS. Would you mind looking into this?

./vvdecapp -b /Users/xxxx/Downloads/vps/vvc.vvc Fraunhofer VVC/H.266 Decoder VVdeC, version 1.5.0 [THREADS=10; PARSE_DELAY=10; SIMD=NEON/SIMDE(SSE42)] zsh: segmentation fault ./vvdecapp -b /Users/notto/Downloads/vps/vvc.vvc

vvc.vvc.zip

Thanks in advance

adamjw24 commented 2 years ago

~Please provide the exact command used to build vvdec + the build log if possible (possibly also use make verbose=1 or -DCMAKE_VERBOSE_MAKEFILE=ON)~

~Could this be related to #89?~

adamjw24 commented 2 years ago

Can reproduce the bug on Linux too. Will investigate

scenarnick commented 2 years ago

Hi Adam, just for completeness' sake: The compile was done on a MacBook Pro M1 with latest Make from home-brew and Xcode 13.4.1

The command sequence was pretty basic:

git clone https://github.com/fraunhoferhhi/vvdec.git .
mkdir build
cd build
cmake .. 
make install-release

I no longer have the build logs but since you can repro it on Linux this shouldn't be relevant anymore. Our team is in parallel investigating the VPS generated by the encoder. Yet the initial response from them was:

Yes, it is crashed, after parsing VPS variable which defines target layer is not initialized correctly.

I'll be around in case of additional questions.

Cheers, Nick

adamjw24 commented 2 years ago

Yes, I can confirm that this is related to VPS parsing. Since we don't support multi-layer we didn't test VPS parsing a lot, so there might be bugs. I'll keep you posted.

scenarnick commented 2 years ago

Ok. We know that VPS isn't mandatory but we have run into a situation where a specific decoder fails (when parsing SPS/PPS only) and we suspect it may be due to missing VPS, so we had to add them for a test.

scenarnick commented 2 years ago

PR #102 does the trick for me. Haven't tried 103 (yet)