Den 25.10.2024 00:43, skrev Andrew Randrianasulu:


чт, 24 окт. 2024 г., 22:31 Terje J. Hanssen <terjejhanssen@gmail.com>:



Den 24.10.2024 18:50, skrev Andrew Randrianasulu:


чт, 24 окт. 2024 г., 19:29 Terje J. Hanssen <terjejhanssen@gmail.com>:



Den 24.10.2024 15:37, skrev Andrew Randrianasulu:


чт, 24 окт. 2024 г., 12:40 Terje J. Hanssen <terjejhanssen@gmail.com>:



Den 23.10.2024 22:59, skrev Andrew Randrianasulu:


ср, 23 окт. 2024 г., 23:44 Terje J. Hanssen <terjejhanssen@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@gmail.com>:



Den 18.10.2024 18:37, skrev Andrew Randrianasulu:


пт, 18 окт. 2024 г., 19:30 Terje J. Hanssen <terjejhanssen@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 ...

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@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


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