[Cin] adding onevpl support for buildsystem
Terje J. Hanssen
terjejhanssen at gmail.com
Fri Oct 25 01:55:44 CEST 2024
Den 25.10.2024 00:43, skrev Andrew Randrianasulu:
>
>
> чт, 24 окт. 2024 г., 22:31 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>
>
>
> Den 24.10.2024 18:50, skrev Andrew Randrianasulu:
>>
>>
>> чт, 24 окт. 2024 г., 19:29 Terje J. Hanssen
>> <terjejhanssen at gmail.com>:
>>
>>
>>
>>
>> Den 24.10.2024 15:37, skrev Andrew Randrianasulu:
>>>
>>>
>>> чт, 24 окт. 2024 г., 12:40 Terje J. Hanssen
>>> <terjejhanssen at gmail.com>:
>>>
>>>
>>>
>>>
>>> Den 23.10.2024 22:59, skrev Andrew Randrianasulu:
>>>>
>>>>
>>>> ср, 23 окт. 2024 г., 23:44 Terje J. Hanssen
>>>> <terjejhanssen at gmail.com>:
>>>>
>>>>
>>>>
>>>>
>>>> Den 23.10.2024 21:25, skrev Terje J. Hanssen:
>>>>>
>>>>>
>>>>>
>>>>> Den 18.10.2024 20:56, skrev Andrew Randrianasulu:
>>>>>>
>>>>>>
>>>>>> пт, 18 окт. 2024 г., 21:45 Terje J. Hanssen
>>>>>> <terjejhanssen at gmail.com>:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Den 18.10.2024 18:37, skrev Andrew Randrianasulu:
>>>>>>>
>>>>>>>
>>>>>>> пт, 18 окт. 2024 г., 19:30 Terje J. Hanssen
>>>>>>> <terjejhanssen at gmail.com>:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Den 18.10.2024 09:08, skrev Andrew
>>>>>>> Randrianasulu:
>>>>>>>> Can you try attached patch?
>>>>>>>>
>>>>>>>> default to off, so should be safe?
>>>>>>>
>>>>>>> Can you detail the basic steps to do it?
>>>>>>>
>>>>>>>
>>>>>>> as always
>>>>>>>
>>>>>>> backup what you think is important
>>>>>>> (qsv/vaapi profiles, notably)
>>>>>>
>>>>>> Will my custom built Cingg using my system
>>>>>> ffmpeg be overwritten?
>>>>>>
>>>>>>
>>>>>> yes, so
>>>>>>
>>>>>> 1) put this bin folder away somewhere
>>>>>>
>>>>>> 2) may be try to use appimage tool for making
>>>>>> your own appimage out of it.
>>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> make clean
>>>>>>>
>>>>>>> git am patch
>>>>>>
>>>>>
>>>>> Does this comprise just the onevpl.patch or also
>>>>> other patches on the current list?
>>>>>
>>>>> localhost:/Cin # ls -1 *.patch
>>>>> 0001-Add-nv12-as-def.-pixformat-for-qsv-profiles-clarify-.patch
>>>>> 0001-Fix-build-in-makeappimage-for-boost-1.85.patch
>>>>> 0001-Qsv-encoders-for-testing.patch
>>>>> 0001-Update-README-build-instructions.patch
>>>>> 0002-Add-BUGS.patch
>>>>> 0002-Modify-remaining-_qsv-orofiles-to-use-nv12-fix-typo-.patch
>>>>> 0002-makeappimage-tool-add-algorithm-incl-into-core.cpp.patch
>>>>> 0003-Add-DESCRIPTION.patch
>>>>> alt_shortcuts.patch
>>>>> onevpl.patch
>>>>>
>>>>>
>>>> I applied
>>>>
>>>> git am onevpl.patch
>>>>
>>>> first, before "make clean", and a second time after
>>>> "make clean" in case this order was necessary.
>>>> Then I got this output:
>>>>
>>>> localhost:/Cin # git am onevpl.patch
>>>> Applying: Add onevpl support to build system
>>>> error: patch failed: cinelerra-5.1/configure.ac:86
>>>> <http://configure.ac:86>
>>>> error: cinelerra-5.1/configure.ac
>>>> <http://configure.ac>: patch does not apply
>>>> error: patch failed:
>>>> cinelerra-5.1/thirdparty/Makefile:136
>>>> error: cinelerra-5.1/thirdparty/Makefile: patch
>>>> does not apply
>>>> Patch failed at 0001 Add onevpl support to build system
>>>> hint: Use 'git am --show-current-patch=diff' to see
>>>> the failed patch
>>>> hint: When you have resolved this problem, run "git
>>>> am --continue".
>>>> hint: If you prefer to skip this patch, run "git am
>>>> --skip" instead.
>>>> hint: To restore the original branch and stop
>>>> patching, run "git am --abort".
>>>> hint: Disable this message with "git config
>>>> advice.mergeConflict false"
>>>>
>>>> Is this message due to the second attempt, and is
>>>> safe to continue from here with the next steps below?
>>>>
>>>>
>>>>
>>>> yeah, you only need to apply patch once.
>>>
>>> Should I apply more than than the onevpl.patch?
>>>
>>>
>>> I think no? At least I was testing it standalone
>>>
>>>
>>>
>>>>
>>>> if you have "gitk" installed you can run that and
>>>> observe content of top patch or any patch in tree in
>>>> tcl/tk gui.
>>>>
>>>>>>>
>>>>>>> ./autogen.sh
>>>>>>>
>>>>>>> ./configure --with-single-user --with-onevpl
>>>>>>
>>>
>>> What's broken here, lvpl no - onevpl error?
>>>
>>> localhost:/Cin # ./configure --with-single-user
>>> --with-onevpl
>>> configure: loading site script
>>> /usr/share/site/x86_64-pc-linux-gnu
>>> checking for a BSD-compatible install... /usr/bin/install -c
>>> checking whether sleep supports fractional seconds... yes
>>> checking filesystem timestamp resolution... 0.01
>>> checking whether build environment is sane... yes
>>> .........snip
>>> checking for vaGetDisplayDRM in -lva-drm... yes
>>> checking for MFXCreateSession in -lvpl... no
>>> configure: error: requires onevpl support.
>>>
>>>
>>> hm, do you have -devel package from onevpl installed?
>>
>> No, at least not currently
>>
>> # zypper se libvpl
>> Loading repository data...
>> Reading installed packages...
>>
>> S | Name | Summary | Type
>> ---+---------------------+---------------------------------------------------------------------------+-----------
>> | libvpl | oneAPI Video Processing Library
>> (oneVPL) dispatcher, tools, and examples | package
>> | libvpl-devel | Development files for oneAPI Video
>> Processing Library (oneVPL) dispatcher | package
>> | libvpl-tools | Intel Video Processing Library
>> (Intel VPL) Tools | srcpackage
>> i+ | libvpl-tools | Intel Video Processing Library
>> (Intel VPL) Tools | package
>> | libvpl-tools-devel | Development files for libvpl-tools
>> | package
>> i | libvpl2 | oneAPI Video Processing Library
>> (oneVPL) dispatcher | package
>> | libvpl_wayland1_0_0 | Runtime library for libvpl-tools |
>> package
>>
>>
>>
>> Not sure about libvpl vs libvpl2, but add-installed the rest
>> of not available libvpl- packages
>>
>> # zypper in libvpl libvpl-devel libvpl-tools-devel
>> libvpl_wayland1_0_0
>>
>>
>>
>>>
>>> what "pkg-config --libs vpl" /"pkg-config --cflags vpl" say?
>>
>> Then
>>
>> # pkg-config --libs vpl
>> -L/usr/lib64/pkgconfig/../ -lvpl -ldl -lstdc++
>>
>> # pkg-config --cflags vpl
>> -I/usr/lib64/pkgconfig/../../include
>> -I/usr/lib64/pkgconfig/../../include/vpl
>>
>>
>> Reconfigure
>>
>> localhost:/Cin # ./configure --with-single-user --with-onevpl
>> 2>&1 | tee configure_onevpl_support.log
>>
>> No errors found in the log file
>>
>>
>> localhost:/Cin # make 2>&1 | tee make_onevpl_support.log
>>
>> No errors found in the log file
>>
>>
>> localhost:/Cin # make install 2>&1 | tee
>> make_install_onevpl_support.log
>>
>> -----------------
>>
>> > return qsv profiles you saved before to bin/ffmpeg/video
>>
>> localhost:/Cin/bin/ffmpeg/video # cp
>> /Cin/bin_use_system_ffmpeg-71/ffmpeg/video/*qsv* .
>>
>>
>> -----------------------
>>
>> localhost:/Cin # bin/cin
>> Cinelerra Infinity - built: Oct 24 2024 16:26:16
>>
>> Tested with similar results as my previous ffmpeg_71 build:
>>
>> SD-DV to av1_qsv, hevc_qsv and h264_qsv nv12 works
>> HDV to hevc_qsv works with nv12, p010le and yuv422 works
>> HDV to av1_qsv and to h264_qsv don't work
>>
>>
>> does av1_vaapi work for HDV case?
>
>
> Yes, I test-rendered HDV (hdv09_04) to hevc_vaapi, av1_vaapi,
> h264_vaapi, all i .mp4 below
> Also FHD (hd01) to av1_vaapi.mp4 worked, see ffprobe below
>
> Testing .webm type breaks with the following output:
>
> [av1_vaapi @ 0x7f5f74122a80] Driver does not support QVBR RC
> mode (supported modes: CQP, CBR, VBR, ICQ).
> FFMPEG::open_encoder err: Invalid argument
> int FFMPEG::open_encoder(const char*, const char*):
> open failed av1_vaapi:/Videoklipp/VAAPI/hdv09_04_av1_vaapi.webm
>
>
> hm, you probably need to tweak this profile for your driver then ...
I got this tweak to work for hdv09_04.m2t rendering to av1_vaapi.webm
cin_hw_dev=vaapi
g=30
profile=main
rc_mode=CQP
Render::render_single: Session finished.
** rendered 5972 frames in 27.408 secs, 217.893 fps
FFMPEG::open_decoder: some stream times estimated:
/Videoklipp/VAAPI/hdv09_04_av1_vaapi.webm
FFMPEG::open_decoder: some stream times estimated:
/Videoklipp/VAAPI/hdv09_04_av1_vaapi.webm
audio0 pad 64 -143 (207)
audio0 pad 0 -143 (143)
audio0 pad 0 -15 (15)
while
[av1_vaapi @ 0x7f8000317a40] Bitrate must be set for VBR RC mode.
FFMPEG::open_encoder err: Invalid argument
int FFMPEG::open_encoder(const char*, const char*):
open failed av1_vaapi:/Videoklipp/VAAPI/hdv09_04_av1_vaapi.webm
>
> so, vaapi works in more cases than qsv, it seems?
>
>
>
>
> terje at localhost:/Videoklipp/VAAPI> ls -lt hd*
> -rw-r--r-- 1 root root 349812400 okt. 24 20:54
> hdv09_04_hevc_vaapi.mp4
> -rw-r--r-- 1 root root 112467398 okt. 24 20:42 hd01_av1_vaapi.mp4
> -rw-r--r-- 1 root root 606029742 okt. 24 20:35
> hdv09_04_h264_vaapi.mp4
> -rw-r--r-- 1 root root 378664255 okt. 24 20:28
> hdv09_04_av1_vaapi.mp4
>
>
> ffprobe -hide_banner hdv09_04_hevc_vaapi.mp4
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'hdv09_04_hevc_vaapi.mp4':
> Metadata:
> major_brand : isom
> minor_version : 512
> compatible_brands: isomiso2mp41
> encoder : Lavf61.7.100
> Duration: 00:03:58.88, start: 0.000000, bitrate: 11715 kb/s
> Stream #0:0[0x1](und): Video: hevc (Main) (hev1 / 0x31766568),
> yuv420p(tv, bt470bg/unknown/unknown, top coded first (swapped)),
> 1440x1080 [SAR 4:3 DAR 16:9], 11580 kb/s, 25 fps, 25 tbr, 12800
> tbn (default)
> Metadata:
> handler_name : VideoHandler
> vendor_id : [0][0][0][0]
> Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D),
> 48000 Hz, stereo, fltp, 129 kb/s (default)
> Metadata:
> handler_name : SoundHandler
> vendor_id : [0][0][0][0]
>
>
> ffprobe -hide_banner hd01_av1_vaapi.mp4
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'hd01_av1_vaapi.mp4':
> Metadata:
> major_brand : isom
> minor_version : 512
> compatible_brands: isomav01iso2mp41
> encoder : Lavf61.1.100
> Duration: 00:01:11.28, start: 0.000000, bitrate: 12622 kb/s
> Stream #0:0[0x1](und): Video: av1 (libdav1d) (Main) (av01 /
> 0x31307661), yuv420p(tv, bt470bg/unknown/unknown, top coded first
> (swapped)), 1920x1080, 12246 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25
> tbr, 12800 tbn (default)
> Metadata:
> handler_name : VideoHandler
> vendor_id : [0][0][0][0]
> Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D),
> 48000 Hz, 16 channels, fltp, 378 kb/s (default)
> Metadata:
> handler_name : SoundHandler
> vendor_id : [0][0][0][0]
>
>
>> can you add auto-scale filter to HDV cases so it will be full HD
>> and not 1440*1080 ? or another similar rescaling ....
>>
>> again, thanks for testing.
>>
>> But as with any experimentation we get some new questions instead
>> of pure answers ....
>>
>>
>>
>>
>>
>> ===================================
>>
>> In separate posts:
>> Can you possibly setup guideline detail procedure on how to
>> build an appimage and a rpm package of this build,
>> to possible install and test it on my legacy Skylake and
>> Kabylake platforms?
>>
>> ===================================
>>
>>
>> I think basic procedure at
>>
>> https://cinelerra-gg.org/download/CinelerraGG_Manual/Build_CinGG_AppImage_from_s.html
>>
>> starting from
>>
>> 2- The script bld_appimage.sh uses a platform specific version of
>> appimagetool so that it can create appimages for x86_64, i686,
>> aarch64, or armv7l architecture. We need to add
>> appimagetool-(platform).AppImage to the /{path to cinelerra-
>> 5.1}/tools directory, or somewhere in your path. You can download
>> the tool for your system (e.g. appimagetool-x86_64.AppImage) from
>> git: https://github.com/AppImage/AppImageKit/releases
>>
>>
>> for rpm build I think we need to wait for this patch to land in
>> git and then become part of monthly src tarball.
>>
>> Then you can edit .spec file with soecifix date-based filename to
>> fetch and run
>>
>> rpmbuild -bb ("build binary") our_spec_file.spec
>>
>>
>>
>>
>>>
>>>
>>>>>>>
>>>>>>> make
>>>>>>
>>>
>>> and here?
>>>
>>> # make
>>> make: *** No targets specified and no makefile found. Stop.
>>>
>>
>>
>>>
>>>
>>>
>>>>>>>
>>>>>>> make install
>>>>>>>
>>>>>>> return qsv profiles you saved before to
>>>>>>> bin/ffmpeg/video
>>>>>>>
>>>>>>> bin/cin
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> My system is
>>>>>>>
>>>>>>> /home/cinelerra/cinelerra-5.1 # ls bin
>>>>>>> COPYING applications
>>>>>>> doc expanders.txt info lv2
>>>>>>> models pixmaps tips zmpeg3ifochk
>>>>>>> Cinelerra_factory bdwrite expanders.es
>>>>>>> <http://expanders.es> ffmpeg ladspa
>>>>>>> lv2_blacklist.txt mplexlo plugins
>>>>>>> zmpeg3cat zmpeg3show
>>>>>>> README cin expanders.fr
>>>>>>> <http://expanders.fr> hveg2enc locale
>>>>>>> lv2ui msg shuttlerc zmpeg3cc2txt zmpeg3toc
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20241025/182c6d12/attachment-0001.htm>
More information about the Cin
mailing list