[Cin] Vulkan hevc hdr decode regression on ffmpeg master?

Andrew Randrianasulu randrianasulu at gmail.com
Sun May 18 02:04:01 CEST 2025


вс, 18 мая 2025 г., 02:56 Phyllis Smith <phylsmith2017 at gmail.com>:

> Checked into GIT the updated ffmpeg.git.patches for future potential
> upgrade to ffmpeg version 8.0.  And deleted ffmpeg.git.patch8 after
> attempting to determine what it was actually for and could find no
> information on that when included sometime in 2019 as patch7.  It is
> possible that it is no longer needed though - it may have been intended as
> a speed improvement; but if some relevant error resurfaces, it can then be
> revisited.
>


Thanks. I suspect patch8 was aimed at mpeg4 (old, ala xvid, not h265)
playback via some hw accelerated method? I'll try some files I have from
those old times ...



> Andrea, the failure in your last attached cin5.log as shown below appears
> to be due to commenting out libpostproc.a in configure.ac because that is
> needed by cinelerra-5.1/mpeg2enc build.
>
>> make[2]: *** [Makefile:75: x86_64/hveg2enc] Error 1
>> make[2]: uscita dalla directory
>> «/home/paz/cinelerra5/cinelerra-5.1/mpeg2enc»
>>
>

For me deleting libpostproc.a from configure.ac worked for compiling with
ffmpeg.git

But I completely re-run make clean,  ./autogen.sh/configure/make dance

not sure why it did not work for you ....
make sure your user can rewrite global_config in the root of cinelerra's
main src tree? (if you tried building from root and then from ordinary user)

