[Cin] adding onevpl support for buildsystem

Terje J. Hanssen terjejhanssen at gmail.com
Thu Oct 24 21:31:26 CEST 2024




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


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/20241024/1db63c02/attachment-0001.htm>


More information about the Cin mailing list