[Cin] adding onevpl support for buildsystem

Andrew Randrianasulu randrianasulu at gmail.com
Fri Oct 25 00:43:48 CEST 2024


чт, 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
>>>> error: cinelerra-5.1/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 ...

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  ffmpeg
>>>>>> ladspa  lv2_blacklist.txt  mplexlo  plugins    zmpeg3cat     zmpeg3show
>>>>>> README             cin           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/621bc498/attachment-0001.htm>


More information about the Cin mailing list