>
>
> On Wed, May 14, 2025 at 7:49 AM Andrew Randrianasulu <
> randrianasulu at gmail.com> wrote:
>
>> On Wed, May 14, 2025 at 1:31 PM Andrew Randrianasulu
>> <randrianasulu at gmail.com> wrote:
>> >
>> > So I was experimenting  with Vulkan decoding in cinelerra-gg.
>> >
>> > After some fight I get build using ffmpeg git
>> >
>> > commit 038314bc6be2f35a82e9fba2228bcac2e4fee648 for ffmpeg
>> >
>> > here is bunch of errors like this:
>> >
>> > [hevc @ 0x6f7465c0] Could not find ref with POC 296
>> > [hevc @ 0x6f7465c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f7465c0] Skipping invalid undecodable NALU: 9
>> > [hevc @ 0x6f72ad00] Could not find ref with POC 296
>> > [hevc @ 0x6f72ad00] Error constructing the frame RPS.
>> > [hevc @ 0x6f72ad00] Skipping invalid undecodable NALU: 8
>> > [hevc @ 0x6f77b3c0] Could not find ref with POC 298
>> > [hevc @ 0x6f77b3c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f77b3c0] Skipping invalid undecodable NALU: 8
>> > [hevc @ 0x6f789480] Could not find ref with POC 300
>> > [hevc @ 0x6f789480] Error constructing the frame RPS.
>> > [hevc @ 0x6f789480] Skipping invalid undecodable NALU: 1
>> > [hevc @ 0x6f7465c0] Could not find ref with POC 300
>> > [hevc @ 0x6f7465c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f7465c0] Skipping invalid undecodable NALU: 3
>> > [hevc @ 0x6f72ad00] Could not find ref with POC 300
>> > [hevc @ 0x6f72ad00] Error constructing the frame RPS.
>> > [hevc @ 0x6f72ad00] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f77b3c0] Could not find ref with POC 302
>> > [hevc @ 0x6f77b3c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f77b3c0] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f789480] Could not find ref with POC 304
>> > [hevc @ 0x6f789480] Error constructing the frame RPS.
>> > [hevc @ 0x6f789480] Skipping invalid undecodable NALU: 1
>> > [hevc @ 0x6f7465c0] Could not find ref with POC 304
>> > [hevc @ 0x6f7465c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f7465c0] Skipping invalid undecodable NALU: 3
>> > [hevc @ 0x6f72ad00] Could not find ref with POC 304
>> > [hevc @ 0x6f72ad00] Error constructing the frame RPS.
>> > [hevc @ 0x6f72ad00] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f77b3c0] Could not find ref with POC 306
>> > [hevc @ 0x6f77b3c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f77b3c0] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f789480] Could not find ref with POC 308
>> > [hevc @ 0x6f789480] Error constructing the frame RPS.
>> > [hevc @ 0x6f789480] Skipping invalid undecodable NALU: 1
>> > [hevc @ 0x6f7465c0] Could not find ref with POC 308
>> > [hevc @ 0x6f7465c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f7465c0] Skipping invalid undecodable NALU: 3
>> > [hevc @ 0x6f72ad00] Could not find ref with POC 308
>> > [hevc @ 0x6f72ad00] Error constructing the frame RPS.
>> > [hevc @ 0x6f72ad00] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f77b3c0] Could not find ref with POC 310
>> > [hevc @ 0x6f77b3c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f77b3c0] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f789480] Could not find ref with POC 312
>> > [hevc @ 0x6f789480] Error constructing the frame RPS.
>> > [hevc @ 0x6f789480] Skipping invalid undecodable NALU: 1
>> > [hevc @ 0x6f7465c0] Could not find ref with POC 312
>> > [hevc @ 0x6f7465c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f7465c0] Skipping invalid undecodable NALU: 3
>> > [hevc @ 0x6f72ad00] Could not find ref with POC 312
>> > [hevc @ 0x6f72ad00] Error constructing the frame RPS.
>> > [hevc @ 0x6f72ad00] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f77b3c0] Could not find ref with POC 314
>> > [hevc @ 0x6f77b3c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f77b3c0] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f789480] Could not find ref with POC 316
>> > [hevc @ 0x6f789480] Error constructing the frame RPS.
>> > [hevc @ 0x6f789480] Skipping invalid undecodable NALU: 1
>> > [hevc @ 0x6f7465c0] Could not find ref with POC 316
>> > [hevc @ 0x6f7465c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f7465c0] Skipping invalid undecodable NALU: 3
>> > [hevc @ 0x6f72ad00] Could not find ref with POC 316
>> > [hevc @ 0x6f72ad00] Error constructing the frame RPS.
>> > [hevc @ 0x6f72ad00] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f77b3c0] Could not find ref with POC 318
>> > [hevc @ 0x6f77b3c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f77b3c0] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f789480] Could not find ref with POC 320
>> > [hevc @ 0x6f789480] Error constructing the frame RPS.
>> > [hevc @ 0x6f789480] Skipping invalid undecodable NALU: 1
>> > [hevc @ 0x6f7465c0] Could not find ref with POC 320
>> > [hevc @ 0x6f7465c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f7465c0] Skipping invalid undecodable NALU: 3
>> > [hevc @ 0x6f72ad00] Could not find ref with POC 320
>> > [hevc @ 0x6f72ad00] Error constructing the frame RPS.
>> > [hevc @ 0x6f72ad00] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f77b3c0] Could not find ref with POC 322
>> > [hevc @ 0x6f77b3c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f77b3c0] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f789480] Could not find ref with POC 324
>> > [hevc @ 0x6f789480] Error constructing the frame RPS.
>> > [hevc @ 0x6f789480] Skipping invalid undecodable NALU: 1
>> > [hevc @ 0x6f7465c0] Could not find ref with POC 324
>> > [hevc @ 0x6f7465c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f7465c0] Skipping invalid undecodable NALU: 3
>> > [hevc @ 0x6f72ad00] Could not find ref with POC 324
>> > [hevc @ 0x6f72ad00] Error constructing the frame RPS.
>> > [hevc @ 0x6f72ad00] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f77b3c0] Could not find ref with POC 326
>> > [hevc @ 0x6f77b3c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f77b3c0] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f789480] Could not find ref with POC 328
>> > [hevc @ 0x6f789480] Error constructing the frame RPS.
>> > [hevc @ 0x6f789480] Skipping invalid undecodable NALU: 1
>> > [hevc @ 0x6f7465c0] Could not find ref with POC 328
>> > [hevc @ 0x6f7465c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f7465c0] Skipping invalid undecodable NALU: 3
>> > [hevc @ 0x6f72ad00] Could not find ref with POC 328
>> > [hevc @ 0x6f72ad00] Error constructing the frame RPS.
>> > [hevc @ 0x6f72ad00] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f77b3c0] Could not find ref with POC 330
>> > [hevc @ 0x6f77b3c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f77b3c0] Skipping invalid undecodable NALU: 2
>> > [hevc @ 0x6f789480] Could not find ref with POC 332
>> > [hevc @ 0x6f789480] Error constructing the frame RPS.
>> > [hevc @ 0x6f789480] Skipping invalid undecodable NALU: 1
>> > [hevc @ 0x6f7465c0] Could not find ref with POC 332
>> > [hevc @ 0x6f7465c0] Error constructing the frame RPS.
>> > [hevc @ 0x6f7465c0] Skipping invalid undecodable NALU: 3
>> >
>> > file itself:
>> > https://drive.google.com/file/d/1Ic9DZXMSo07EJMqCFaQRKSSrSw6y1mYv/view
>> >
>> > But I see some kind of first frame corruption I never saw on 7.0 build
>> >
>> > https://paste.pics/860707666060d195485e07ea7b057ce8
>> >
>> > and speed kinda down from 58 fps to just 50-51  relative to ffmpeg libs
>> 7.0?
>> >
>> > hw:
>> > 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc.
>> > [AMD/ATI] Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] (rev
>> > c7)
>> >
>> > mesa:
>> >
>> > OpenGL renderer string: AMD Radeon RX 550 / 550 Series (radeonsi,
>> > polaris12, ACO, DRM 3.61, 6.12.26-x64)
>> > OpenGL core profile version string: 4.6 (Core Profile) Mesa
>> > 25.2.0-devel (git-ef63e3e4d2)
>> >
>> > cingg home git:
>> > git://git.cinelerra-gg.org/goodguy/cinelerra.git
>> >
>> > I set two evn. variables specific to my system, but mostly I wanted to
>> > get libplacebo and libzimg for HDR->SDR conversion
>> >
>> > EXTRA_LIBS :=  -lOpenCL -lSvtAv1Enc -lvpl -ldav1d -lxvidcore -lass
>> > -lbluray -lsnappy -lzimg -lplacebo -lshaderc_shared -lnuma -lva
>> > -lva-x11 `pkg-config --libs x11` -lva-drm -ldl
>> > FFMPEG_EXTRA_CFG :=  --enable-libvpl --disable-doc --enable-opencl
>> > --enable-libsvtav1 --enable-frei0r --enable-libdav1d --enable-libzimg
>> > --enable-libxvid --enable-libass --enable-libbluray --enable-libsnappy
>> > --enable-libshaderc --enable-libplacebo --enable-vulkan
>> > --disable-debug --extra-cflags=-I/usr/local/include/vpl
>> > --extra-cflags=-I/usr/include/svt-av1 --extra-ldflags=" -lva
>> > `pkg-config --libs libva` -lva-x11 -lva-drm -ldl"
>> >
>> >
>> > cingg configure:
>> >
>> > ./configure --with-git-ffmpeg=https://git.ffmpeg.org/ffmpeg.git
>> > --with-single-user --enable-libsvtav1 --disable-dav1d
>> >
>> > I used bunch of patches (attached, done by Phyllis and me) and
>> > manually removed posprocess.a ref. from our configure.ac for now
>>
>>
>> One more patch/hack just for making building easier attached (on top
>> of 0001-3 patches for cingg)
>>
>> ffmpeg.git patches  go into thirdparty/src, and you probably want to
>> move away ffmpeg.git.patch8 out of  this directory so it will not fail
>> patching
>>
>>
>>
>> >
>> > there is still some problem with attaching ffmpeg filters
>> > per-input-file, but main Vulkan decode problem still visible without
>> > any filters
>> >
>> > I run just-compiled cin binary like this:
>> >
>> > RADV_PERFTEST=video_decode bin/cin
>> > ~/K38_sdcard1/Documents/iPhone11_4K-recorder_59.940HDR10.mov
>> >
>> > and got corruption as visible on screenshot  at the start of this email
>> >
>> > Playing image forward cleans up  this corruption, but returning to
>> > timeline beginning bring it back.
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20250518/79791283/attachment.htm>


More information about the Cin mailing list