[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